Axis2 – 总是得到404错误

我正在尝试将一些Web服务存根从Metro移动到Axis2,但是在使用wsdl2java生成我的存根之后,每当我尝试进行服务调用时,我都会出现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) 

它尝试连接的URL肯定是正确的,因为我可以通过我的浏览器/ SoapUI访问它。

任何帮助将不胜感激!

谢谢,约瑟夫。

您没有提供有关尝试部署WS的环境的大量信息。 例如,这是在Tomcat / JBoss下运行的webapp,还是与Axis2一起部署的独立服务器?

从您发布的跟踪中,我认为与您的服务器存在连接,但您的WS未成功部署。 我假设您可以使用独立服务器进行测试,我建议:

  1. 转到您的WS存储库。 在我的测试机器上,这将是〜/ axis2-xxx / repository / services,并确保您的服务在那里(.aar文件或解压缩版本)。

  2. 启动服务器并检查您的服务是否已真正部署。 在我的安装上,例如服务器将生成以下输出(未完成):

    me @ melinuxpc:〜/ axis2-1.5.1 / bin> ./axis2server.sh
    使用AXIS2_HOME:xxx
    使用JAVA_HOME:xxx
    使用JAVA_OPTS:-Xdebug -Xrunjdwp:transport = dt_socket,address = 8000,server = y,suspend = n在地址:8000处监听传输dt_socket [INFO] [SimpleAxisServer]启动[INFO] [SimpleAxisServer]使用Axis2存储库xxx [ SimpleAxisServer]使用Axis2存储库xxx [SimpleAxisServer]使用Axis2配置文件xxx [INFO]已禁用集群[INFO]部署模块:xxx [INFO]部署Web服务:MyTestService – file:〜/ axis2-1.5.1 / repository /服务/ MyTestService /

检查您的Web服务是否已部署且没有错误。 您可以“在浏览器中”检查服务的WSDL是否可用。 在我的测试机器上,URL将是:

HTTP://本地主机:8080 /的Axis2 /服务/ MyTestService WSDL

虽然可以在以下位置查看包含所有已部署服务的列表:

HTTP://本地主机:8080 /的Axis2 /服务/

并且不要太快放弃Axis2;)

祝你好运!

当使用“axis2-wsdl2code-maven-plugin”为.NET Web服务(.asmx)生成存根时,我也看到了这个错误。

我修复了_serviceClient的“chunked”。 只在文件存根的方法构造函数中添加以下代码。

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