Thanks Amila for pointing out the missing 'parts' attribute in the soap:body of my wsdl:binding. 7 out of 9 of my tests are now working. Here are my results thus far using wsdl2java for ADB, JIBX, XMLBeans data bindings:

ADB Binding: All my test cases are working for ADB.
------------


XMLBeans Binding: still have a problem with circular imports.
------------------
Amila, I don't quite understand how to proceed. What is the -Ewdc option? I tried the -Ewdc wsdl2java option using the same import declaration for the xmlschema that causes circular references, and got the same error for circular imports (Duplicate global type). There were no classes, under the build/service/classes directory due to the error. I've compiled the xmlschemas via scomp, but am not sure on how to proceed.
 Results:
java.lang.RuntimeException: org.apache.xmlbeans.XmlException: project://local/StockQuoteA.xsd:17:5: error: sch-props-correct.2: Duplicate global type: [EMAIL PROTECTED] (Original global type found in file: null)


JIBX Binding: still have problem with the 2 part message declartion (which works with ADB binding)
---------------------
Test Case 1: soap header declaration, using a <wsdl:part> element from a <wsdl:message> element that contains 2 <wsdl:part> elements.
   Results:
Exception in thread "main" org.apache.axis2.wsdl.codegen.CodeGenerationException: java.lang.RuntimeException: No mapping defined for element {http://quickstart.samples/xsd}myHeader

 Relevant parts of the WSDL:
<wsdl:definitions xmlns:axis2="http://quickstart.samples/"; xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"; xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"; xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"; xmlns:ns="http://quickstart.samples/xsd"; xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; targetNamespace="http://quickstart.samples/";>
   <wsdl:types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"; attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://quickstart.samples/xsd";>

           <xs:element name="myHeader" type="xs:string"/>
           etc.
   </wsdl:types>

   <wsdl:message name="getPriceMessage">
       <wsdl:part name="myHeaderMessagePart" element="ns:myHeader"/>
       <wsdl:part name="part1" element="ns:getPrice"/>
   </wsdl:message>

<wsdl:binding name="StockQuoteServiceSOAP11Binding" type="axis2:StockQuoteServicePortType"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http"; style="document"/>
       <wsdl:operation name="getPrice">
           <soap:operation soapAction="urn:getPrice" style="document"/>
           <wsdl:input>
<soap:header message="axis2:getPriceMessage" part="myHeaderMessagePart" use="literal"/> <soap:body use="literal" parts="part1" namespace="http://quickstart.samples/"/>
           </wsdl:input>
       etc
   </wsdl:binding>


Amila Suriarachchi wrote:


On Sat, Mar 8, 2008 at 3:39 AM, <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    I'm trying to use wsdl2java from the Axis2 v1.3 distribution to
    generate soap headers, and import xml schemas via either jibx or
    xmlbeans databinding.  I've run into some limitations using wsdl2java
    and wanted to confirm my findings.  All my tests used the
    StockQuoteService wsdl provided in the quickstartjibx and
    quickstartxmlbeans examples.

    1) Test Results for more than one <part> element per <message>
    element:
      -jibx: obtained the following error.
         Caused by: org.apache.axis2.AxisFault: message
    {http://quickstart.samples/}myHeaderMessage
    <http://quickstart.samples/%7DmyHeaderMessage> not found in the WSDL
      -xmlbeans: obtained the following error.
         Caused by:
    
org.apache.axis2.description.WSDL11ToAxisServiceBuilder$WSDLProcessingException:
    More than one part for message
    getPriceMessage


This is because of the problem I mentioned earlier.




    2) Test Results for Cirular imports in a wsdl, where xml schema A
    imports schema B, which imports the original schema A:
      -jibx: didn't try. xml schema is complicated.
      -xmlbeans: Get 'Duplicate global element' Error.
         Caused by: org.apache.xmlbeans.XmlException:
    project://local/AlertInfrastructureTransactions.xsd:14:5: error:
    sch-props-correct.2: Duplicate global element:
    [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]> (Original
    global
    element found in file: null)


Try this.
When generating the code with wsdl2java tool use -Ewdc option. This would generate some dummy classes for Xml beans.

Then generate the Xmlbeans classes with the scomp tool comes with the Xmlbeans distribution. Then replace the above dummy classes with the latter generated data bind classes.





    3) Test Results for soap headers added to binding.
      -jibx: Get mapping error when <soap:header ...> is added to binding.
         Exception in thread "main"
    org.apache.axis2.wsdl.codegen.CodeGenerationException:
    java.lang.RuntimeException: No mapping defined for element
    {http://quickstart.samples/xsd}myHeader
    <http://quickstart.samples/xsd%7DmyHeader>
      -xmlbeans: works, as long as there is a separate 1 part message for
    the header.


even for headers you have to specify the part of the message to be used
<wsdl:operation name="Test">
            <soap:operation soapAction="Test"/>
            <wsdl:input>
                <soap:body use="literal" parts="RequestMsg"/>
<soap:header use="literal" part="HeaderMsg" message="tns:HeaderMsg"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>

thanks,
Amila.



    Based on these findings, I plan to use xmlbeans databinding and pass
    the xml documents as string parameters, then use xmlbeans to create
    the binding objects in the invoked service method.

    Has anyone run into the issues cited above or had different
    experiences?

    Thanks,
    Jonathan


    ---------------------------------------------------------------------
    To unsubscribe, e-mail: [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>
    For additional commands, e-mail: [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>




--
Amila Suriarachchi,
WSO2 Inc.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to