繁体   English   中英

“ javax.xml.ws.WebServiceException:不是有效的服务。”代理问题?

[英]“javax.xml.ws.WebServiceException: is not a valid service.” proxy issue?

作为前提,我还没有很丰富的经验,但是我已经尝试阅读和搜索与该主题相关的一切内容,但仍然没有运气。

我得到了一个简单的客户端来调用Web服务,但是一旦它被完全设置(包括使用证书和其他几个要设置的属性),我就会得到标题中提到的错误:

javax.xml.ws.WebServiceException: {http://http://cert.controller.portaapplicativa.ictechnology.it//}MyService is not a valid service. Valid services are: 
    at com.sun.xml.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:187)
    at com.sun.xml.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:159)
    at com.sun.xml.ws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:82)
    at javax.xml.ws.Service.<init>(Service.java:56)
    at package.client.wsimport.MyService..<init>(MyService.java:46)
    at package.client.Client.doRicercaDEN(Client.java:55)
    at package.client.Client.main(Client.java:36)

我尝试再次使用JAX-WS生成客户端:

java -classpath C:\Programmi\Java\jdk1.6.0_38\lib\tools.jar com.sun.tools.internal.ws.WsImport -verbose C:\WsdlFile.wsdl -p package.client.wsimport -s C:\tmp\ws\

我也遇到同样的问题。 我正在使用wsdl的本地副本,因为wsimport似乎不喜欢我尝试在属性中设置的证书(我很可能做错了事,但是我选择了简单的解决方法,因为我有更多的选择紧迫的问题)。

尝试使用SoapUI来测试服务,尽管我需要将代理的首选项设置为“无”,但一切工作正常。

因此,我试图确保连接也不会在客户端中使用任何代理:

(...)
systemSettings.remove("http.proxyHost");
systemSettings.remove("http.proxyPort");
systemSettings.remove("https.proxyHost");
systemSettings.remove("https.proxyPort");
System.setProperty("http.nonProxyHosts","*");
System.setProperty("https.nonProxyHosts","*");

(顺便说一句,在“ *”之前,据我所知它应该用作“每个域”的通配符,我也尝试过指定特定域)。无论如何,结果始终是相同的。

我在做错什么吗,还有什么可以尝试的?

我怀疑这是一个代理问题。 如果可以共享用于创建Service对象的代码,则可能会有所帮助。
首先,尝试阅读以下主题
在JAX-WS中不是有效的服务异常
我认为您在创建服务时提供的QName不正确。 为了获得正确的QName,您可以尝试打开生成的存根。

事实证明,我所缺少的是在本地信任库中导入证书(或者更好的是,当我第一次尝试这样做时,我以为我使用的是正确的信任库,但是没有)。

对于可能需要它的任何人,以下是如何使用keytool进行说明: http : //javarevisited.blogspot.it/2012/03/add-list-certficates-java-keystore.html

另一种选择是使用特定的GUI,例如Portecle。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM