我可以从
http://localhost:8080/service?wsdl
很好,但现在我想从
https://localhost:8081/service?wsdl
并且 Eclipse 说该位置无效,当 Eclipse 进行尝试时,我的 Jetty 服务器说
javax.net.ssl.SSLException:收到致命警报:certificate_unknown
确认安全异常后,我可以在浏览器中轻松导航到 wsdl,因此它肯定存在。
我已经尝试将 wsdl 下载到我的本地文件系统,但我仍然无法从那里生成它,因为 wsdl 包含对其他 https 位置的引用,例如。
<xsd:import namespace="http://my.service.namespace/" schemaLocation="https://localhost:8081/serviceSchema?xsd=1"/>
我已修改 eclipse.ini 以包含以下行:
-Djavax.net.ssl.trustStore="/path/to/my/truststore/.keystore"
-Djavax.net.ssl.trustStorePassword="mytruststorepassword"
-Djavax.net.ssl.keyStore="/path/to/my/keystore/.keystore"
-Djavax.net.ssl.keyStorePassword="mykeystorepassword"
无济于事。Eclipse 似乎也没有与此相关的任何首选项设置。有什么方法可以通过 eclipse 做到这一点,还是我必须使用一些外部工具?
编辑:对于其他有同样问题的人,这就是我解决它的方法。
- 在浏览器中导航到 wsdl,然后将其下载到您的文件系统。
- 导航到它所依赖的任何东西,并下载它。
使用浏览器打开您刚刚下载的依赖项并复制其新位置,例如。
file:///path/to/my/schema/service.xsd
- 将此粘贴到您下载的 wsdl 文件中,其 https 地址所在的位置,对任何其他模式重复,然后保存。
- 复制您的 wsdl 文件的文件位置,如上
- 在 Eclipse 中,生成一个 New->Other...->Web Service Client 并将文件位置粘贴到服务定义中,它应该可以工作。感谢大家的帮助!