我正在尝试使用客户端代码发送SOAP请求,该代码使用wsdl2java工具为eclipse生成的库,但继续收到此错误:
[ERROR] The system cannot infer the transport information from the Address: http://172.17.4.2:8081/axis2/services/CDMS URL.
此客户端是位于“真实”客户端和服务器之间的代理。我从真实客户端获取了SOAP消息的wsa:To字段中的URL,并使用它来创建与服务器的连接。
我很想找到可能的错误来源,是否有人可以提示?我不确定我可以在这里提供哪些可能有用的信息,所以请让我知道我应该提供哪些其他错误消息或配置文件摘录来帮助您:)
...谢谢
更新
我做了一些试验,如果我将URL字符串硬编码到客户端存根,而不是从另一条消息中获取请求,请求已成功发送:
ConfigurationContext cc = ConfigurationContextFactory.createConfigurationContextFromFileSystem("/home/me/axis2-1.6.2/repository", "/home/me/axis2-1.6.2/conf/axis2.xml");
CDMSStub stub = new CDMSStub(cc, "http://172.17.4.2:8081/axis2/services/CDMS");
我不明白为什么,因为我提供的字符串与硬编码的字符串具有完全相同的值/内容....
答案 0 :(得分:2)
错误本身表示它无法解析端点以发送消息。您需要确保您的后端服务已启动并正在运行。还要确保正确配置代理服务以将消息发送到后端服务。希望这会有所帮助。
答案 1 :(得分:1)
不知道这是否会有所帮助,但我几天来一直在打这个错误。有一个同事帮助我,她解释说,当我从wsdl文件创建java类时,默认(使用RAD 7.5)是使用JAXB-WS。对于独立应用程序,她建议我使用Axis。重建了所有的java类,修复了一些参数,并且生活得很好。