Domanda

Ho nel mio servizio web un semplice servizio pubblico booleano isAlive () . L'ho definito nel mio 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>

Quando generi lo scheletro di servizio, il metodo viene generato ma non nello stub client. C'è un problema nel WSDL? Dovrei inserire un wsdl: input anche se il metodo non ha argomenti (non ho inserito l'intero WSDL ma tutti gli altri metodi con una "richiesta" arg sono ben generati)? E se devo mettere un wsdl: input quale sarebbe il suo messaggio?

Modifica : dopo aver convalidato il WSDL in Eclipse ho l'avviso WS-I: (BP2208) wsdl: l'operazione non era una richiesta / risposta o un'operazione a senso unico dopo la ricerca ho trovato una descrizione qui: http: //www.ws-i.org/Testing/Tools/2005/01/BP11_TAD_1-1.htm#BP2208 (sembra che l'ancoraggio non funzioni), quindi immagino che l'errore sia probabilmente il wsdl mancante: ingresso.

È stato utile?

Soluzione

Come detto nella mia modifica il problema era il wsdl: input mancante. Aggiungendo

<wsdl:input message="ns:isAliveRequest" />

e

<wsdl:message name="isAliveRequest"></wsdl:message>

allora il mio problema originale è stato risolto ... conclusione, avrei dovuto cercare di più da solo prima di chiedere su SO :(

Altri suggerimenti

Non sono sicuro che questo sia il tuo problema, ma la seguente riga sembra non avere tag di chiusura:

<wsdl:types>
    <xsd:element name="isAliveResponse" type="xsd:boolean">
</wsdl:types>

Dovrebbe essere così:

<wsdl:types>
    <xsd:element name="isAliveResponse" type="xsd:boolean"/>
</wsdl:types>

Spero che questo aiuti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top