Ok.  I think I figured out how to fix this, but we are in the process of testing it to make sure.  If we get it fixed, I will post the answer.
 

Thank you,

Larry M. Lemons

(304) 726-4809 Ext. 4505

 

 


From: Larry Lemons [mailto:[EMAIL PROTECTED]
Sent: Thursday, August 17, 2006 9:28 AM
To: [email protected]
Subject: RE: Using the Generated Classes in an Applet Through a Proxy Server

Does anyone have any ideas at all for this problem?
 

Thank you,

Larry M. Lemons

(304) 726-4809 Ext. 4505

 

 


From: Larry Lemons [mailto:[EMAIL PROTECTED]
Sent: Tuesday, August 15, 2006 10:16 AM
To: [email protected]
Subject: RE: Using the Generated Classes in an Applet Through a Proxy Server

I forgot to mention that I am using the JAVA 1.5_07 for building the Stubs and java 1.5_0X for the applet use.  I'm also using the WSDL2JAVA version 1.2. (I didn't realize we were using such an old version.)
 

Thank you,

Larry M. Lemons

(304) 726-4809 Ext. 4505

 

 


From: Larry Lemons [mailto:[EMAIL PROTECTED]
Sent: Monday, August 14, 2006 2:36 PM
To: [email protected]
Subject: Using the Generated Classes in an Applet Through a Proxy Server

I have an applet that communicates with a web service using a few different web methods.  The applet connects fine and even uses the web methods fine as long as the client isn't behind a proxy server.
 
As soon as the applet is used behind a proxy server, it breaks.  The applet is able to connect to the Web Service, but as soon as it attempts to use one of the web methods, it breaks.  What I have seen is the following:
 
When connecting to and using the applet from outside of a firewall, it uses proxy=DIRECT everywhere.
 
As soon as the applet is moved behind the firewall, all the connections are created successfully using proxy=HTTP @ /IPADDRESS:PORT
But when it actually gets to doing the web method call, after doing the _call.invoke(param1, param2, param3, etc.), it gets to this call:
 
liveconnect: Invoking JS method: execScript
liveconnect: Invoking JS method: evalIntermediateValueToReturn
network: Connecting socket://fema.imcwv.com:443 with proxy=DIRECT
It uses a socket and the URL in a String format with port 443, which is correct.  The same call outside of the proxy server is the following:
 
network: Connecting socket://URL_STRING:443 with proxy=DIRECT
 
The difference is the result for the two.  Outside of the proxy server the result is the expected:
 
network: Connecting http://URL_STRING/java/lang/StringBeanInfo.class with proxy=DIRECT
network: Connecting http://URL_STRING/java/lang/StringBeanInfo.class with cookie "ASP.NET_SessionId=phcqzm55x31r0p45ox3sdanj"
 
Inside of the proxy server, the following is encountered:
 
AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
 faultSubcode:
 faultString: java.net.ConnectException: Connection timed out: connect
 faultActor:
 faultNode:
 faultDetail:
 {http://xml.apache.org/axis/}stackTrace:java.net.ConnectException: Connection timed out: connect
 at java.net.PlainSocketImpl.socketConnect(Native Method)
 at java.net.PlainSocketImpl.doConnect(Unknown Source)
 at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
 at java.net.PlainSocketImpl.connect(Unknown Source)
 at java.net.SocksSocketImpl.connect(Unknown Source)
 at java.net.Socket.connect(Unknown Source)
 at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(Unknown Source)
 at com.sun.net.ssl.internal.ssl.SSLSocketImpl.<init>(Unknown Source)
 at com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl.createSocket(Unknown Source)
 at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:92)
 at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)
 at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)
 at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
 at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
 at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
 at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
 at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
 at org.apache.axis.client.Call.invokeEngine(Call.java:2765)
 at org.apache.axis.client.Call.invoke(Call.java:2748)
 at org.apache.axis.client.Call.invoke(Call.java:2424)
 at org.apache.axis.client.Call.invoke(Call.java:2347)
 at org.apache.axis.client.Call.invoke(Call.java:1804)
 at URL_STRING.WEB_SERVICE_NAMESoapStub.webMethod(Unknown Source)
 at AppletName.CallingClass.<init>(CallingClass.java:127)
 
What I have noticed is that as soon as the call is made using the socket connection rather than an HTTP connection, it tries to use proxy=DIRECT instead of proxy=HTTP @ /IPADDRESS:PORT, where IPADDRESS is the IP Address of the proxy server and PORT is the port to be used for the proxy server.
 
Has anyone else ran into this situation or does anyone have any ideas of how to fix this problem.  The applet must be able to run behind any proxy server, not a specific one, and we don't have any idea before hand what the proxy server settings will be.  I do know that the applet gets the proxy server settings from the browser automatically, as can be seen from the JAVA Console dump, with the exception at the point in time when it actually calls the web method.

Thank you in advance,

Larry M. Lemons

Reply via email to