Итак, у меня есть веб-сервис, который получает флаг из таблицы в sql, который работает. Я сейчас пытаюсь добавить функциональность, чтобы установить тот же флаг. Если у меня есть только один вход (то есть значение имени пользователя ИЛИ), он работает отлично. Однако, если я пытаюсь использовать 2 элемента в качестве входных данных, я получаю следующую ошибку, когда моя AXIS пытается развернуть:
org.jboss.axis.InternalException: java.lang.Exception: OperationDesc для setPWFlag не был синхронизирован с методом PWEndPoint.
Вот урезанная версия моего 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="@url@" />
</port>
</service>
Что меня действительно сбивает с толку, так это то, что он говорит, что у него есть проблема с синхронизацией с методом в PWEndPoint, но 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;
}
Почему два входных параметра приводят к невозможности его правильного развертывания?