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

时间:2011-08-26 11:28:32

标签: java web-services soap xsd java-metro-framework

我或多或少是网络服务的初学者,但我尝试使用谷歌搜索没有结果。

我有一个使用Metro堆栈编写的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

当我尝试在网络浏览器中手动输入xsd = 1而不是null时,我收到404错误。

有人知道可能导致这种情况的原因以及如何解决这个问题吗?

谢谢, 拉吉。

2 个答案:

答案 0 :(得分:0)

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

为了实现这一目标,您需要设置一个新的Java密钥库文件(.jks文件),或者如果您已经拥有它,则重用现有的文件,添加服务器SSL证书(为此,您可以使用JDK提供的keytool,并使用wsimport调用中的下一个JVM参数将Keystore声明为Trustore:

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

答案 1 :(得分:0)

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