2011-08-26 12 views
2

Java 클라이언트가 WCF wshttpbinding WebService와 통신하려고합니다. 그러나 나는 지금까지 아무렇지도 않았습니다. 호출이 멈추거나 얻을 수 있습니다. "SOAPFaultException : 메시지를 처리 ​​할 수 ​​없습니다. 이는 'http://tempuri.org/ISampleService/GetServiceName'작업이 올바르지 않거나 메시지에 유효하지 않거나 만료 된 보안 컨텍스트 토큰이 있거나 바인딩간에 불일치가 있기 때문에 발생할 수 있습니다. 서비스가 비활성으로 인해 채널을 중단 한 경우 보안 컨텍스트 토큰이 유효하지 않습니다. 서비스가 유휴 세션을 중단시키지 않도록하려면 서비스 끝점의 바인딩에서 수신 시간 제한을 조기에 늘리십시오. "wsHttpBinding을 사용하는 Java 클라이언트에서 WCF 서비스 사용하기

내 웹 서비스는 Visual Studio 2010에서 생성 된"WCF 서비스 라이브러리 템플릿 "일뿐입니다.

내 Java 클라이언트는 netBeans 7.0.1에서 생성되고 스텁은 새로운 Other -> Web Services -> Web Service Client를 사용하여 생성되었으며 로컬 WSDL을 참조합니다.

WebServiceFeature를 추가하려고했습니다. wsAddressing = new AddressingFeature (true); 생성 된 스텁에서 그냥 예외를 throw합니다.

비슷한 문제가있는 다른 사용자가 표시됩니다. 그러나, 나는 어떤 진실한 해결책도 보지 않는다. 어떤 제안이라도 대단히 감사하겠습니다.

+0

기본적으로 'WsHttpBinding'은 SSPI 협상 및 보안 대화와 함께 메시지 보안을 사용합니다. –

+0

나는 이것에 대해 꽤 많은 시간을 보냈으며 어떤 해결책을 찾을 수 없었습니다. 글래스 피쉬는 WS 보안을 지원하기로되어 있지만 작동하도록 아무 것도 얻을 수 없었습니다. – tier1

답변

0

비누 형식 문제가있는 것 같습니다. Java 클라이언트는 WCF 서비스에 적합한 SOAP XML을 생성하지 않습니다. 서비스가 기대하는 비누 XML에 대한 아이디어를 얻으려면 WcfTestClient command line app을 사용하여 서비스를 호출하십시오. 이 응용 프로그램은 동적으로 WinForm 응용 프로그램에 서비스 프록시를 만듭니다. 앱에서 서비스 작업을 호출하고 XML 탭 (오른쪽 창의 하단에있는 형식 탭 옆)을 클릭합니다. 이 탭에 응답 & 응답 비누가 모두 표시됩니다.

다음으로 message tracing에 대해 WCF 서비스를 구성하고 Java 클라이언트에서 호출하여 SOAP 클라이언트가 전송중인 SOAP을 확인하십시오. 이제 두 가지 비누 메시지를 비교하여 다른 점을 확인할 수 있습니다. Java 클라이언트는 WCF가 예상하는 SOAP 형식을 생성하도록 구성되어야합니다.

WCF 팀은 최근에 특히 java 용으로 some WCF interop bindings을 발표했습니다. 이는 특정 상황에 적용되지 않을 수도 있지만 검토할만한 가치가있을 것입니다.