В моем веб-сервисе есть простой public boolean isAlive()
сервис.
Я определил это в моем WSDL:
<wsdl:types>
<xsd:element name="isAliveResponse" type="xsd:boolean">
</xsd:element>
</wsdl:types>
<wsdl:message name="isAliveResponse">
<wsdl:part element="ns:isAliveResponse" name="parameters"/>
</wsdl:message>
<wsdl:portType name="myService">
<wsdl:operation name="isAlive">
<wsdl:output message="ns:isAliveResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="myServiceSOAP" type="ns:myService">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="isAlive">
<soap:operation soapAction="http://myServiceURL/isAlive" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
Когда я генерирую скелет Сервиса, метод генерируется, но не в заглушке клиента. Есть ли проблема в WSDL? Должен ли я поместить wsdl: input, даже если у метода нет аргументов (я не поместил весь WSDL, но все остальные методы с аргументом request хорошо сгенерированы)? И если я должен поставить ввод WSDL: что бы это было сообщение?
Редактировать : После проверки WSDL в Eclipse у меня появляется предупреждение WS-I: (BP2208) wsdl:operation was not a request/response or one-way operation
, после поиска я нашел описание здесь: http://www.ws -i.org / Testing / Tools / 2005/01 /BP11_TAD_1-1.htm#BP2208 (кажется, якорь не работает), поэтому я предполагаю, что ошибка, вероятно, в отсутствующем wsdl: input.