2016-09-21 2 views
1

J'ai un problème pour appeler un service Web avec Axis2. J'ai fait dans cxf sans aucun problème, donc je sais que le service répond. Mais, en raison de problèmes de compatibilité entre JBoss 6 et CXF, je dois faire dans une autre technologie. (J'essaie de migrer vers Jboss 7, où il n'y a pas de problème, mais le boss ne veut pas en ce moment). Donc, la requête dans cxf va parfaite. Quand j'essaye Axis2 ne fonctionne pas. Je suppose que je ne fais pas quelque chose de bien, une configuration que cxf fait elle-même et pas d'Axis2.TimeOut appelant WebServices avec Axis 2/JBoss Ws

J'ai cette erreur dans axis2:

Caused by: java.net.SocketTimeoutException: Read timed out 
at java.net.SocketInputStream.socketRead0(Native Method) 
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) 
at java.net.SocketInputStream.read(SocketInputStream.java:170) 
at java.net.SocketInputStream.read(SocketInputStream.java:141) 
at sun.security.ssl.InputRecord.readFully(InputRecord.java:465) 
at sun.security.ssl.InputRecord.read(InputRecord.java:503) 
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973) 
at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:930) 
at sun.security.ssl.AppInputStream.read(AppInputStream.java:105) 
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246) 
at java.io.BufferedInputStream.read(BufferedInputStream.java:265) 
at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:78) 
at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:106) 
at org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1116) 
at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.readLine(MultiThreadedHttpConnectionManager.java:1413) 
at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1973) 
at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1735) 
at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1098) 
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398) 
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171) 
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397) 
at org.apache.axis2.transport.http.AbstractHTTPSender.executeMethod(AbstractHTTPSender.java:621) 
at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:193) 

Dans le projet qui fonctionne, en fait CxF, si je change l'appel, en mettant à l'exécution Jboss6 et supprimer la bibliothèque CxF (2.7.18), avec le même code, j'obtiens cette erreur:

Caused by: java.net.SocketTimeoutException: Read timed out 
at java.net.SocketInputStream.socketRead0(Native Method) 
at java.net.SocketInputStream.read(SocketInputStream.java:129) 
at com.sun.net.ssl.internal.ssl.InputRecord.readFully(InputRecord.java:422) 
at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:460) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:863) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:820) 
at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75) 
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) 
at java.io.BufferedInputStream.read1(BufferedInputStream.java:258) 
at java.io.BufferedInputStream.read(BufferedInputStream.java:317) 
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:698) 
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:641) 
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1218) 
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:379) 
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:318) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2223) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2192) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:2036) 
... 12 more 

Très similaire.

Dans l'axe 2, j'essaie de changer le protocole à 1.0, mais l'erreur persiste.

org.tempuri.RldServiceStub stub = new org.tempuri.RldServiceStub(); 
    org.tempuri.RldServiceStub.InsertarDocumento insertarDocumento40 = (org.tempuri.RldServiceStub.InsertarDocumento) getTestObject(org.tempuri.RldServiceStub.InsertarDocumento.class); 

    stub._getServiceClient().getOptions().setUserName("b3e4af71-ff47-4451-88d5-1afcf9fb0412"); 
    stub._getServiceClient().getOptions().setPassword("CcVAx5yxL5fC80bw7SAQBMTfXWvEp1YI/sO2YYyJQm4="); 
    stub._getServiceClient().getOptions().setProperty(org.apache.axis2.transport.http.HTTPConstants.HTTP_PROTOCOL_VERSION, org.apache.axis2.transport.http.HTTPConstants.HEADER_PROTOCOL_10); 

Je suis trop perdu dans ce numéro.

Répondre

0

Vous devez savoir que Apache Axis n'est pas pris en charge en tant que pile de service Web sur JBoss EAP. Il est recommandé d'utiliser l'implémentation WS fournie avec votre JBoss EAP actuel. Pour être précis, JBoss EAP 6 est JBossWS Apache CXF.