2010-12-16 22 views
6

Estoy tratando de mover algunos stubs del servicio web de Metro a Axis2, sin embargo después de generar mis stubs usando wsdl2java constantemente recibo errores 404 cada vez que intento hacer una llamada de servicio.Axis2 - obteniendo siempre errores 404

16/12/2010 11:14:57 AM org.apache.axis2.deployment.ModuleDeployer deploy 
INFO: Deploying module: addressing-1.5.3-jar - file:/C:/Users/xxx/.m2/repository/org/apache/axis2/axis2/1.5.3/axis2-1.5.3-jar.jar 
16/12/2010 11:14:57 AM org.apache.axis2.transport.http.HTTPSender sendViaPost 
INFO: Unable to sendViaPost to url[xxxx] 
org.apache.axis2.AxisFault: Transport error: 404 Error: Not Found 
    at org.apache.axis2.transport.http.HTTPSender.handleResponse(HTTPSender.java:307) 
    at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:200) 
    at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:76) 
    at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:400) 
    at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:225) 
    at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:438) 
    at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:402) 
    at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229) 
    at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165) 
    at au.com.jpaterso.betcalc.axis2.tab.LoginStub.getKey(LoginStub.java:184) 
    at au.com.jpaterso.betcalc.axis2.tab.Test.main(Test.java:13) 
Exception in thread "main" org.apache.axis2.AxisFault: Transport error: 404 Error: Not Found 
    at org.apache.axis2.transport.http.HTTPSender.handleResponse(HTTPSender.java:307) 
    at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:200) 
    at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:76) 
    at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:400) 
    at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:225) 
    at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:438) 
    at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:402) 
    at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229) 
    at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165) 
    at au.com.jpaterso.betcalc.axis2.tab.LoginStub.getKey(LoginStub.java:184) 
    at au.com.jpaterso.betcalc.axis2.tab.Test.main(Test.java:13) 

La URL que está tratando de conectar es definitivamente correcta, ya que puedo acceder a ella a través de mi navegador/SoapUI.

¡Cualquier ayuda sería muy apreciada!

Gracias, Joseph.

+0

Tengo algunos problemas para acceder a algunos servicios web que creo que se solucionarán mediante el uso de Axis2. ¡Si ese no es el caso, volveré a Metro! –

Respuesta

2

No proporcionó mucha información sobre el entorno en el que intenta implementar su WS. P.ej. ¿Es esta una aplicación web que se ejecuta bajo Tomcat/JBoss o tal vez el servidor independiente implementado con Axis2?

Desde el seguimiento que ha publicado, supongo que hay una conexión con su servidor pero su WS no se ha implementado correctamente. Supongo que puede usar el servidor independiente para sus pruebas y sugiero:

  1. Vaya a su depósito de WS. En mi máquina de prueba esto sería algo así como ~/axis2-x.x.x/repository/services y asegúrese de que su servicio esté allí (ya sea el archivo .aar o la versión no empaquetada).

  2. Inicie el servidor y compruebe si realmente se implementó su servicio. En mi instalación, por ejemplo, el servidor generará la siguiente salida (no completa):

    me

    @ melinuxpc: ~/axis2-1.5.1/bin> ./axis2server.sh
    Usando AXIS2_HOME: xxx
    Uso JAVA_HOME: xxx
    Uso JAVA_OPTS: -Xdebug -Xrunjdwp: transport = dt_socket, dirección = 8000, servidor = S, = n suspender que escucha por dt_socket transporte en la dirección: 8000 [INFO] [SimpleAxisServer] a partir [INFO] [ SimpleAxisServer] Uso del Repositorio Axis2 xxx [SimpleAxisServer] Uso del Repositorio Axis2 xxx [SimpleAxisServer] Uso del archivo de configuración Axis2 xxx [INFO] La agrupación ha sido desactivado [INFO] módulo de Implementación: XXX [INFO] La implementación de servicios Web: MyTestService - archivo: ~/axis2-1.5.1/repositorio/servicios/MyTestService/

Comprobar si su servicio web está implementado y no hay errores. Puede verificar si el WSDL del servicio está disponible "en el navegador". En mi máquina de prueba de la URL será:

http://localhost:8080/axis2/services/MyTestService?wsdl

Si bien una lista con todos los servicios desplegados puede verse en:

http://localhost:8080/axis2/services/

Y no ser demasiado rápida en el abandono de Axis2;)

¡Buena suerte!

+0

Gracias por la respuesta muy detallada :). De hecho, estoy accediendo a un servicio web de un tercero, y el WSDL es definitivamente accesible a través de mi navegador. Solo Axis2 me está dando el problema, y ​​puedo llamar a esos servicios usando Metro o CXF sin problemas. No estoy trabajando ahora, así que no puedo probar, pero intentaré interceptar las solicitudes para intentar averiguar si van en la dirección correcta. –

2

También veo este error cuando uso "axis2-wsdl2code-maven-plugin" para generar stub para un servicio web .NET (.asmx).

Lo arreglé para deshabilitar "fragmentado" de _serviceClient.Solo agregue el código siguiente en el método Constructor del talón del archivo.

_serviceClient.getOptions().setProperty(HTTPConstants.CHUNKED, "false"); 
Cuestiones relacionadas