当前位置: 首页 > 知识库问答 >
问题:

从引用localhost的远程WSDL创建CXF客户端

百里渊
2023-03-14
<soap12:address location="http://localhost:8002/request" />
<wsa10:EndPointReference>
    <wsa10:Address>http://localhost:8002/request</wsa10:Address>
</wsa10:EndPointReference>

我试图使用wsdl2java maven目标生成客户机,同时指向远程WSDL:

...
<wsdlOptions>
<wsdlOption>
<wsdl>http://remotehost:8002/?wsdl</wsdl>
<wsdlOption>
<wsdlOptions>
...

当我试图构建客户机时,目标失败了,因为引用了LocalHost:

org.apache.cxf.wsd11.WSDLRuntimeException: Fail to create wsdl definition from :       http://remotehost:8002/?wsdl [ERROR] caused by : WSDLException (at  
/wsdldefinitions/wsdl:import) faultCode=PARSER_ERROR: Problem parsing  
'http://localhost:8002/?wsdl=wsdl0'.: java.net.ConnectionException: Connection refused: connect

是否有任何方法可以使CXF理解localhost引用与wsdl主机相关,并在生成客户端时自动将它们替换为适当的主机名?

(我已将实际的服务名称替换为通用名称,如remotehost)

共有1个答案

裴泰平
2023-03-14

您希望让CXF理解localhost引用与wsdl主机相关,但这不是任何工具都应该理解的,因为wsdl可以从任何位置导入其他wsdl,在某些情况下,这可能是正确的引用。简单地说,这不是在您的情况下,这是配置错误从您想要连接到的网站。

我知道您将URL作为动态生成代理工具的参数提供给WSDL,所以您不能只是下载它并更改引用。

我建议的解决办法是编写简单的代理,这是一个servlet,它将连接到远程URL(作为参数给定)并返回WSDL,将本地主机引用更改为正确的引用。您可以将这个servlet的URL作为参数提供给代理工厂。这并不好,但唯一好的解决方案是提供者修复自己的WSDL。

 类似资料:
  • 问题内容: 根据EJB客户端应用程序上的Netbeans教程,我似乎无法调用该方法: 编译错误: 客户: ejb: 远程接口: 现在,如果接口被修改: Bean现在可以使用以下方法: 但是,有一个NPE: 如何正确调用该方法?EJB未实例化? 问题答案: 我从头开始。我能想到的唯一区别是,我没有创建EJB应用程序,而是为bean创建了EJB模块。否则,我认为是相同的。 结构体: 客户代码: 豆:

  • 我试图从WSDL生成web服务客户机,我对这一点一无所知,所以无法找出错误。我试过: 这给了我一个错误: 我还尝试了apache cxf 3.1.1在eclipse中生成Web服务客户端,但得到这个错误: 我的WSDL文件是: 请帮我找出任何方式的错误,无论是wsimport还是apache cxf。我会非常感激的。

  • 我使用wsdl2java生成代码,并成功创建web服务客户端来调用服务。但是当我把我的程序放在服务器机器上时,程序不能创建网络服务client.if机器可以访问互联网,一切正常。所以我认为这个例外是因为cxf不能访问http://schemas.xmlsoap.org/soap/encoding/ stacktrace: 那么你能告诉我如何解决这个问题吗,谢谢你的帮助

  • 这里是HBase/Hadoop的超级新版本。我启动并运行了一个两节点HBase测试集群,现在我正尝试从一个远程Java客户端连接到该集群。这里是我陷入困境的地方:客户端成功地连接到单服务器Zookeeper仲裁(与HBase主服务器运行在同一服务器上),但是Zookeeper传递回客户端的地址是localhost,而且(很明显)客户端无法连接到任何东西,因为HBase不在本地运行。考虑到由于管理原

  • 我知道很多人已经询问了这个错误,但我仍然找不到解决方案,我按照本教程创建了一个远程客户端,访问驻留在Wildfly 10服务器上的Bean,该服务器运行在地址:localhost:8082。这是我的代码: 我的界面: 我的Bean: 我的远程客户端: 然后我还在项目的src/文件夹中添加了一个jboss-ejb-client.properties文件,如下所示: 我的操作与教程完全相同,但仍然会出

  • 这些其他问题暗示了一个解决方案,但我一直无法实现这一点: 无法解析的绑定http://schemas.xmlsoap.org/wsdl/soap/ ServiceConstructionException在创建CXF web服务客户端时 如何使用Maven“shade”插件将Apache CXF应用程序打包到单片JAR中 当我通过执行启动我的应用程序时,我会得到一个