java – 如何从https地址的wsdl生成Eclipse中的Web服务客户端?

我可以从中生成一个客户端

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,然后将其下载到文件系统.
>导航到它所依赖的任何内容,并下载它.
>使用浏览器打开刚刚下载的依赖项并复制其新位置,例如.

文件:///path/to/my/schema/service.xsd
>将其粘贴到下载的wsdl文件中,其中的https地址为,重复任何其他模式,然后保存.
>复制wsdl文件的文件位置,如上所示
>在Eclipse中,生成一个New-> Other …-> Web服务客户端并将文件位置粘贴到服务定义中,它应该可以工作.感谢大家的帮助!

解决方法:

将wsdl保存到本地文件系统并从那里生成,它似乎是Eclipse中的一个错误,并且请检查this链接.

上一篇:Android – 以编程方式从密钥库中检索证书(手动安装)


下一篇:java.security.KeyStore使用什么算法来加密KeyStore.setKeyEntry()和KeyStore.store()中的privateKey?