We have a Java application that can connect to a PHP-based server from
California (C) but not from India(I). Besides geographic location, the only
known difference between C and I is that I accesses the Internet via a proxy
server. We believe we have worked out the proxy issues in that I can reach and
receive correct data from the server via HTTP. However, an attempt to access
the same data using Axis/SOAP leads to a 'SocketException: connection Reset'
(output attached).
We have boiled this all down to a JUnit test (attached) that connects to the
same server via HTTP and Axis. This test completely works from C whereas only
the HTTP test works from I. Both tests obtain a list of organism names by going
to the webpage
http://137.120.14.24/wikipathways-test/wpi/webservice/webservice.php/listOrganisms.
Does anyone know the cause to this problem or have any suggestions on how to
debug it (we don't run the web service but can communicate with those that do)?
System Info
-----------
Server: wso2 wsf/php v.2.0
Clients: OS: Windows-XP, JVM: 1.6
Libraries Used to Run the Test
------------------------------
Junit.jar
Axis.jar
jaxrpc.jar
commons-logging-1.0.4.jar
commons-discovery-0.2jar
wsdl4j-1.5.1.jar
Failed Client (I) Output
------------------------
PROXY SETTINGS BEFORE TEST:
http.proxyHost= 'ptproxy.persistent.co.in'
http.proxyHost= 'null'
http.proxyPort= '8080'
http.proxyUser= 'null'
http.proxyPassword= 'null'
socksProxyHost= 'null'
socksProxyPort= 'null'
java.net.socks.username= 'null'
java.net.socks.password= 'null'
testListOrganismsUsingHTTP organisms:
<ns1:listOrganismsResponse
xmlns:ns1="http://www.wso2.org/php/xsd"><ns1:organisms>Anopheles
gambiae</ns1:organisms><ns1:organisms>Arabidopsis
thaliana</ns1:organisms><ns1:organisms>Bos
taurus</ns1:organisms><ns1:organisms>Bacillus
subtilis</ns1:organisms><ns1:organisms>Caenorhabditis
elegans</ns1:organisms><ns1:organisms>Canis
familiaris</ns1:organisms><ns1:organisms>Danio
rerio</ns1:organisms><ns1:organisms>Drosophila
melanogaster</ns1:organisms><ns1:organisms>Escherichia
coli</ns1:organisms><ns1:organisms>Equus
caballus</ns1:organisms><ns1:organisms>Gallus
gallus</ns1:organisms><ns1:organisms>Homo
sapiens</ns1:organisms><ns1:organisms>Mus
musculus</ns1:organisms><ns1:organisms>Oryza
sativa</ns1:organisms><ns1:organisms>Pan
troglodytes</ns1:organisms><ns1:organisms>Rattus
norvegicus</ns1:organisms><ns1:organisms>Saccharomyces
cerevisiae</ns1:organisms><ns1:organisms>Xenopus
tropicalis</ns1:organisms></ns1:listOrganismsResponse>
testListOrganismsUsingHTTP test PASSED
PROXY SETTINGS BEFORE TEST:
http.proxyHost= 'ptproxy.persistent.co.in'
http.proxyHost= 'null'
http.proxyPort= '8080'
http.proxyUser= 'null'
http.proxyPassword= 'null'
socksProxyHost= 'null'
socksProxyPort= 'null'
java.net.socks.username= 'null'
java.net.socks.password= 'null'
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.net.SocketException: Connection reset
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:java.net.SocketException:
Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.io.BufferedInputStream.fill(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at
org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:739)
at
org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144)
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:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at
com.agilent.pwdemo.unittest.NetworkTests$TestStub.listOrganisms(NetworkTests.java:329)
at
com.agilent.pwdemo.unittest.NetworkTests.testListOrganismsUsingAxis(NetworkTests.java:167)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at junit.textui.TestRunner.doRun(TestRunner.java:116)
at junit.textui.TestRunner.doRun(TestRunner.java:109)
at junit.textui.TestRunner.run(TestRunner.java:72)
at
com.agilent.pwdemo.unittest.NetworkTests.main(NetworkTests.java:81)
{http://xml.apache.org/axis/}hostname:ps2373
java.net.SocketException: Connection reset
at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
at
org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:154)
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:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at
com.agilent.pwdemo.unittest.NetworkTests$TestStub.listOrganisms(NetworkTests.java:329)
at
com.agilent.pwdemo.unittest.NetworkTests.testListOrganismsUsingAxis(NetworkTests.java:167)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at junit.textui.TestRunner.doRun(TestRunner.java:116)
at junit.textui.TestRunner.doRun(TestRunner.java:109)
at junit.textui.TestRunner.run(TestRunner.java:72)
at
com.agilent.pwdemo.unittest.NetworkTests.main(NetworkTests.java:81)
Caused by: java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.io.BufferedInputStream.fill(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at
org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:739)
at
org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144)
... 27 more
Successful Client (C) Output
----------------------------
PROXY SETTINGS BEFORE TEST:
http.proxyHost= 'null'
http.proxyHost= 'null'
http.proxyPort= 'null'
http.proxyUser= 'null'
http.proxyPassword= 'null'
socksProxyHost= 'null'
socksProxyPort= 'null'
java.net.socks.username= 'null'
java.net.socks.password= 'null'
testListOrganismsUsingHTTP organisms:
<ns1:listOrganismsResponse
xmlns:ns1="http://www.wso2.org/php/xsd"><ns1:organisms>Anopheles
gambiae</ns1:organisms><ns1:organisms>Arabidopsis
thaliana</ns1:organisms><ns1:organisms>Bos
taurus</ns1:organisms><ns1:organisms>Bacillus
subtilis</ns1:organisms><ns1:organisms>Caenorhabditis
elegans</ns1:organisms><ns1:organisms>Canis
familiaris</ns1:organisms><ns1:organisms>Danio
rerio</ns1:organisms><ns1:organisms>Drosophila
melanogaster</ns1:organisms><ns1:organisms>Escherichia
coli</ns1:organisms><ns1:organisms>Equus
caballus</ns1:organisms><ns1:organisms>Gallus
gallus</ns1:organisms><ns1:organisms>Homo
sapiens</ns1:organisms><ns1:organisms>Mus
musculus</ns1:organisms><ns1:organisms>Oryza
sativa</ns1:organisms><ns1:organisms>Pan
troglodytes</ns1:organisms><ns1:organisms>Rattus
norvegicus</ns1:organisms><ns1:organisms>Saccharomyces
cerevisiae</ns1:organisms><ns1:organisms>Xenopus
tropicalis</ns1:organisms></ns1:listOrganismsResponse>
testListOrganismsUsingHTTP test PASSED
PROXY SETTINGS BEFORE TEST:
http.proxyHost= 'null'
http.proxyHost= 'null'
http.proxyPort= 'null'
http.proxyUser= 'null'
http.proxyPassword= 'null'
socksProxyHost= 'null'
socksProxyPort= 'null'
java.net.socks.username= 'null'
java.net.socks.password= 'null'
Oct 8, 2009 2:36:34 PM org.apache.axis.utils.JavaUtils isAttachmentSupported
WARNING: Unable to find required classes (javax.activation.DataHandler and
javax.mail.internet.MimeMultipart). Attachment support is disabled.
testListOrganismsUsingAxis organisms:
Anopheles gambiae
Arabidopsis thaliana
Bos taurus
Bacillus subtilis
Caenorhabditis elegans
Canis familiaris
Danio rerio
Drosophila melanogaster
Escherichia coli
Equus caballus
Gallus gallus
Homo sapiens
Mus musculus
Oryza sativa
Pan troglodytes
Rattus norvegicus
Saccharomyces cerevisiae
Xenopus tropicalis
testListOrganismsUsingAxis test PASSED