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

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

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

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

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

但是,wsimport 无法从这里生成客户端 stub ,当我仔细查看 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 错误。

有谁知道可能导致此问题的原因以及如何解决它?

谢谢, 拉杰。

最佳答案

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

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

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

关于java - WSDL 包含中的 XSD 文件路径错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7203964/

相关文章:

java - Java8的Stream到底是什么?

java - 在 Android 小部件之间实现发布订阅的 native 方式是什么?

Java Web 服务生成错误响应

ios - Swift 2 SOAP Web 服务调用

django - 带有soaplib的Django中的SOAP服务

java - Log4j 未添加到 Ant 中的类路径

java - Java 类中的硬编码 Java 列表

java - 安心服务

c# - WCF( SOAP ): async Service Operations

delphi - TRemotable 派生类中的 Index 选项有何作用?