wsimport rejects WSDL accepted by Axis

View: New views
3 Messages — Rating Filter:   Alert me  

wsimport rejects WSDL accepted by Axis

by StanleyAllen :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

To the mailing list:

I've heard rumors that Axis is more forgiving than it should be.  But I still can't
figure out why the WSDL below is rejected by wsimport, but accepted as clean
by Axis' WSDL2Java.  I'm using JAX-WS 2.1.1, and invoking wsimport like this:

H:\> %JAXWS_HOME%\bin\wsimport.bat BasicInterface2.wsdl

This is the output:

[WARNING] R2716/R2726 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in doc/lit or rpc/lit for soapbind:fault: "null"
  line 53 of file:/H:/BasicInterface2.wsdl

[WARNING] soap:fault name not specified, wsdl:fault "fault" in operation "unmark"
  line 52 of file:/H:/BasicInterface2.wsdl

[ERROR] in message "StateError", part "descr" must specify a "element" attribute
  line 25 of file:/H:/BasicInterface2.wsdl



Is the wsimport at fault?  Or is the WSDL?  If someone can give me a clue, I
would much appreciate.  Thanks...

Stanley


-------------  BasicInterface.wsdl  ------------------------
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="BasicInterface"
                                targetNamespace="http://BasicInterface.tool.company.com"
                                xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
                                xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                                xmlns:intf="http://BasicInterface.tool.company.com"
                                xmlns:typ="http://BasicInterfaceTypes.tool.company.com/"
                                xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">

  <wsdl:types>
    <xsd:schema targetNamespace="http://BasicInterfaceTypes.tool.company.com/"
                xmlns:xsd="http://www.w3.org/2001/XMLSchema">

                <xsd:complexType name="exceptionType">
                        <xsd:sequence>
                                <xsd:element name="exception" nillable="true" type="xsd:anyType"/>
                        </xsd:sequence>
                </xsd:complexType>

        </xsd:schema>
  </wsdl:types>

  <!-- exceptions -->
  <wsdl:message name="StateError">
        <wsdl:part name="descr" type="typ:exceptionType"/>
  </wsdl:message>

  <wsdl:message name="unMarkRequest"/>
  <wsdl:message name="unMarkResponse"/>

  <wsdl:portType name="BasicInterface">

    <wsdl:operation name="unmark">
      <wsdl:input name="unMarkRequest" message="intf:unMarkRequest"/>
      <wsdl:output name="unMarkResponse" message="intf:unMarkResponse"/>
      <wsdl:fault name="fault" message="intf:StateError"/>
    </wsdl:operation>

  </wsdl:portType>

  <wsdl:binding name="BasicInterfaceSoapBinding" type="intf:BasicInterface">
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>

    <wsdl:operation name="unmark">
      <soap:operation soapAction=""/>
      <wsdl:input name="unMarkRequest">
        <soap:body use="literal" namespace="http://BasicInterface.tool.company.com"/>
      </wsdl:input>
      <wsdl:output name="unMarkResponse">
        <soap:body use="literal" namespace="http://BasicInterface.tool.company.com"/>
      </wsdl:output>
      <wsdl:fault name="fault">
        <soap:fault use="literal" namespace="http://BasicInterface.tool.company.com"/>
      </wsdl:fault>
    </wsdl:operation>

  </wsdl:binding>

  <wsdl:service name="BasicInterfaceService">
    <wsdl:port name="BasicInterfaceService" binding="intf:BasicInterfaceSoapBinding">
      <soap:address location="http://localhost:8080/basic/services/BasicInterfaceService" />
    </wsdl:port>
  </wsdl:service>

</wsdl:definitions>

The file is also attached below.

BasicInterface2.wsdl

Re: wsimport rejects WSDL accepted by Axis

by StanleyAllen :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Follow-up:

I just tried this with the latest (version 2.1.2) and it gave me the same results.

Is this a known problem with JAX-WS?  Is there something wrong with my WSDL?

Can anyone provide some input?

Thanks,

Stanley


Re: wsimport rejects WSDL accepted by Axis

by Doug Kohlert :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

The problem with the WSDL is that is is not Basic Profile compliant, as
stated in the error message, the  "StateError" message must specify an
element, not a type.  The BP 1.1 R2205 is:   A |wsdl:binding| in a
DESCRIPTION MUST refer, in each of its |soapbind:header|,
|soapbind:headerfault| and |soapbind:fault| elements, only to
|wsdl:part| element(s) that have been defined using the |element| attribute.

So the following

  <wsdl:message name="StateError">
        <wsdl:part name="descr" type="typ:exceptionType"/>
  </wsdl:message>


Needs to be something like:

  <wsdl:message name="StateError">
        <wsdl:part name="descr" element="typ:exceptionElement"/>
  </wsdl:message>

and you need to define the "typ:exceptionElement" in the schema section.


StanleyAllen wrote:

> Follow-up:
>
> I just tried this with the latest (version 2.1.2) and it gave me the same
> results.
>
> Is this a known problem with JAX-WS?  Is there something wrong with my WSDL?
>
> Can anyone provide some input?
>
> Thanks,
>
> Stanley
>
>
>  

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@...
For additional commands, e-mail: dev-help@...

LightInTheBox - Buy quality products at wholesale price!