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