wsimport (또는보다 정확하게 wsimport를 사용하는 Eclipse 마법사를 사용하고 있습니다)를 사용하여 웹 서비스 용 새 서버 측 클래스를 생성하려고합니다. 소스 WSDL은 ../ServiceName?wsdl URL을 통해 현재 구현에서 가져온 것입니다.wsimport는 소스 wsdl과 다른 wsdl을 생성하는 클래스를 만듭니다.
내 문제는 내가 새 클래스를 게시하고 새로운? wsdl URL을 탐색 할 때 결과 WSDL이 원본과 다릅니다. 이것은 기존 클라이언트가 새로운 버전의 서비스를 사용하려고 할 때 오류의 원인 인 것 같습니다.
원본 : :
<wsdl:message name="executeResponse">
<wsdl:part element="impl:ServiceNameResult" name="ServiceNameResult"/>
</wsdl:message>
<wsdl:message name="executeRequest">
<wsdl:part element="impl:executeRequest" name="executeRequest"/>
</wsdl:message>
<wsdl:portType name="ServiceName">
<wsdl:operation name="execute" parameterOrder="executeRequest">
<wsdl:input message="impl:executeRequest" name="executeRequest"/>
<wsdl:output message="impl:executeResponse" name="executeResponse"/>
</wsdl:operation>
</wsdl:portType>
새로운 기능 :
<wsdl:message name="executeResponse">
<wsdl:part element="tns:ServiceNameResult" name="ServiceNameResult">
</wsdl:part>
</wsdl:message>
<wsdl:message name="execute">
<wsdl:part element="tns:executeRequest" name="executeRequest">
</wsdl:part>
</wsdl:message>
<wsdl:portType name="ServiceName">
<wsdl:operation name="execute">
<wsdl:input message="tns:execute" name="execute">
</wsdl:input>
<wsdl:output message="tns:executeResponse" name="executeResponse">
</wsdl:output>
</wsdl:operation>
</wsdl:portType>
변화가에 여기에 고객과의 문제가 발생할 것으로 보인다 차이의 예와 WSDL의 하위 섹션입니다 portType 입력 메시지. "executeRequest"에서 "execute"로 이름이 변경됩니다.
왜 이것이 변경 될지 또는 Java 클래스에서이를 수정하는 방법을 알 수 없습니다. 모든 주석이 정확 해 보입니다.
Eclipse에서 Apache Axis2, Apache Axis 또는 Apache CXF를 사용하여 WSDL에서 Java 클래스를 생성합니까? –
Apache CXF 저는 믿습니다. 그러나 나는 완전히 확신하지 못한다. 내가 게시 할 때 CXF 웹 서비스라고합니다. 리버티 프로파일에 게시하고 있습니다. – kutuzof
@BuhakeSindi IBM WebSphere JAX-WS를 사용하고 있습니다. – kutuzof