2011-09-29 2 views
0

.net 4와 함께 C#을 사용 중이며 Java webservice를 사용하려고합니다. 내 코드는 .net 2.0 스타일 웹 서비스 참조를 추가하여 자동 생성되었습니다. SOAP 메시지에 대한 객체를 직렬화 할 때 을 :.Net Java Webservice를 호출하면 XMLSchema/long을 anXMLSoap/long으로 변환해야합니다.

Internal Server Error (deserialization error: deserialization error: unexpected element type: expected={http://schemas.xmlsoap.org/soap/encoding/}long, actual={http://www.w3.org/2001/XMLSchema}long) 

오래된 문서를 웹 서비스에서 : 나는 거기에 자바 웹 서비스에 보내는 .NET 유형에 문제가 여기에있다 내가 연결을 시도 할 때받은 예외 생각 Microsoft .NET 플랫폼은 모든 기본 요소를 W3C XML 스키마 유형에 매핑합니다. .NET 플랫폼에서 원시 래퍼 (자동 복싱을 통한)와 프리미티브를 구분할 수 없기 때문에 인코딩 된 RPC SOAP 메시지를 사용할 때 Sun One 웹 서비스와의 상호 운용성 문제가 발생합니다. Java 프로그래밍 언어의 프리미티브 및 그와 동등한 객체 래퍼를 자동 상자화할 수 없으므로 이 언어로 구분됩니다. Sun One에서 웹 서비스를 생성하고 배포 할 때 서버 측 WSDL은 Java 프리미티브를 W3C 스키마 유형에 매핑하고 Java 객체를 SOAP 스키마 유형에 매핑합니다.

누구나 내가 http://schemas.xmlsoap.org/soap/encoding/http://www.w3.org/2001/XMLSchema 대신 오랫동안 보내도록 말할 수있는 방법을 알고 있습니까?

감사합니다. AFrieze

+0

어떻게 C#으로 클라이언트를 코딩/얻었습니까? 너는 그것을 자동 생성 했니? wsdl은 어떤 제품입니까? 그것은 doc 스타일 또는 rpc 스타일입니까? 약간의 세부 사항을 준다 – Bhaskar

+0

나는 Bhaskar ...에 대한 더 자세한 정보를 추가했다. – AFrieze

답변

0

Document으로 스타일을 변경해보십시오. 이렇게하면 wsdl을 생성 할 때 서비스에서 사용하는 모든 데이터 유형을 나열하는 <type></type> 섹션을 찾을 수 있습니다. 이 섹션에는 또한 namespace 요소가 있는데이 요소는 본질적으로 현재 문제를 일으키는 요소이지만 RPC 스타일의 서비스에서는 wsdl에 형식 섹션이 없기 때문에 분명하지 않습니다. 나는 encodingliteral이라고 가정하고 있습니다.

편집 :

내가 처음 그것을 짐작 할 뻔했지만 서비스가 encoded 유형보다는 literal를 사용하는 것처럼 보인다. 인코딩 된 서비스는 항상 상호 운용성 문제가 발생하기 쉽습니다. 내 추천 : rpc/encoded - use Document/Literal을 사용하지 마십시오.

+0

안녕하세요 Bhaskar, 생성 된 wsdl 파일을보고 있는데 형식 섹션이 표시됩니다. 오류를 던지는 변수의 유형은 "soap-enc : long"으로 설정되어 있어야합니다. 그러나 .net은 서비스를 호출 할 때 비누 버전을 보내지 않습니다. 이견있는 사람? – AFrieze

+0

또한 웹 서비스의 일부 문서를 원래 질문에 추가하여 도움이 될 수 있습니다. – AFrieze

+0

@Afrieze, 제 편집 참조. – Bhaskar

관련 문제