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

问题描述:

我可以生成从如何从https地址的wsdl在Eclipse中生成Web服务客户端?

http://localhost:8080/service?wsdl 

就好了一个客户,但现在我想从

https://localhost:8081/service?wsdl 

生成客户端和Eclipse说位置是无效的,而当Eclipse使尝试我的码头服务器说

javax.net.ssl.SSLException:收到致命警报:certificate_unknown

我可以很容易地navig在确认安全异常后,在我的浏览器中进入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做到这一点,或者我将不得不使用一些外部工具?

编辑: 对于其他同样的问题,这是我如何解决它。

  1. 导航到浏览器中的wsdl,并将其下载到您的文件系统。
  2. 找到它依赖的任何东西,并下载它。
  3. 打开你刚刚用浏览器下载的依赖关系,并复制它的新位置,例如。

    文件:///path/to/my/schema/service.xsd

  4. 粘贴到您下载的WSDL文件,其中它的https地址,重复任何其他的模式,并保存。
  5. 复制上述wsdl文件的文件位置,如上
  6. 在Eclipse中,生成New-> Other ...-> Web Service Client并将文件位置粘贴到服务定义中,并且它应该可以工作。感谢大家的帮助!
+0

你应该下载WSDL和所有工件(如XSD)它所依赖。修改架构位置并生成客户端...不要忘记将这些WSDL添加到您的版本控制系统(这是您的合同) – home

+0

但是如果我修改架构位置,客户端不会错误地生成? –

+0

为什么?您应该始终在您的代码中设置端点地址......其他所有内容仅适用于“hello world”应用程序。在现实世界中,您可能有不同的端点地址用于生产,分段,测试等。 – home

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

+0

我试过了,编辑我的文章反映,对不起。 –

+0

如果您还保存任何依赖关系(模式),这可以工作,谢谢。 –

我有同样的问题,并从接受的答案,我不工作的联系,但我使用以下步骤生成的服务:

  1. 保存WSDL为本地文件。 (如myService.wsdl)
  2. 将wsdl文件复制到项目中。
  3. 右键单击WSDL文件 - > [Web服务] - > [生成客户端]