2013-10-16 2 views
0

wsimport을 사용하여 클라이언트 웹 서비스 코드를 생성합니다. (아래 wsdl 코드의 일부 참조).wsimport를 사용하여 클라이언트 웹 서비스 코드를 생성 할 때 빈 클래스

코드 생성이 완료되면 메소드가 정의되지 않은 빈 TokenRequest 클래스가 생성됩니다. 한편, TokenResponse 클래스에는 몇 가지 메소드가 정의되어 있으며, setter는 거의없고 getter는 거의 없습니다.

아래 WSDL이 주어지면 왜 TokenRequest 클래스는 비어 있습니까?

ClientKey, Password, UserKey 및 UserName에 대해 4 개의 setter 메서드가 있어야합니다. 이제 이러한 매개 변수를 설정하여이 TokenRequest 객체를받는 기본 로그인 메소드에 전달할 수 없습니다.

.NET 4.0에서이 웹 서비스에 대한 참조를 만들려고 노력했지만 모든 것이 완벽하게 작동했습니다. TokenRequest 클래스에는 필요한 4 개의 매개 변수를받는 생성자가 있습니다.

무엇이 잘못 되었습니까? wsimport의 비누 헤더 속성을 생성하지 않는 이유는 Axis2를 사용하여이 작업을 수행하려고합니다 내일 ...

<?xml version="1.0" encoding="utf-8"?> 
    ... 
       <wsdl:input name="TokenRequest"> 
        **<soap12:header message="i0:TokenRequest_Headers" part="ClientKey" use="literal"/> 
        <soap12:header message="i0:TokenRequest_Headers" part="Password" use="literal"/> 
        <soap12:header message="i0:TokenRequest_Headers" part="UserKey" use="literal"/> 
        <soap12:header message="i0:TokenRequest_Headers" part="UserName" use="literal"/> 
        <soap12:body use="literal"/>** 
       </wsdl:input> 
       <wsdl:output name="TokenResponse"> 
        <soap12:body use="literal"/> 
       </wsdl:output> 
    ... 

답변

1

이 secion link"메소드 매개 변수 4.1.4. 매핑 추가 WSDL 헤더는"설명 할 것 필요. 4.1.4 섹션에는 이라는 메모가 있습니다. "JAX-WS RI 2.1.3 이후 wsimport에는 새로운 옵션 -XadditionalHeaders가 있으므로이 옵션은 메서드 매개 변수와 같은 추가 헤더를 매핑합니다.". 따라서 라이브러리 (Metro, Axis, CXF, ......)의 문서를보고 그러한 기능이 있는지 확인해야합니다.

+0

감사하지만, -XadditionalHeaders 매개 변수가 출력을 변경하지 않았습니다. 나는 아직 생성자가없는 빈 클래스 또는 정의 된 메서드가 – bobetko

+0

일 수 있습니다. jax-ws (Metro) 라이브러리의 버전이 이전 버전 (2.1.3 이전)이기 때문일 수 있습니다. 어떤 버전의 Metro를 사용하고 있는지 확인할 수있는 방법이 있습니다. 그 동안 나는 생성하려고 노력할 것이며 당신에게 알려줄 것입니다. – user2880879

+0

위로 가기 접근 방식과 @WebParam (header = true) 주석을 사용하여 SOAP 헤더를 만들려고했습니다. 그것은 soap : header로 wsdl을 생성하고 클라이언트를 생성 할 때 그 여분의 헤더 매개 변수로 메소드를 생성합니다. 이제 모든 것이 쉽고 정상적으로 보입니다. 내 첫 질문은 당신이 wsdl에서 자바를 생성 할 때, 어떤 wornings을 볼 수 있습니까? wsdl을 확인할 수 있습니까? – user2880879