문제

JAX-WS를 사용하여 .NET 웹 서비스를 소비하려고합니다. WSimport 도구를 사용하여 Java 클래스를 생성했습니다. 그러나 Java에서 이러한 (독점적, 공개) 웹 서비스를 사용하려고 할 때 C# 예제에서 공급 업체가 제공 한 대부분의 방법과 속성이 생성 된 클래스에서 유발할 수 없음을 알 수 있습니다 (오류가 발생하지 않았음에도 불구하고 WSDL 파일에서 Java 클래스를 생성 할 때). 웹 서비스에 연결하는 것도 기본적으로 작동합니다.

.NET SDK에서 wsdl.exe를 사용하여 C# 클래스를 생성하려고하면 모든 방법이 올바르게 생성되었습니다.

전체 기능을 Java에서 사용할 수 있도록 .NET 웹 서비스를 소비하는 가장 좋은 방법은 무엇이며 WSImport가 WSDL 파일에 설명 된 모든 방법과 속성의 작은 하위 집합 만 생성하는 이유는 무엇입니까?

예 : WSDL 파일 userManagement.wsdl에는 스 니펫이 있습니다.


<s:schema elementFormDefault="qualified" targetNamespace="http://www.initechsystems.com/initech7/initechws/">
  <s:element name="UserSecurityContext" type="s2:UserSecurityContext"/>
  <s:complexType name="UserSecurityContext">
    <s:sequence>
      <s:element minOccurs="0" maxOccurs="1" name="Token" type="s2:UserToken"/>
    </s:sequence>
  </s:complexType>
  <s:complexType name="UserToken">
    <s:sequence>
      <s:element minOccurs="0" maxOccurs="1" name="Value" type="s:string"/>
    </s:sequence>
  </s:complexType>
</s:schema>

C#에서는 다음과 같이 사용자에게 다음과 같이 액세스 할 수 있습니다.


UserManagement userMgmt = new UserManagement();
userMgmt.UserSecurityContextValue = new SampleWS.UserRef.UserSecurityContext();
그러나 Java에서는 사용자 관리 객체를 만들 수 있습니다.


UserManagement userMgmt = new UserManagement();

그러나 생성 된 사용자 관리 객체에는 액세스 가능한 객체 SecurityContext가 없거나 개인 객체에 대한 getter 또는 setter가 없습니다.

도움이 되었습니까?

다른 팁

예제가 모델 (또는 더 나은 SOA 용어를 선호하는 경우 메시지)이 아닌 와이어의 동작을 가진 객체를 보내는 것처럼 들리기 때문에 당신이 말하는 예를보고 싶습니다.

데이터 모델 또는 메시지로 작성된 객체를 보내면 사용할 방법이 포함되어 있지 않습니다. 그리고 인터 로프를 사용하면 와이어를 가로 질러 행동 (메소드)을 설정하는 것은 그리 의미가 없습니다.

당신이 할 수있는 일에 관해서는, 당신이 직렬화하기 때문에 행동 방법이 당신의 편에 이해되면 행동 적 방법을 만들 수 있습니다. 개인적으로, 나는 다른 객체에서 동작을 만들고 모델/메시지를 상태 컨테이너로 유지합니다. 그러나 마일리지는 다를 수 있습니다. ;-)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top