WSDL包含的XSD文件路径是错误的

我或多或少是一个初学者与Web服务,但我试过Google搜索没有结果。

我有一个用Java编写的Web服务,当我在本地JBoss 5.1.0实例上运行它时运行良好,但当我将它移动到我们的测试服务器时,我开始出现问题。

该服务部署正确,我可以照常查看WSDL:https://myserver.myorg/path/service?wsdl

但是,wsimport无法从这里生成客户端存根,并且当我仔细查看WSDL时,我看到了这一点:

<xsd:schema>
  <xsd:import namespace="http://mynamespace/" schemaLocation="https://testserver.myorg:443/path/Service?null"/>
</xsd:schema>

而不是当我在本地运行它时将会看到的内容,其schemaLocation设置为http:// localhost:8080 / path / Service?xsd = 1

当我尝试在Web浏览器中手动放入xsd = 1而不是null时,出现404错误。

有谁知道什么可能导致这种情况,以及如何解决这个问题?

谢谢,拉杰。


我认为问题在于您的XSD位于SSL连接的后面,因此您的wsimport需要知道并信任服务器SSL证书。

为了达到这个目的,你需要建立一个新的Java Keystore文件( .jks文件),或者如果你已经有了一个已经存在的文件,可以重新使用一个现有的文件,添加服务器的SSL证书(为此,你可以使用keytool JDK),并使用wsimport调用中的下一个JVM参数将Keystore声明为Trustore:

-Djavax.net.ssl.trustStore=${truststore.location} -Djavax.net.ssl.trustStorePassword=${ssl.password}

测试JBoss服务器每周重新启动,并且在重新启动后,XSD文件正常显示。 对不起,噪音 - 我应该学会在发帖之前将其关闭再打开:)。

链接地址: http://www.djcxy.com/p/66655.html

上一篇: XSD file path in WSDL include is wrong

下一篇: WS client : what's the correct path to access the local WSDL?