facebook

warnings during working with WSDL – how serious are they?

  1. MyEclipse Archived
  2.  > 
  3. Web Services
Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #301391 Reply

    Hi,

    I just posted a message in this same forum yesterday about a WSDL given to me by an external party for which i have to generate client. I have a similar (but different) issue here with another client’s WSDL file. The offending WSDL is:

    
    <?xml version="1.0" encoding="UTF-8"?>
    <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
        xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
        xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://www.companyX.com/companyA"
        xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
        xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetNamespace="http://www.companyX.com/companyA"
        xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
        <wsdl:types>
            <s:schema elementFormDefault="qualified" targetNamespace="http://www.companyX.com/companyA">
                <s:element name="Submit">
                    <s:complexType>
                        <s:sequence>
                            <s:element minOccurs="0" maxOccurs="1"
                                name="detailedInquiryRequestXml" type="s:string" />
                        </s:sequence>
                    </s:complexType>
                </s:element>
                <s:element name="SubmitResponse">
                    <s:complexType>
                        <s:sequence>
                            <s:element minOccurs="0" maxOccurs="1" name="SubmitResult"
                                type="s:string" />
                        </s:sequence>
                    </s:complexType>
                </s:element>
                <s:element name="string" nillable="true" type="s:string" />
            </s:schema>
        </wsdl:types>
        <wsdl:message name="SubmitSoapIn">
            <wsdl:part name="parameters" element="tns:Submit" />
        </wsdl:message>
        <wsdl:message name="SubmitSoapOut">
            <wsdl:part name="parameters" element="tns:SubmitResponse" />
        </wsdl:message>
        <wsdl:message name="SubmitHttpGetIn">
            <wsdl:part name="detailedInquiryRequestXml" type="s:string" />
        </wsdl:message>
        <wsdl:message name="SubmitHttpGetOut">
            <wsdl:part name="Body" element="tns:string" />
        </wsdl:message>
        <wsdl:message name="SubmitHttpPostIn">
            <wsdl:part name="detailedInquiryRequestXml" type="s:string" />
        </wsdl:message>
        <wsdl:message name="SubmitHttpPostOut">
            <wsdl:part name="Body" element="tns:string" />
        </wsdl:message>
        <wsdl:portType name="SummaryInquirySoap">
            <wsdl:operation name="Submit">
                <wsdl:input message="tns:SubmitSoapIn" />
                <wsdl:output message="tns:SubmitSoapOut" />
            </wsdl:operation>
        </wsdl:portType>
        <wsdl:portType name="SummaryInquiryHttpGet">
            <wsdl:operation name="Submit">
                <wsdl:input message="tns:SubmitHttpGetIn" />
                <wsdl:output message="tns:SubmitHttpGetOut" />
            </wsdl:operation>
        </wsdl:portType>
        <wsdl:portType name="SummaryInquiryHttpPost">
            <wsdl:operation name="Submit">
                <wsdl:input message="tns:SubmitHttpPostIn" />
                <wsdl:output message="tns:SubmitHttpPostOut" />
            </wsdl:operation>
        </wsdl:portType>
        <wsdl:binding name="SummaryInquirySoap" type="tns:SummaryInquirySoap">
            <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
            <wsdl:operation name="Submit">
                <soap:operation soapAction="http://www.companyX.com/companyA/Submit"
                    style="document" />
                <wsdl:input>
                    <soap:body use="literal" />
                </wsdl:input>
                <wsdl:output>
                    <soap:body use="literal" />
                </wsdl:output>
            </wsdl:operation>
        </wsdl:binding>
        <wsdl:binding name="SummaryInquirySoap12" type="tns:SummaryInquirySoap">
            <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
            <wsdl:operation name="Submit">
                <soap12:operation soapAction="http://www.companyX.com/companyA/Submit"
                    style="document" />
                <wsdl:input>
                    <soap12:body use="literal" />
                </wsdl:input>
                <wsdl:output>
                    <soap12:body use="literal" />
                </wsdl:output>
            </wsdl:operation>
        </wsdl:binding>
        <wsdl:binding name="SummaryInquiryHttpGet" type="tns:SummaryInquiryHttpGet">
            <http:binding verb="GET" />
            <wsdl:operation name="Submit">
                <http:operation location="/Submit" />
                <wsdl:input>
                    <http:urlEncoded />
                </wsdl:input>
                <wsdl:output>
                    <mime:mimeXml part="Body" />
                </wsdl:output>
            </wsdl:operation>
        </wsdl:binding>
        <wsdl:binding name="SummaryInquiryHttpPost" type="tns:SummaryInquiryHttpPost">
            <http:binding verb="POST" />
            <wsdl:operation name="Submit">
                <http:operation location="/Submit" />
                <wsdl:input>
                    <mime:content type="application/x-www-form-urlencoded"
                        part="Body" />
                </wsdl:input>
                <wsdl:output>
                    <mime:mimeXml part="Body" />
                </wsdl:output>
            </wsdl:operation>
        </wsdl:binding>
        <wsdl:service name="SummaryInquiry">
            <wsdl:port name="SummaryInquirySoap" binding="tns:SummaryInquirySoap">
                <soap:address location="http://188.185.142.209/companyA/SummaryInquiry.asmx" />
            </wsdl:port>
            <wsdl:port name="SummaryInquirySoap12" binding="tns:SummaryInquirySoap12">
                <soap12:address location="http://188.185.142.209/companyA/SummaryInquiry.asmx" />
            </wsdl:port>
            <wsdl:port name="SummaryInquiryHttpGet" binding="tns:SummaryInquiryHttpGet">
                <http:address location="http://188.185.142.209/companyA/SummaryInquiry.asmx" />
            </wsdl:port>
            <wsdl:port name="SummaryInquiryHttpPost" binding="tns:SummaryInquiryHttpPost">
                <http:address location="http://188.185.142.209/companyA/SummaryInquiry.asmx" />
            </wsdl:port>
        </wsdl:service>
    </wsdl:definitions>
    

    … and the “warning” that i receive in the WSDL file is:

    
    WS-I: (AP2901) A description uses neither the WSDL MIME Binding as described in WSDL 1.1 Section 5 nor WSDL SOAP binding as described in WSDL 1.1 Section 3 on each of the wsdl:input or wsdl:output elements of a wsdl:binding.
    

    which occurs on line 78, in the following snippet:

    
        <wsdl:binding name="SummaryInquirySoap12" type="tns:SummaryInquirySoap">
            <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
            <wsdl:operation name="Submit">
                <soap12:operation soapAction="http://www.dq.com.lb/Waseel/Submit"
                    style="document" />
                <wsdl:input>
                    <soap12:body use="literal" />
                </wsdl:input>
                <wsdl:output>
                    <soap12:body use="literal" />
                </wsdl:output>
            </wsdl:operation>
        </wsdl:binding>
    

    … and when i generate my client side artifacts from this WSDL, i receive the following “warning” message:

    
    WS-I: (BP2402) The wsdl:binding element does not use a soapbind:binding element as defined is section "3 SOAP Binding." of the WSDL 1.1 specification.

    If, i ignore the above warnings and click “Finish” to generate the artifacts, it gives me the following five “warning” prompts:

    
    SOAP port "SummayInquirySoap12": uses a non-standard SOAP 1.2 binding.
    
    port "SummaryInquiryHttpGet" is not a SOAP port, it has no soap:address
    
    port "SummaryInquiryHttpGet": not a standard SOAP port. The generated articats may not work with JAXWS runtime.
    
    port "SummaryInquiryHttpPost" is not a SOAP port, it has not soap:address
    
    port "SummaryInquiryHttpPost": not a standard SOAP port. The generated articats may not work with JAXWS runtime.
    

    If i ignore these, the following is what get created:

    
    |-ObjectFactory.java
    |-package-info.java
    |-Submit.java
    |-SubmitResponse.java
    |-SummaryInquiry.java
    |-SummaryInquiryHttpGet.java
    |-SummaryInquiryHttpPost.java
    |-SummaryInquirySoap.java
    

    … and i use the following code to invoke the web service:

    
        SummaryInquiry myStub=new SummaryInquiry();
        SummaryInquirySoap myPort=myStub.getSummaryInquirySoap();
        myPort.submit(whatever);
    

    Apparaently, this client also used .NET web services to generate artifacts on his side and (i think) that’s what is causing validation errors in his WSDL on MyEclipse when i try to generate client side stubs for me. This is happening may be because .NET doesnt adhere to WS-I very strictly. However, like the previous issue ([URL]https://www.genuitec.com/forums/topic/attributeâ-partâ-must-appear-on-mime-content/[/URL]), this WSDL was working fine with me when i was working with JAX-RPC (without Eclipse, and was using Ant scripts, wsdeploy and wscompile). It is a bit unnatural for me to ask the external agent to change his WSDL because i am upgrading from JAX-RPC to JAX-WS.

    My question is, should i go ahead and ask the external agent to make his WSDL WS-I compliant? Or can i safely ignore all the “warning”s in this process and try continuing? I know that warnings are warnings and not errors, but here i am getting a lot of them, all in one process. Secondly the warning message related to “validation _error_” is a little hard for me to digest and to continue ignoring it sounds not-good to me.

    I am using MyEclipse 7.5 with tomcat6/jboss5 using JDK6. My workspace uses 1.6 as compliance level. My project uses Java EE5.0, Jax-WS 2.1 libraries along with other jars needed for application.

    Thanks in advacne and best regards,
    –mnsharif

    #301394 Reply

    support-joy
    Member

    mnsharif,

    I will escalate this issue to our dev team member. Sorry for the inconvinience.

    #301499 Reply

    Thanks for your time joy. I am looking forward to more input on this.
    Thanks once again.

    –mnsharif

    #301520 Reply

    Brian Fernandes
    Moderator

    msharif,

    WS-I is primarily an “interoperability” standard allowing web services developed using one particular framework / stack to be used or consumed by other frameworks with the least possible pain. So what is happening here is just that, you are running into a few issues because your client is not WS-I compliant.

    Given the fact that you are generating the web service client and not the web service itself, I would feel that most of the WS-I errors are not important and can be ignored. It would always be useful to have your client make his WSDL WS-I compliant, but that is often not viable in many instances. I have replied to your other queries here: https://www.genuitec.com/forums/topic/attributeâ-partâ-must-appear-on-mime-content/#post-301519

    Thank you for your patience, do let us know if you require further clarification.

    #301522 Reply

    Hi Brian,

    Like the other thread, your explanation has helped in clearing a few confusions. Thanks for you time really.

    I just came across http://www.ws-i.org/deliverables/Default.aspx and am sharing for anyone whose search might hit this thread 🙂

    –mnsharif

    #301534 Reply

    support-joy
    Member

    Thank you for sharing your findings with us.

Viewing 6 posts - 1 through 6 (of 6 total)
Reply To: warnings during working with WSDL – how serious are they?

You must be logged in to post in the forum log in