2012-05-08 4 views
1

웹 서비스를 개발 중입니다. 서버에 java이며 클라이언트에서 C#이어야합니다. 가 파라미터로서 하나의 문자열이며, 파라미터 출력으로이 구조에 "객체"를 반환 할 것이다 :C# webservice 클라이언트가 java 서버와 작동하지 않습니다.

  • 문자열 codError
  • 문자열 descError
  • Object2 [] arrayData

다음과 같이 "Object2"가됩니다.

  • 문자열 firstDataArray
  • Int secondDataArray

Java 클라이언트를 만들었지 만 완벽하게 작동하지만 C# 클라이언트가 작동하지 않습니다. 그것은 객체의 "EndElement"가 예상되지 않았으며 (object2가 아니라 객체의 끝을 의미 함), "codError"요소가 필요하다고합니다.

이 메서드는 하나의 객체 인 객체 배열을 반환하지 않습니다.

나는 httpanalyzer를 사용했으며 java 클라이언트에서 C# 클라이언트의 경우와 마찬가지로 서버는 올바른 형식의 XML을 반환하고 그 포함은 클라이언트 (클라이언트 모두)에 있어야합니다.

자바 용 일식 및 축 2, Visual Studio 2005 및 2008 용 C#을 사용하고 있습니다.

무엇이 잘못 될 수 있습니까?

미리 감사드립니다.

+1

C# wsdl 엔진은 wsdl 파일의 Java 해석을 이해하지 못해 이러한 미묘한 버그를 초래할 수 있습니다. 더 간단한 웹 서비스를 만들고 그로부터 확장하여 잘못된 점을 이해하십시오. 아마도 C#처럼 필드가 예상되는 무언가가 간단 할 것입니다. – CodingBarfield

+0

WSDL 표기법 :'List'대신'Object2 []'와 같은 배열을 사용하지 마십시오. –

답변

0

축 및 일식에 의한 자동 생성 된 WSDL이 잘못되어 서버에서 클라이언트로 전송 된 XML도 잘못되었습니다. 웹 서비스를 작성할 때 일반적인 문제라고 생각합니다. 그것들을 하향식으로 만드는 것이 훨씬 낫다.

<descError>OK</descError> 
<codError>0</codError> 
<object2> 
    <object2> 
     <firstDataArray>John</firstDataArray> 
     <secondDataArray>35</secondDataArray> 
    </object2> 
    <object2> 
     <firstDataArray>Andrew</firstDataArray> 
     <secondDataArray>76</secondDataArray> 
    </object2> 
    <object2> 
     <firstDataArray>Walter</firstDataArray> 
     <secondDataArray>23</secondDataArray> 
    </object2> 
</object2> 

안 거기에 "object2"태그가 있습니다 : 서버가 클라이언트로 전송 된

XML은 같은 (단지 잘못된 부분)이었다. 이클립스를 사용하여 Java 용 클라이언트를 만들 수 있지만 작동하지 않습니다 #

방금 ​​하향식 구현을 사용하여 동일한 웹 서비스를 만들었으니 이제는 훌륭하게 작동합니다 !!

누구에게나 탁월한 태도!

0

이므로 메타 데이터 유형이 Java와 C#에서 모두 다르므로 java의 데이터 유형을 C#으로 변환 할 수 없습니다.

XML 데이터 형식을 반환하는 것이 좋습니다.

0

(AXIS-Java-Server 만들기 및 Java 서버의 WSDL로 C# -Client 만들기) Visual Studio 명령 프롬프트에서 Java 서버의 C# 클래스를 만드는 도구는 SvcUtil.exe입니다.

이것은 매력처럼 작동합니다.

관련 문제