Jms & proxy http tunnel

"I am trying to run TradeRecive sample program that come with 7.0 on a machine behind the firewall at remote site and I am having the following exception. (java command line has proxy specified, server has http tunneling enabled)
          Can someone help ?
          C:\ArthurTest\JMS>java -Dhttp.proxyHost=134.142.50.10 -Dhttp.proxyPort=8080 -cp
          .;.\weblogic.jar TraderReceive http://205.172.179.92:80
          <May 6, 2003 4:33:25 PM CDT> <Error> <RJVM> <000515> <execute failed
          java.net.ProtocolException: Tunneling result unspecified - is the HTTP server a
          t host: '205.172.179.92' and port: '80' a WebLogic Server?
          java.net.ProtocolException: Tunneling result unspecified - is the HTTP server at
          host: '205.172.179.92' and port: '80' a WebLogic Server?
          at weblogic.rjvm.http.HTTPClientJVMConnection.handleNullResponse(HTTPCli
          entJVMConnection.java:173)
          at weblogic.rjvm.http.HTTPClientJVMConnection.receiveAndDispatch(HTTPCli
          entJVMConnection.java:409)
          at weblogic.rjvm.http.HTTPClientJVMConnection.execute(HTTPClientJVMConne
          ction.java:305)
          at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:153)
          at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:134)
          >
          Exception in thread "main" javax.naming.CommunicationException. Root exception
          is java.net.ConnectException: http://205.172.179.92:80: Bootstrap t
          

Hi,
          The tunneling problem likely has nothing to do with JMS.
          JMS likely hasn't been called yet. I have little experience here,
          so all I can suggest is trying to connect
          to the WL server directly without the
          firewall/proxy-server/interposed-web-server in between --
          to see if you can narrow down the problem to the HTTP pass-through
          to the WL server. Then check the BEA docs, and google search and/or
          post to the more relevant rmi and/or jndi newsgroups...
          Tom, BEA
          tieeren wrote:
          > "I am trying to run TradeRecive sample program that come with 7.0 on a machine behind the firewall at remote site and I am having the following exception. (java command line has proxy specified, server has http tunneling enabled)
          >
          > Can someone help ?
          >
          >
          >
          > C:\ArthurTest\JMS>java -Dhttp.proxyHost=134.142.50.10 -Dhttp.proxyPort=8080 -cp
          > .;.\weblogic.jar TraderReceive http://205.172.179.92:80
          > <May 6, 2003 4:33:25 PM CDT> <Error> <RJVM> <000515> <execute failed
          > java.net.ProtocolException: Tunneling result unspecified - is the HTTP server a
          > t host: '205.172.179.92' and port: '80' a WebLogic Server?
          > java.net.ProtocolException: Tunneling result unspecified - is the HTTP server at
          > host: '205.172.179.92' and port: '80' a WebLogic Server?
          > at weblogic.rjvm.http.HTTPClientJVMConnection.handleNullResponse(HTTPCli
          > entJVMConnection.java:173)
          > at weblogic.rjvm.http.HTTPClientJVMConnection.receiveAndDispatch(HTTPCli
          > entJVMConnection.java:409)
          > at weblogic.rjvm.http.HTTPClientJVMConnection.execute(HTTPClientJVMConne
          > ction.java:305)
          > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:153)
          > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:134)
          >
          > Exception in thread "main" javax.naming.CommunicationException. Root exception
          > is java.net.ConnectException: http://205.172.179.92:80: Bootstrap t
          

Similar Messages

  • Dont think RMi is HTTP tunneling through proxy firewall

    Hi Guys,
    Does anyone know how to monitor if RMI is using the option toHTTP tunnel through a proxy ???
    Many of clients sit behind firewalls/proxies that enable HTTP only. I thought RMI would, as a default, use HTTP tunneling POST, RESPONSe methods to get through, but it does not.
    Would that case be insted of using Naming.lokup("RMIServer"); that i should use
    Registry reg = LocateRegistry.getResgistry(serverAddress, serverPort);
    reg.lookup("RMIServer");
    Any help would be greatly appreciated.

    RMI doesn't have an option like that. Sockets do, and you get it for any socket including RMI by setting socksProxyHost and socksProxyPort.
    The RMI HTTP tunnelling thing happens when there is an HTTP server at the server side. which redirects the request to an RMI server via rmi-cgi.cgi or the RMI servlet. It's automatic, as a fallback, and you can enforce its use via a system property which you can find in the Javadoc Guide to Features/Remote Method Invocation/Useful java.rmi system properties.

  • [Fwd: JMS publishing via http-tunneling]

    "Jeffrey S. Hair" wrote:
    Does anyone know of way to speed up WL JMS publishing via http-tunneling?
    We have a server that is publishing messages to JMS rather frequently (1/200 millisecs). We then
    have several applications and applets subscribed for this topic. The applications work great and get
    all of the messages quite fast (using t3 protocol).
    However, the applet, running on the other side of a firewall, and connected to the server over a 28k
    modem, receives the updates rather slowly since the messages need tunneled through http. In fact, so
    many updates are being published that the applet continually falls behind. If we stopped the updates
    or slowed down the updates, the applet would eventually catch up and reflect the latest message.
    The sessions in the applet were created using AUTO_ACKNOWLEDGE. I've since changed them to use
    CLIENT_ACKNOWLEDGE and allow for 15 seconds of messages to be processed before acknowledging. This
    improved the speed but the applet still falls behind to some degree. When the publishing slows down,
    the applet now at least catches up.
    As a side note, does anyone know of a way to view the contents of the JMS queue?
    Thanx,
    jsh
    Jeffrey S. Hair
    Sr. System Architect, FNX Limited[email.eml]

    Which web server are you using?
    Both iWS6.0 SP2 or iWS Fast-track 4.1 works with iMQ.
    But earler versions of iWS6.0 do not and we have no
    control of that.

  • Here is example code for HTTPS Tunneling through proxy(400 Lines of code

    Here is the source for Https Tunneling that I have gotten working. It is based on Pua Yeow Cheong's JavaWorld Tip 111. Thanks to David Lord for providing the final breakthrough that I needed.
    I have posted it here for anyone who wishes to use it. If you find any bugs, or write any improvements, please tack them onto the end of this thread.
    I have been trying to tackle this problem for quite some time, so I hope this helps a few of you out there.
    Lots of Luck,
    nightmask.
    <----- Begin Copy and Paste -------->
    import java.net.*;
    import java.io.*;
    import java.security.*;
    import sun.misc.BASE64Encoder;
    import javax.net.*;
    import javax.net.ssl.*;
    *  This example is based on JavaWorld Tip 111. Thanks to Pua Yeow Cheong for writing it.
    *  It tunnels through a proxy using the Https protocol.
    *  Thanks go to David Lord in the java forums for figuring out the main problem with Tip 111
    *  PLEASE NOTE: You need to have the JSSE 1.0.2 jars installed for this to work
    *  Downloads contents of a URL, using Proxy Tunneling and Basic Authentication
    public class URLReader {
         *  The main program for the URLReader class
        public static void main(String[] args) throws Exception {
            //set up strings for use in app. Change these to your own settings
            String proxyPassword = "password";
            String proxyUsername = "username";
            String proxyHost = "myproxy.com";
            String proxyPort = "3128";
            String connectionURL = "https://www.verisign.com";
            //set up system properties to indicate we are using a proxy
            System.setProperty("https.proxyHost", proxyHost);
            System.setProperty("https.proxyPort", proxyPort);
            System.setProperty("proxyHost", proxyHost);
            System.setProperty("proxyPort", proxyPort);
            System.setProperty("proxySet", "true");
            System.setProperty("http.proxyHost", proxyHost);
            System.setProperty("http.proxyPort", proxyPort);
            System.setProperty("http.proxySet", "true");
            //set up handler for jsse
            System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol");
            java.security.Provider prov = new com.sun.net.ssl.internal.ssl.Provider();
            Security.addProvider(prov);
            //create the connection
            URL myURL = new URL(connectionURL);
            URLConnection myConnection = myURL.openConnection();
            if (myConnection instanceof com.sun.net.ssl.HttpsURLConnection) {
                ((com.sun.net.ssl.HttpsURLConnection) myConnection).setSSLSocketFactory(new SSLTunnelSocketFactory(System.getProperty("proxyHost"), System.getProperty("proxyPort")));
            myConnection.setDoInput(true);
            myConnection.setDoOutput(true);
            BufferedReader in;
            try {
                System.err.println("opening Input stream1");
                in = new BufferedReader(
                        new InputStreamReader(
                        myConnection.getInputStream()));
                String inputLine;
                System.err.println("Input stream is Open1");
                while ((inputLine = in.readLine()) != null) {
                    System.err.println(inputLine);
                in.close();
                System.err.println("Input stream is Closed1");
            } catch (Exception e) {
                e.printStackTrace(System.err);
                String tmp = e.getMessage().toLowerCase().trim();
                System.err.println("tmp *" + tmp + "*");
                if (tmp.indexOf("http") > -1) {
                    //http error message to be parsed
                    tmp = tmp.substring(tmp.indexOf("http")).trim();
                    System.err.println("tmp *" + tmp + "*");
                    tmp = tmp.substring(8).trim();
                    System.err.println("tmp *" + tmp + "*");
                    if (tmp.startsWith("407")) {
                        //proxy authentication required
                        myURL = new URL(connectionURL);
                        myConnection = myURL.openConnection();
                        if (myConnection instanceof com.sun.net.ssl.HttpsURLConnection) {
                            ((com.sun.net.ssl.HttpsURLConnection) myConnection).setSSLSocketFactory(new SSLTunnelSocketFactory(System.getProperty("proxyHost"), System.getProperty("proxyPort"), proxyUsername, proxyPassword));
                        myConnection.setDoInput(true);
                        myConnection.setDoOutput(true);
                        try {
                            System.err.println("opening Input stream 2");
                            in = new BufferedReader(
                                    new InputStreamReader(
                                    myConnection.getInputStream()));
                            String inputLine;
                            System.err.println("Input stream is Open 2");
                            while ((inputLine = in.readLine()) != null) {
                                System.out.println(inputLine);
                            in.close();
                            System.err.println("Input stream is closed 2");
                        } catch (Exception ex) {
                            System.err.println(ex.getMessage());
                            ex.printStackTrace(System.err);
    *  SSLSocket used to tunnel through a proxy
    class SSLTunnelSocketFactory extends SSLSocketFactory {
        private String tunnelHost;
        private int tunnelPort;
        private SSLSocketFactory dfactory;
        private String tunnelPassword;
        private String tunnelUserName;
        private boolean socketConnected = false;
        private int falsecount = 0;
         *  Constructor for the SSLTunnelSocketFactory object
         *@param  proxyHost  The url of the proxy host
         *@param  proxyPort  the port of the proxy
        public SSLTunnelSocketFactory(String proxyHost, String proxyPort) {
            System.err.println("creating Socket Factory");
            tunnelHost = proxyHost;
            tunnelPort = Integer.parseInt(proxyPort);
            dfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
         *  Constructor for the SSLTunnelSocketFactory object
         *@param  proxyHost      The url of the proxy host
         *@param  proxyPort      the port of the proxy
         *@param  proxyUserName  username for authenticating with the proxy
         *@param  proxyPassword  password for authenticating with the proxy
        public SSLTunnelSocketFactory(String proxyHost, String proxyPort, String proxyUserName, String proxyPassword) {
            System.err.println("creating Socket Factory with password/username");
            tunnelHost = proxyHost;
            tunnelPort = Integer.parseInt(proxyPort);
            tunnelUserName = proxyUserName;
            tunnelPassword = proxyPassword;
            dfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
         *  Sets the proxyUserName attribute of the SSLTunnelSocketFactory object
         *@param  proxyUserName  The new proxyUserName value
        public void setProxyUserName(String proxyUserName) {
            tunnelUserName = proxyUserName;
         *  Sets the proxyPassword attribute of the SSLTunnelSocketFactory object
         *@param  proxyPassword  The new proxyPassword value
        public void setProxyPassword(String proxyPassword) {
            tunnelPassword = proxyPassword;
         *  Gets the supportedCipherSuites attribute of the SSLTunnelSocketFactory
         *  object
         *@return    The supportedCipherSuites value
        public String[] getSupportedCipherSuites() {
            return dfactory.getSupportedCipherSuites();
         *  Gets the defaultCipherSuites attribute of the SSLTunnelSocketFactory
         *  object
         *@return    The defaultCipherSuites value
        public String[] getDefaultCipherSuites() {
            return dfactory.getDefaultCipherSuites();
         *  Gets the socketConnected attribute of the SSLTunnelSocketFactory object
         *@return    The socketConnected value
        public synchronized boolean getSocketConnected() {
            return socketConnected;
         *  Creates a new SSL Tunneled Socket
         *@param  s                         Ignored
         *@param  host                      destination host
         *@param  port                      destination port
         *@param  autoClose                 wether to close the socket automaticly
         *@return                           proxy tunneled socket
         *@exception  IOException           raised by an IO error
         *@exception  UnknownHostException  raised when the host is unknown
        public Socket createSocket(Socket s, String host, int port, boolean autoClose)
                 throws IOException, UnknownHostException {
            Socket tunnel = new Socket(tunnelHost, tunnelPort);
            doTunnelHandshake(tunnel, host, port);
            SSLSocket result = (SSLSocket) dfactory.createSocket(tunnel, host, port, autoClose);
            result.addHandshakeCompletedListener(
                new HandshakeCompletedListener() {
                    public void handshakeCompleted(HandshakeCompletedEvent event) {
                        System.out.println("Handshake Finished!");
                        System.out.println("\t CipherSuite :" + event.getCipherSuite());
                        System.out.println("\t SessionId: " + event.getSession());
                        System.out.println("\t PeerHost: " + event.getSession().getPeerHost());
                        setSocketConnected(true);
            // thanks to David Lord in the java forums for figuring out this line is the problem
            // result.startHandshake(); //this line is the bug which stops Tip111 from working correctly
            return result;
         *  Creates a new SSL Tunneled Socket
         *@param  host                      destination host
         *@param  port                      destination port
         *@return                           tunneled SSL Socket
         *@exception  IOException           raised by IO error
         *@exception  UnknownHostException  raised when the host is unknown
        public Socket createSocket(String host, int port)
                 throws IOException, UnknownHostException {
            return createSocket(null, host, port, true);
         *  Creates a new SSL Tunneled Socket
         *@param  host                      Destination Host
         *@param  port                      Destination Port
         *@param  clientHost                Ignored
         *@param  clientPort                Ignored
         *@return                           SSL Tunneled Socket
         *@exception  IOException           Raised when IO error occurs
         *@exception  UnknownHostException  Raised when the destination host is
         *      unknown
        public Socket createSocket(String host, int port, InetAddress clientHost,
                int clientPort)
                 throws IOException, UnknownHostException {
            return createSocket(null, host, port, true);
         *  Creates a new SSL Tunneled Socket
         *@param  host             destination host
         *@param  port             destination port
         *@return                  tunneled SSL Socket
         *@exception  IOException  raised when IO error occurs
        public Socket createSocket(InetAddress host, int port)
                 throws IOException {
            return createSocket(null, host.getHostName(), port, true);
         *  Creates a new SSL Tunneled Socket
         *@param  address          destination host
         *@param  port             destination port
         *@param  clientAddress    ignored
         *@param  clientPort       ignored
         *@return                  tunneled SSL Socket
         *@exception  IOException  raised when IO exception occurs
        public Socket createSocket(InetAddress address, int port,
                InetAddress clientAddress, int clientPort)
                 throws IOException {
            return createSocket(null, address.getHostName(), port, true);
         *  Sets the socketConnected attribute of the SSLTunnelSocketFactory object
         *@param  b  The new socketConnected value
        private synchronized void setSocketConnected(boolean b) {
            socketConnected = b;
         *  Description of the Method
         *@param  tunnel           tunnel socket
         *@param  host             destination host
         *@param  port             destination port
         *@exception  IOException  raised when an IO error occurs
        private void doTunnelHandshake(Socket tunnel, String host, int port) throws IOException {
            OutputStream out = tunnel.getOutputStream();
            //generate connection string
            String msg = "CONNECT " + host + ":" + port + " HTTP/1.0\n"
                     + "User-Agent: "
                     + sun.net.www.protocol.http.HttpURLConnection.userAgent;
            if (tunnelUserName != null && tunnelPassword != null) {
                //add basic authentication header for the proxy
                sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();
                String encodedPassword = enc.encode((tunnelUserName + ":" + tunnelPassword).getBytes());
                msg = msg + "\nProxy-Authorization: Basic " + encodedPassword;
            msg = msg + "\nContent-Length: 0";
            msg = msg + "\nPragma: no-cache";
            msg = msg + "\r\n\r\n";
            System.err.println(msg);
            byte b[];
            try {
                //we really do want ASCII7 as the http protocol doesnt change with locale
                b = msg.getBytes("ASCII7");
            } catch (UnsupportedEncodingException ignored) {
                //If ASCII7 isn't there, something is seriously wrong!
                b = msg.getBytes();
            out.write(b);
            out.flush();
            byte reply[] = new byte[200];
            int replyLen = 0;
            int newlinesSeen = 0;
            boolean headerDone = false;
            InputStream in = tunnel.getInputStream();
            boolean error = false;
            while (newlinesSeen < 2) {
                int i = in.read();
                if (i < 0) {
                    throw new IOException("Unexpected EOF from Proxy");
                if (i == '\n') {
                    headerDone = true;
                    ++newlinesSeen;
                } else
                        if (i != '\r') {
                    newlinesSeen = 0;
                    if (!headerDone && replyLen < reply.length) {
                        reply[replyLen++] = (byte) i;
            //convert byte array to string
            String replyStr;
            try {
                replyStr = new String(reply, 0, replyLen, "ASCII7");
            } catch (UnsupportedEncodingException ignored) {
                replyStr = new String(reply, 0, replyLen);
            //we check for connection established because our proxy returns http/1.1 instead of 1.0
            if (replyStr.toLowerCase().indexOf("200 connection established") == -1) {
                System.err.println(replyStr);
                throw new IOException("Unable to tunnel through " + tunnelHost + ":" + tunnelPort + ". Proxy returns\"" + replyStr + "\"");
            //tunneling hanshake was successful
    }<----- End Copy and Paste -------->

    BTW, if you are using an implementation in which
    the http/https implementation recognises
    the java.net.Authenticator properly, you can use
    that framework to do basic/digest authentication.
    I think Sun's JDK 1.4 supports both basic
    and digest for both proxies and the actual end
    site you connect via http/https, but I haven't
    tested it to be sure. I know it works
    with http/basic at the end host.
    Today's Ob hack:
    import java.net.*;
    import java.io.*;
    class MyAuth extends Authenticator {
        protected PasswordAuthentication getPasswordAuthentication() {
            System.out.println("The realm '" + getRequestingPrompt() +
                "' at '" + getRequestingHost() + ":" + getRequestingPort() +
                "'\n" + "using " + getRequestingProtocol() + " is requesting " +
                getRequestingScheme().toUpperCase() + " authentication.");
            System.out.println("");
            System.out.println("What should we send them?  Let's send them ...");
            System.out.println("");
            return new PasswordAuthentication("username", "password".toCharArray());    }  
    public class MyURL {
        public static void main(String[] args) throws Exception {
            // set to the authenticator you want to use.
            Authenticator.setDefault(new myAuth());
            URL url =
                new URL("http://www.some.com/something_protected/index.htm");
            BufferedReader in = new BufferedReader(
                                    new InputStreamReader(
                                    url.openStream()));
            String inputLine;
            while ((inputLine = in.readLine()) != null) {
                System.out.println(inputLine);
            in.close();

  • JMS over HTTP, HTTP tunneling, imqhttp, Glassfish, Open MQ

    Hi,
    I want to run JMS over HTTP, because of firewalls.
    My environment:
    - Windows 7 64 bits
    - Java EE 6 SDK (Glassfish 3, installer java_ee_sdk-6u4-jdk7-windows-x64.exe)
    Following instructions (Oracle GlassFish Server Message Queue Administration Guide, HTTP/HTTPS Support), I have done as follows:
    1.- modified default.properties (in my case file D:\usr\Glassfish3\mq\lib\props\broker\default.properties) by adding "httpjms" to imq.service.activelist, so I have:
    # List of active services, started at startup
    imq.service.activelist=jms,admin,httpjms
    2.- modified server.policy file (in my case D:\usr\Glassfish3\glassfish\domains\domain1\config\server.policy) by adding at the end:
    grant codeBase "file:${com.sun.aas.installRoot}/glassfish/domains/domain1/applications/imqhttp/-" {
    permission java.net.SocketPermission "*",
    "connect,accept,resolve";
    3.- I then, using the Glassfish Admin Console (listening on port 4848), deployed the application packaged in the imqhttp.war WAR file (this WAR file taken from D:\usr\Glassfish3\mq\lib), using "imqhttp" as Context Root name.
    4.- I then invoke URL http://127.0.0.1:8080/imqhttp/tunnel and get the following return:
    HTTP tunneling servlet ready.
    Servlet Start Time : Wed Jul 04 19:28:01 CEST 2012
    Accepting TCP connections from brokers on port : 7675
    Total available brokers = 1
    Broker List :
    ANTEC:imqbroker
    Importantly: I had to reboot everything, including Windows to get the broker listed in the broker list.
    ...uh !!???!! ...it just shows that posting to discussion groups and sharing is great... yesterday, I could not get this working, I had nothing in my Broker list, and a bunch of exceptions when trying to publish a message... I swear I re-started Glassfish many times... now it's working all right, and the only thing I've done meantime is to reboot the PC...
    In any case, I keep the post, it might be of help to someone.
    Later
    Varus

    To have the new setting of broker property imq.service.activelist take effect, if EMBEDDED (default) jms-service is used, the GlassFish server needs to be restarted; otherwise, the broker process needs to be restarted. If the JMS service (EMBEDDED mode) in the GlassFish server has not been started (due to GlassFish JMS lazy init - default), run 'asadmin jms-ping' will start the embedded broker in GlassFish server.

  • HTTP tunneling and reverse proxy server

    We're currently using Windows Media Services (WMS) to stream
    video on our website. There is an option WMS to use the HTTP
    protocol and to specify the port you'd like to use. This has
    allowed us to stream video through our external firewall, through
    our reverse proxy server, and through our internal firewall to our
    media server. I've been trying for two days now to get Flash Media
    Server (FMS) to do the same thing. For some reason the HTTP
    tunneling (RTMPT) protocol doesn't appear to be acting like the
    HTTP protocol that WMS is using. Anyone have some tips on this
    configuration. I've scoured web resources and documentation as best
    I could. Any help would be greatly appreciated.
    Thanks.

    To give a better picture, here's a more complete description of set up and goals
    Static IP hits external interface of ASA. ASA has a static nat rule to forward it to my DMZ server.
    DMZ server is running IIS 8. Here are what some of the sites look like.
    jira.xxxxx.com -> 10.1.10.21 (ubuntu server) | port 80
    email.xxxxx.com - > 10.1.10.16 (domain joined server 2012) port 80, 443
    media.xxxxx.com -> 10.1.10.14 (domain joined server 2012) port 80, 443
    other stuff like this -> 10.1.10.x port 80 or others
    All of the A records for those domain names point to the static which routes to the ASA and then is NAT'd to the DMZ server. 
    What do I need to do in IIS to have those sites get directed to the proper internal locations?
    Thanks!!

  • Http Proxy To JMS Proxy Call

    Hi,
    When i am trying to route a request from a http proxy service to JMS proxy i got following exception.
    Exception on TransportManagerImpl.receiveMessage, com.bea.wli.sb.transports.TransportException: No transport information is registered for: ProxyService AssetInbound/ProxyService/AssetInboundjms
    com.bea.wli.sb.transports.TransportException: No transport information is registered for: ProxyService AssetInbound/ProxyService/AssetInboundjms
         at com.bea.wli.sb.transports.TransportManagerImpl.receiveMessage(TransportManagerImpl.java:201)
         at com.bea.wli.sb.transports.jms.JmsInboundMDB.onMessage(JmsInboundMDB.java:108)
         at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:429)
         at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:335)
         at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:291)
         at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4060)
         at weblogic.jms.client.JMSSession.execute(JMSSession.java:3953)
         at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:4467)
         at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
    >
    If anyone has faced such problem or know what am i doing incorrect kindly reply.
    Regards,
    Sandeep

    Routing a message from an HTTP proxy to a JMS proxy will put the message in an intermediary queue before it is read by the JMS proxy. I haven't seen this exception before so I advise you to open a support case.
    As a workaround you can route the message to a JMS business service to put the message in the queue and see if it solves your issue.
    Gregory Haardt
    ALSB Prg. Manager
    [email protected]

  • Tunneling JMS through  http

    hi
    Is there any way to tunnel JMS through http like RMI is tunneled.
    There is class along with the ApplicationServer "com.evermind.server.jms.JMSHttpTunnelServlet" which seems to be a servlet for tunnling JMS through http.
    But there seems to be no documentation or help on how to make use of it.
    Can somebody put some light on it? Or, is it possible to make use of third party JMS server to achieve this
    regards
    Raees

    hi
    Is there any way to tunnel JMS through http like RMI is tunneled.
    There is class along with the ApplicationServer "com.evermind.server.jms.JMSHttpTunnelServlet" which seems to be a servlet for tunnling JMS through http.
    But there seems to be no documentation or help on how to make use of it.
    Can somebody put some light on it? Or, is it possible to make use of third party JMS server to achieve this
    regards
    Raees

  • Trouble with a JMS proxy listening to a distributed topic

    Hi all,
    I've setup an ALSB cluster with 1 admin instance and 2 managed instances (m01 and m02).
    I've also configured 1 distributed topic A and defined the two below proxies:
    - proxy P1 is a http proxy that publishes a message into the distributed topic A. The proxy uses a business service with jms protocol and endpoint uri:
    jms://wasdv1r3n1.dev.b-source.net:7301,wasdv1r3n1.dev.b-source.net:7303/my.ConnectionFactory/DistributedTopicA
    - proxy P2 is a JMS proxy listening to
    jms://wasdv1r3n1.dev.b-source.net:7301,wasdv1r3n1.dev.b-source.net:7303/my.ConnectionFactory/DistributedTopicA
    that logs the received message and writes it to file.
    The strange behaviour is that on the managed m01 log file I see the message received from P2 but also on the managed m02 log file I see the message received from P2.
    So I'm sending out 1 message and receiving 1 x managed that is total = 2.
    This strange behaviour is also confirmed from the fact that I see on the file system 2 files and not only 1.
    I thought it was a problem concerning the config of business service that publishes message into the distributed topicA; but I tried with an external 'normal' java JMS subscriber that listens to t3://wasdv1r3n1.dev.b-source.net:7301,wasdv1r3n1.dev.b-source.net:7303 and it works properly: it receives only 1 message.
    I'm trying to understand where is my fault.
    Do you have any idea ?
    Thanks in advance
    Patrizio

    If you publish a message to a topic, all the proxy that subscribed to this topic will receive the message. If you want the message to be processed by only one managed server you can publish to a queue instead.
    Gregory Haardt
    ALSB Prg. Manager
    [email protected]

  • HTTP-Tunneling through Apache Plug-in

    Hello,
    has anybody experience with HTTP-Tunneling of requests to a WLS
    4.5.1SP13 through an Apache-Webserver?
    I'm not able to configure the apache plug-in from weblogic to act as a
    reverse proxy for requests coming from a
    Java Client Application.
    Any Hints available?
    Remo

    "Jong Lee" <[email protected]> wrote in message
    news:3a4a9efa$[email protected]..
    >
    Remo Schnidrig <[email protected]> wrote:
    Hello Jong,
    HTTP tunneling will append ".tun" to your request.
    For apache, you can use "MatchExpression" to proxy the mime type.
    i.e: add the following line to your httpd.conf
    MatchExpression *.tunThat is functioning. Thank you very much.
    Another question:
    What about HTTPS-Tunneling through an Apache-Server?
    How can I get everything through?
    Thank you
    Remo
    We don't support https from the bridge to the server yet.
    JongWhat about using HTTPS-Tunneling between our Java client and the WLS
    Stronghold plug-in and HTTP-Tunneling between the plug-in and the WLS?
    If this is possible, how do I have to setup the stronghold?
    Remo

  • OSB JMS Proxy

    Hi ,
    can i use a Proxy service with out a Business service to write a messge onto a queue.I jus tried a sample on my local and i am able to write a message on to a queue using a proxy service .
    Flow :-
    PS1(http) using publish action invokes -> PS2 (jms uri config)
    I am clue less how this is working.when the PS2 transport has been defined as jms ,how am i able to invoke it from PS1 using publish action?
    My understanding of OSB is ProxyService is for reading message from queue and Business service is for writing or publishing a message onto a queue.
    can some body help me udnerstand how this is working.

    Basically, you're right when it comes to the difference between business and proxy services. Also, you're not the only confused when routing data from http-based proxy to JMS proxy.
    We touched the topic earlier:
    Re: Retry mechanism for HTTP Transport in OSB
    The point is your layout (HTTP PS -> JMS PS) is sound and works even without intermediate business service.

  • HTTPS Tunneling in OC4J

    Has anyone got HTTPS tunneling working in OC4J when there is a "HTTP 1.1 proxy server" (to get through firewall) that requires Basic authentication between the client and OC4J? I can get this working fine with HTTP, but I need HTTPS. I'm using oc4j version 1.0.2.2.1. When I tried to use https:ormi://host:443/appname without a http proxy server between the client and the server things work great. When I have a http proxy server, I get a similar exception:
    javax.naming.NamingException: Error reading application-client descriptor: Error communicating with server: Lookup error: java.lang.NegativeArraySizeException; nested exception is:
    java.lang.NegativeArraySizeException; nested exception is:
    javax.naming.NamingException: Lookup error: java.lang.NegativeArraySizeException; nested exception is:
    java.lang.NegativeArraySizeException
    at com.evermind.server.ApplicationClientInitialContextFactory.getInitialContext(ApplicationClientInitialContextFactory.java:184)
    at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:665)
    at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:246)
    at javax.naming.InitialContext.init(InitialContext.java:222)
    at javax.naming.InitialContext.<init>(InitialContext.java:198)
    at com.platts.dmz.DMZTestingClient.<init>(DMZTestingClient.java:48)
    at com.platts.dmz.DMZTestingClient.main(DMZTestingClient.java:374)
    Thanks
    Frank

    What is proxying the request to OC4J?
    Can you tell what proxy server are you using ?
    regards
    Debu Panda
    Oracle

  • Http tunneling

    I'm facing some problems while doing http tunneling thru proxy and below I'm giving some trace messages.
    Without proxy the system seems to work ok.
    Client -------- proxy ------- Tunnel Server --------- Server
    The tunnel server tries to send back the data to client on the http connection.
    The client is trying to receive data on the http connection.
    The tunnel forwarder throws the following exception. Basically the tunnel forwarder thinks that the socket is closed immediately.
    java.net.SocketException: Socket closed
    at java.net.SocketOutputStream.socketWrite(Native Method)
    at java.net.SocketOutputStream.write(Unknown Source)
    at java.io.ObjectOutputStream.drain(Unknown Source)
    at java.io.ObjectOutputStream.setBlockData(Unknown Source)
    at java.io.ObjectOutputStream.writeObject(Unknown Source)
    at TunnelForwarder.run(TunnelForwarder.java:108)
    java.net.SocketException: Socket closed
    at java.net.SocketOutputStream.socketWrite(Native Method)
    at java.net.SocketOutputStream.write(Unknown Source)
    at java.io.ObjectOutputStream.drain(Unknown Source)
    at java.io.ObjectOutputStream.setBlockData(Unknown Source)
    at java.io.ObjectOutputStream.writeObject(Unknown Source)
    at TunnelForwarder.run
    The client throws the following exception. It thinks that the httpConnection is down immediately.
    java.net.SocketException: Unexpected end of file from server
    at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source)
    at sun.net.www.http.HttpClient.parseHTTP(Unknown Source)
    at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source)
    at sun.net.www.http.HttpClient.parseHTTP(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at sun.plugin.protocol.jdk12.http.HttpURLConnection.getInputStream(Unknown Source)
    at TunnelReader.establishConnectionPath(TunnelReader.java:98)
    at TunnelReader.run(TunnelReader.java:124)
    java.lang.NullPointerException
    at TunnelReader.run(TunnelReader.java:130)
    However, the tunnel server shows that the tunnel is maintained
    And even the netstat -n shows that the connection exists
    C:\WINNT>netstat -n
    Active Connections
    Proto Local Address Foreign Address State
    |
    |
    TCP tunnelServer:3299 server:12000 ESTABLISHED
    |
    |
    TCP tunnelServer:9000 proxy:48040 ESTABLISHED
    |
    |
    The http connection is actually brought down by the proxy after a considerably long time (more than a minute).
    Regards,
    Rahuole pawer

    Do not try base your tunnel on urlConnections. After you send the message, you cannot read. The only way is to use 2 connections, because all the proxy servers support only HTTP/1.0, which was depricated by W3C in 1996 after HTTP/1.1 was accomplished. If your proxy does you are lucky. To make your tunnel working over HTTP/1.0 is terrible task of TCP stack rewriting in Java. May be someone has it implemented already. I am interested to look after.

  • Is forcing Http tunneling mode possible ?

    Hello,
    in order to make some tests between 2 PC on the same intranet, I would like to know if it's possible to force RMI to use http tunneling, and to choose the mode : http-to-port or http-to-cgi ?
    If possible, please tell me how.
    Many thanks in advance.
    C. BREZAK

    RMI depends on custom socket factories (sun.rmi.transport.proxy.RMIHttpToPortSocketFactory, sun.rmi.transport.proxy.RMIHttpToCGISocketFactory) for carrying out the HTTP tunneling of RMI request if normal way of establishing a connection with the remote object fails. If no particular RMI socket factory is set in RMI application, RMI runtime chooses the RMIMasterSocketFactory() for creating client and server sockets. This socket factory maintains a list of socket factories which should be tried in order in establishing a successful connection with the remote object. This list includes RMIDirectSocketFacotry and HTTP tunneling socket factories mentioned above if http.proxyHost proerty is set.
    You can force HTTP tunneling by explicitly setting default socket factory (RMISocketFactory.setSocketFactory(...)) to sun.rmi.transport.proxy.RMIHttpToPortSocketFactory in the client application. If this fails you can try setting default socket factory to RMIHttpToCGISocketFactory. It may not be possible trying these two options in the same instance of the program, because setSocketFactory() does not allow you to change the already defined default factory to the new one. This may not be elegant solution.
    -- Srinath Mandalapu

  • Java.io.IOException: Error initializing HTTP tunnel connection:

    Hi,
    I am running sample Midlet to communicate to any URL like http://www.google.com or my internal servlet. It is opening the connection but when I try to open the inputstream it gives me following error.
    java.io.IOException: Error initializing HTTP tunnel connection:
    HTTP/1.1 407 Proxy Authentication Required ( The ISA Server requires authorization to fulfill the request. Access to the Web Proxy filter is denied. )
    Via: 1.1 TPSL-PROXY
    Proxy-Authenticate: Negotiate
    Proxy-Authenticate: Kerberos
    Proxy-Authenticate: NTLM
    Proxy-Authenticate: Digest qop="auth",algorithm=MD5-sess,nonce="3ace49b386edc8013f52a8f9b7c0638bfb8a6ca60b76bf826632da7cd6185c30d3c61c1a61a0aa91",charset=utf-8,realm="TPSL.LOCAL"
    Connection: close
    Proxy-Connection: close
    Pragma: no-cache
    Cache-Control: no-cache
    Content-Type: text/html
    Content-Length: 722
         at com.sun.midp.io.j2me.http.Protocol.doTunnelHandshake(+333)
         at com.sun.midp.io.j2me.http.Protocol.connect(+145)
         at com.sun.midp.io.j2me.http.Protocol.streamConnect(+57)
         at com.sun.midp.io.j2me.http.Protocol.startRequest(+12)
         at com.sun.midp.io.j2me.http.Protocol.sendRequest(+38)
         at com.sun.midp.io.j2me.http.Protocol.sendRequest(+6)
         at com.sun.midp.io.j2me.http.Protocol.closeOutputStream(+4)
         at com.sun.midp.io.BaseOutputStream.close(+14)
         at HTTPTest.getGrade(+155)
         at HTTPTest.startApp(+8)
         at javax.microedition.midlet.MIDletProxy.startApp(+7)
         at com.sun.midp.midlet.Scheduler.schedule(+270)
         at com.sun.midp.main.Main.runLocalClass(+28)
         at com.sun.midp.main.Main.main(+80)
    I think it is going through SSL handshake which implemented in HTTP protocol in J2ME.
    I have already done the proxy setup and authentication in Sun Wireless toolkit > preferences > Network configuration.
    Still error is there. Please help me regarding this, not able to go ahead and rest in peace.
    thanks & regards,
    mJK

    Hi,
    have you checked proxy settings in WTK preferences?
    Peter

Maybe you are looking for

  • Urgent: ABAP Dump when using ME9F

    Hi All, I am using ME9F transaction to re-print POs. I get a short dump stating error "MOVE_TO_LIT_NOTALLOWED_NODATA". This just started happend after we applied the support packs. We are using custom SAP Script form. Did anyone ever experience this

  • Imported Excel Sheet Rows won't UNHIDE

    Imported basic checkbook type spreadsheet from Excel into Numbers. In original, left column has dates, but not every row -- some dates had multiple entries so several cells in column A were blank. When I imported all seemed to go okay... but then I n

  • Is Deleting a Dimension in 11.1.1 the same as 9.3.1?

    Are these still the steps to manually delete a dimension and hack the tables in 11.1.1? Also are the table names the same if it's Oracle not SQL Server? Deleting an extra dimension in Planning In SQL Server:      Stop Web Server      Find the object

  • Address book how do i add an attachment an image of a sign

    i want to be able to add an attachment to an address book entry, how can i do this

  • My Photoshop won't do anything

    I can't actually get photoshop to go into the image editor. The program launches just fine, I can open up any dialogs such as preferences, but when I try to open something or start a new file, nothing happens. No error message either. If I click File