4

我正在尝试使用客户端代码发送 SOAP 请求,该客户端代码使用 wsdl2java 工具为 Eclipse 生成的库,但不断收到此错误:

[错误] 系统无法从地址推断传输信息: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");

我不明白为什么,因为我提供的字符串与硬编码的字符串具有完全相同的值/内容....

4

2 回答 2

2

错误本身表示它无法解析用于发送消息的端点。您需要确保您的后端服务已启动并正在运行。还要确保您的代理服务正确配置为将消息发送到后端服务。希望这可以帮助。

于 2013-08-11T14:44:51.590 回答
1

不知道这是否会有所帮助,但我已经与这个错误作斗争了好几天。有一位同事帮助我,她解释说,当我从 wsdl 文件创建 Java 类时,默认(使用 RAD 7.5)是使用 JAXB-WS。对于独立应用程序,她建议我使用 Axis。重建了所有的 java 类,修复了一些参数,并且生活得很好。

于 2012-12-13T20:15:01.747 回答