79301

Can't implement solicit-response WSDL operation in Eclipse

Question:

I'm writing a WSDL file and I get this error from the Eclipse validator:

cvc-complex-type.2.4.a: Invalid content was found starting with element 'input'. One of '{"http://schemas.xmlsoap.org/wsdl/":fault}' is expected.

This is the WSDL source I wrote, the line where the Eclipse validator gives me the error is in the <operation name="bootstrap"> element:

<definitions name="Slave" targetNamespace="http://pad.polito.it/ACSAuth" xmlns:tns="http://pad.polito.it/ACSAuth" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/"> <types> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0" targetNamespace="http://pad.polito.it/ACSAuth" xmlns:tns="http://pad.polito.it/ACSAuth"> <xs:element name="isAuthQuery" type="tns:authRequestType" /> <!-- OMITTED COMPLEX TYPE authRequestType --> <xs:element name="isAuthReply" type="tns:authReplyType" /> <!-- OMITTED COMPLEX TYPE authReplyType --> <xs:element name="isAuthError" type="xs:string" /> <xs:element name="newSlave" type="tns:requestNewDB"/> <!-- OMITTED COMPLEX TYPE requestNewDB --> <xs:element name="errorBoot" type="xs:string" /> <xs:element name="AccessDB" type="tns:AccessDBType"> <!-- OMITTED COMPLEX TYPE AccessDBType --> <xs:element name="passThrough" type="tns:passThroughType"/> <!-- OMITTED COMPLEX TYPE passThroughType --> </xs:schema> </types> <message name="askForAuth"> <part name="query" element="tns:isAuthQuery"/> </message> <message name="replyForAuth"> <part name="response" element="tns:isAuthReply"/> </message> <message name="errorForAuth"> <part name="error" element="tns:isAuthError"/> </message> <message name="newSlave"> <part name="newSlaveInfo" element="tns:newSlave"/> </message> <message name="updatedDB"> <part name="db" element="tns:AccessDB"/> </message> <message name="errorBoot"> <part name="error" element="tns:errorBoot"/> </message> <message name="passThroughNotice"> <part name="info" element="tns:passThrough"/> </message> <portType name="myPorts"> <operation name="isAuthorized"> <input message="tns:askForAuth"/> <output message="tns:replyForAuth"/> <fault name="error" message="tns:errorForAuth"/> </operation> <operation name="bootstrap"> <output name="newSlave" message="tns:newSlave"/> <input name="newDB" message="tns:updatedDB"/> <fault name="error" message="tns:errorBoot"/> </operation> <operation name="updateManager"> <input name="newUpdate" message="tns:updatedDB"/> </operation> <operation name="getNotice"> <input name="newNotice" message="tns:passThroughNotice"/> </operation> </portType> <binding name="myBindings" type="tns:myPorts"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> <operation name="isAuthorized"> <soap:operation soapAction="" /> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> <fault name="error"> <soap:fault name="error" use="literal"/> </fault> </operation> <operation name="bootstrap"> <soap:operation soapAction="" /> <output> <soap:body use="literal"/> </output> <!-- *** THIS IS THE LINE WHERE I GET THE ERROR *** --> <input> <soap:body use="literal"/> </input> <fault name="error"> <soap:fault name="error" use="literal"/> </fault> </operation> <operation name="updateManager"> <soap:operation soapAction="" /> <input> <soap:body use="literal"/> </input> </operation> <operation name="getNotice"> <soap:operation soapAction="" /> <input> <soap:body use="literal"/> </input> </operation> </binding> <service name="MyServices"> <port name="ACSAuth" binding="tns:myBindings"> <soap:address location="http://localhost:8181/ACSAuth"/> </port> </service> </definitions>

Here you can find the complete WSDL file: <a href="https://dl.dropboxusercontent.com/u/33459047/StackOverflow/Slave.wsdl" rel="nofollow">https://dl.dropboxusercontent.com/u/33459047/StackOverflow/Slave.wsdl</a>

Is this because the WS-I Profile supports only 2 of the 4 recommended primitives that an endpoint can support (and solicit-response is not one of them)? Or it just some stupid error I can't see (I already wasted a lot of time looking for a possible mistake of mine). Can someone help me please? Thank you in advance.

Answer1:

I solved by changing the operation type to request-response because of the missing implementation of the operation solicit-response in WS-I Profile.

More details can be found <a href="https://stackoverflow.com/questions/21189170/strange-wsdl-warning-during-validation-in-eclispe-wsdloperation-was-not-a-req" rel="nofollow">here</a>, thanks to Bogdan.

Recommend

  • Using an external java library in OSGI bundle
  • Bind click event on class or id in ReactJs
  • XML Schema: Child element type based on parent attribute 'type'
  • How does the List monad work in this example?
  • How to plot two 3D plots of matrices on the same figure with same scale in Python
  • Get rid of root element when serializing array
  • All partitions of a list in prolog
  • Format HTML code with Python
  • How can I use bootstrap's grid columns to set the width of X-Editable inputs?
  • Co-Occurre​nce Constraint​
  • XJC javaType adapter in complexType
  • How to ensure a different option with different checkbox
  • Refresh table list using Ajax in Asp.Net Mvc
  • Plotting a dictionary with multiple values per key
  • Unmarshalling works incorrectly: javax.xml.bind.UnmarshalException: unexpected element
  • Show generated SQL in toplink in eclipse
  • Select an attribute with Xpath in a XML with namespace using Powershell
  • Spring custom user details service null pointer exception
  • Selecting multiple elements with Selenium
  • How create references between elements in XML
  • SessionInformation expiration doesn't lead to user log out from system
  • Root element minOccurs or maxOccurs
  • Nested projects in multiproject visual studio templates
  • Feature detection of foreignObject in SVG
  • XSD with multi occurrences unordered
  • Retaining data after updating application
  • Examples of how to a STS in .Net 4.5 using WCF
  • Jetty 9 HashLoginService
  • ActiveRecord query for a count of new users by day
  • Read a local file using javascript
  • Uncaught Error: Could not find module `ember-load-initializers`
  • Optimizing database types to compact database (SQLite)
  • Cross-Platform Protobuf Serialization
  • SSO with signing and signature validation doesn't work
  • Deserializing XML into class C#
  • Do I've to free mysql result after storing it?
  • How to include full .NET prerequisite for Wix Burn installer
  • Turn off referential integrity in Derby? is it possible?
  • costura.fody for a dll that references another dll
  • jQuery Masonry / Isotope and fluid images: Momentary overlap on window resize