我可以从生成客户端
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服务客户端并将文件位置粘贴到服务定义中,它应该可以工作。感谢大家的帮助
将wsdl保存到本地文件系统并从中生成,这似乎是Eclipse中的一个错误,请检查此链接。
我遇到了同样的问题,来自接受答案的链接对我不起作用,但我使用以下步骤生成了服务:
- 将wsdl保存为本地文件。(例如myService.wsdl)
- 将wsdl文件复制到项目中
- 右键单击wsdl文件->[Web Services]->[Generate Client]