2011-01-07 1 views
2

에 동기화되지 않았습니다. SQL의 테이블에서 작동하는 webservice가 있습니다. 나는 이제 동일한 플래그를 설정하는 기능을 추가하려고합니다. 하나의 입력 (예 : 사용자 이름 또는 플래그 값) 만 있으면 완벽하게 작동합니다. 그러나 AXIS이 배포를 시도 할 때 입력으로 2 개의 요소가 있으면 다음과 같은 오류가 발생합니다.AXIS : OperationDesc가 메소드

org.jboss.axis.InternalException : java.lang.Exception : setPWFlag의 OperationDesc가 동기화되지 않았습니다. PWEndPoint의 방법에.

여기 내 WSDL의 클립 한 버젼입니다 : 정말 날 그것이 PWEndPoint의 방법에 동기화 문제가 말한다이다 배플 무엇

<complexType name="getPWFlagRequest"> 
    <sequence> 
    <element name="alias" type="xsd:string" /> 
    </sequence> 
    </complexType> 

    <complexType name="getPWFlagResponse"> 
    <sequence> 
    <element name="result" type="xsd:string" /> 
    </sequence> 
    </complexType> 

    <complexType name="setPWFlagRequest"> 
    <sequence> 
    <element name="id" type="xsd:string" /> 
    <!-- Having this line gives the OperationDesc Synch Error --> 
    <element name="flag" type="xsd:string" /> 
    </sequence> 
    </complexType> 

    <complexType name="setPWFlagResponse"/> 

    <element name="getPWFlagRequest" type="types:getPWFlagRequest" /> 
    <element name="getPWFlagResponse" type="types:getPWFlagResponse" /> 

    <element name="setPWFlagRequest" type="types:setPWFlagRequest" /> 
    <element name="setPWFlagResponse" type="types:setPWFlagResponse" /> 
</schema> 
</types> 

<message name="PWEndPoint_getPWFlagRequest" > 
    <part name="parameter" element="types:getPWFlagRequest"/> 
</message> 
<message name="PWEndPoint_getPWFlagResponse"> 
    <part name="result" element="types:getPWFlagResponse"/> 
</message> 

<message name="PWEndPoint_setPWFlagRequest" > 
    <part name="parameters" element="types:setPWFlagRequest"/> 
</message> 
<message name="PWEndPoint_setPWFlagResponse"/> 

<portType name="PWEndPoint"> 
    <operation name="getPWFlag" > 
     <input message="service:PWEndPoint_getPWFlagRequest"/> 
     <output message="service:PWEndPoint_getPWFlagResponse"/> 
    </operation> 
    <operation name="setPWFlag" > 
     <input message="service:PWEndPoint_setPWFlagRequest"/> 
     <output message="service:PWEndPoint_setPWFlagResponse"/> 
    </operation> 
</portType> 


<binding name="PWResetBinding" type="service:PWEndPoint"> 
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /> 
    <operation name="getPWFlag" > 
    <soap:operation soapAction="getPWFlag" /> 
    <input> 
    <soap:body use="literal" /> 
    </input> 
    <output> 
    <soap:body use="literal" /> 
    </output> 
    </operation> 
    <operation name="setPWFlag" > 
    <soap:operation soapAction="setPWFlag" /> 
    <input> 
    <soap:body /> 
    </input> 
    <output> 
    <soap:body use="literal" /> 
    </output> 
    </operation> 
</binding> 


<service name="PWService"> 
    <port name="PWEndPointPort" binding="service:PWResetBinding"> 
    <soap:address location="@[email protected]" /> 
    </port> 
</service> 

하지만 PWEndPoint은 Java2WSDL에 의해 생성됩니다. 왜이 개 입력 매개 변수를 가진이 제대로 배포 할 수 없습니다 원인 것을

public interface PWEndPoint extends java.rmi.Remote { 
    public java.lang.String getPWFlag(java.lang.String alias) throws 
     java.rmi.RemoteException; 
    public void setPWFlag(java.lang.String id, java.lang.String flag) throws 
    java.rmi.RemoteException; 
} 

입니다 : 여기에서 만들어지는 인터페이스입니까?

답변

1

문제의 근본 원인을 발견했습니다. 문서 인코딩 사용과 복잡한 유형을 정의하는 방법에 문제가있었습니다.

RPC를 사용하도록 전환하고 문제를 수정 한 SetPWFlagRequest를 정의하는 방법을 수정했습니다.