2014-04-23 1 views
0

전제로서, 나는 아직 경험이별로 없지만이 주제와 관련하여 가능한 모든 것을 읽고 검색하려고 노력했지만 여전히 운이 없다."javax.xml.ws.WebServiceException : 유효한 서비스가 아닙니다." 프록시 문제?

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\ 

그리고 나는 같은 문제를 얻을. wsimport는 속성에서 설정하려고하는 인증서가 마음에 들지 않는 것처럼 보이기 때문에 wsdl의 로컬 복사본을 사용하고 있습니다. (내가 가장 잘못한 일을하고 있지만 가장 간단한 해결 방법을 선택했습니다. 프레스 문제).

서비스를 테스트하기 위해 SoapUI를 사용하려고하면 모든 설정이 제대로 작동하지만 프록시에 대한 환경 설정을 "없음"으로 설정해야합니다. 내가 이해가 와일드 카드로 작동해야하는, "*"BTW

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

를 (이전 :

그래서 나는 연결뿐만 아니라 내 클라이언트에서 프록시를 사용하지 않도록 노력 "모든 도메인", 특정 도메인을 지정하려고 시도했습니다.) 어쨌든 결과는 항상 동일합니다.

내가 잘못하고있는 것, 시도해 볼만한 것이 있습니까?

답변

0

내 트러스트 스토어에서 인증서를 가져 오는 것이 누락되었습니다. (또는 처음 시도했을 때 올바른 트러스트 스토어를 사용하고 있다고 생각했지만 그렇지 않았습니다.) http://javarevisited.blogspot.it/2012/03/add-list-certficates-java-keystore.html

또 다른 옵션은 Portecle 같은 특정 GUI를 사용하는 것입니다 그것을 필요로 할 수있는 사람들을위한

, 여기에 키 도구를 사용하는 것을 수행하는 방법에 대한 설명입니다.

0

이 문제는 프록시 문제가 아닙니다. Service 객체를 만드는 데 사용하는 코드를 공유 할 수 있다면 도움이 될 것입니다.
킥 스타트로 아래 스레드를 읽어보십시오.
Is not a valid service exception in JAX-WS
내가 생각하기에 서비스를 만들 때 제공 한 QName이 적절하지 않습니다. 올바른 QName을 얻으려면 생성 된 스텁을 열려고 시도 할 수 있습니다.

+0

클라이언트를 어떻게 작성했는지 보여주기 위해 질문을 편집했습니다. 와 QName에 관해서는 : '공공이면 MyService() { \t 슈퍼 (MYSERVICE_WSDL_LOCATION, 새의 QName ("http://namespace.it/", "이면 MyService")); }' \t MYSERVICE_WSDL_LOCATION 실제 WSDL의 URL, 이면 MyService가 '에서 유래 <= "이면 MyService"서비스 이름>는이' http://namespace.it/가 내지 '<정의 [...] targetNamespace = "http : //cert.controller.portaApplicativa.ictechnology.IT/">' 및 ' \t ' –

+0

하여 사용해보십시오 – AdityaKeyal

+0

어, 실제로, 나는 실제 네임 스페이스, 서비스 이름 등을 모두 바꿀 예정이었습니다. 내가 공개 할 수 있거나 만들 수없는 것을 인식하지 못했고, 그 중 하나를 놓쳤다.이 시점에서, 나는 혼란에 대해 유감스럽게 생각하며 (질문을 수정할 수는 없다는 것을 잊어 버렸다.) –