Also habe ich einen Webservice, der eine Flagge aus einer Tabelle in sql bekommt, die funktioniert. Ich versuche jetzt, die Funktionalität hinzuzufügen, um die gleiche Flagge zu setzen. Wenn ich nur eine Eingabe (d. H. Einen Benutzernamen ODER Flag-Wert) habe, funktioniert es perfekt. Wenn ich jedoch versuche, zwei Elemente als Eingabe zu verwenden, erhalte ich den folgenden Fehler, wenn mein AXIS versucht, zu deployen:AXIS: Der OperationDesc wurde nicht mit einer Methode synchronisiert
org.jboss.axis.InternalException: java.lang.Exception: Der OperationDesc für setPWFlag wurde nicht synchronisiert zu einer Methode von PWEndPoint.
Hier ist eine beschnittene Version meiner WSDL:
<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>
Was wirklich verwirrt mich ist, dass es sagt, es ist ein Problem, ein Verfahren in PWEndPoint Synchronisation, aber PWEndPoint wird durch Java2WSDL erzeugt. Hier ist die Schnittstelle, die erstellt wird:
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;
}
Warum ist es, dass mit 2 Eingangsparametern bewirkt, dass es nicht in der Lage, richtig zu implementieren?