[
https://jira.jboss.org/jira/browse/JBWS-2886?page=com.atlassian.jira.plug...
]
Marco Benuzzi commented on JBWS-2886:
-------------------------------------
I'm using JBoss EAP, but I have no support contract (I've tried to ask the
support, but they rejected my ticket).
I've already opened I forum thread, but I didn't put the reference here; now
I've corrected my mistake.
In any case I found the workaround of the Thread.Sleep while I was investigating the issue
using wireshark to sniff the network traffic. The strange behavior I found is that
actually no network traffic is generated on the second call, simple the client wait
(apparently doing nothing) and than it raises the exception.
Error doing multiple calls to web service
-----------------------------------------
Key: JBWS-2886
URL:
https://jira.jboss.org/jira/browse/JBWS-2886
Project: JBoss Web Services
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: jbossws-native
Affects Versions: jbossws-native-3.1.2
Environment: Linux Fedora 11 kernel 2.6.30.10-105
JBoss Application Platform 5.0.0.GA
Reporter: Marco Benuzzi
I'm testing JBossWS to access a remote web service.
Just for test I'm using a java console application; I run it with sun jdk 6.0.17 with
classpath jboss-eap-5.0/jboss-as/client/*.jar (linux)
I've created stubs client classes with wsconsume.
If a make a single call all works fine.
MyWebServices service = new MyWebServices();
MYSOAPHandlerResolver handlerResolver = new MYSOAPHandlerResolver();
service.setHandlerResolver(handlerResolver);
MyWebServicesPT port = service.getMYWebServicesPort();
port.call1();
// OK
If a make more than one call, only the first ones works fine.
MyWebServices service = new MyWebServices();
MYSOAPHandlerResolver handlerResolver = new MYSOAPHandlerResolver();
service.setHandlerResolver(handlerResolver);
MyWebServicesPT port = service.getMYWebServicesPort();
port.call1();
// OK
port.call2();
// after 80 seconds I got an exception (please note that I don't see any network
activity with wireshark)
javax.xml.ws.WebServiceException: java.io.IOException: Could not transmit message
at
org.jboss.ws.core.jaxws.client.ClientImpl.handleRemoteException(ClientImpl.java:310)
at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:243)
at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:162)
at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:148)
at $Proxy15.commandCryptic(Unknown Source)
at it.celeweb.otagw.adapter.amadeus.test.AmadeusClient.main(AmadeusClient.java:77)
Caused by: java.io.IOException: Could not transmit message
at
org.jboss.ws.core.client.HTTPRemotingConnection.invoke(HTTPRemotingConnection.java:253)
at
org.jboss.ws.core.client.SOAPProtocolConnectionHTTP.invoke(SOAPProtocolConnectionHTTP.java:71)
at org.jboss.ws.core.CommonClient.invoke(CommonClient.java:339)
at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:231)
... 4 more
Caused by: org.jboss.remoting.CannotConnectException: Can not connect http client invoker
after 1 attempt(s)
at
org.jboss.remoting.transport.http.HTTPClientInvoker.makeInvocation(HTTPClientInvoker.java:250)
at
org.jboss.remoting.transport.http.HTTPClientInvoker.transport(HTTPClientInvoker.java:162)
at
org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:167)
at org.jboss.remoting.Client.invoke(Client.java:1917)
at org.jboss.remoting.Client.invoke(Client.java:768)
at
org.jboss.ws.core.client.HTTPRemotingConnection.invoke(HTTPRemotingConnection.java:232)
... 7 more
Caused by: java.net.SocketException: Unexpected end of file from server
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:769)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:632)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:766)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:632)
at
sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1072)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:373)
at
sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:318)
at
org.jboss.remoting.transport.http.HTTPClientInvoker.getResponseCode(HTTPClientInvoker.java:1269)
at
org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HTTPClientInvoker.java:351)
at
org.jboss.remoting.transport.http.HTTPClientInvoker.makeInvocation(HTTPClientInvoker.java:232)
... 12 more
During the debugging of the problem, I found a strange workaround: putting a sleeb after
each call.
MyWebServices service = new MyWebServices();
MYSOAPHandlerResolver handlerResolver = new MYSOAPHandlerResolver();
service.setHandlerResolver(handlerResolver);
MyWebServicesPT port = service.getMYWebServicesPort();
port.call1();
// OK
Thread.Sleep(5000);
port.call2();
// OK
Thread.Sleep(5000);
port.call3();
// OK
Thread.Sleep(5000);
port.call4();
I've tested the same web services using Axis2 as framework and all is working as
expected without the need to use the sleep; so I'm sure the problem is on the JAXWS
implemented in JBoss
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira