axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Derek" <derek-a...@crc-corp.com>
Subject RE: [Axis2] Why do I get service skeletons taking OMElement, and uncompilable code?
Date Wed, 21 Jun 2006 00:12:41 GMT
Thanks for the reply, Anne.
 
Unfortunately, the problem still occurs even if I comment out the xs:any
instances, so that does not appear to be the cause of what I am seeing.

Derek

-----Original Message-----
From: Anne Thomas Manes [mailto:atmanes@gmail.com] 
Sent: Tuesday, June 20, 2006 5:10 PM
To: axis-user@ws.apache.org; derek-axis@crc-corp.com
Subject: Re: [Axis2] Why do I get service skeletons taking OMElement, and
uncompilable code?


I suspect it's because you have xs:any in your schema. Since WSDL2Java
doesn't know what will be in the message, it defaults to OMElement.

Anne


On 6/20/06, Derek <derek-axis@crc-corp.com> wrote: 

I'm getting rather frustrated trying to use Axis2 to do something apparently
pretty basic.

Using the WSDL and schema below, and the given WSDL2Java command line, I get
XMLBeans classes generated.
However, the generated skeleton methods take parameters of type OMElement 
and return a result of type OMElement, instead of using the generated
XMLBeans wrapper classes. Also, some of the code does not compile, trying to
call methods on OMElement that do not exists. I get no errors reported when 
I run WSDL2Java, though.

Does anybody know what I might be doing wrong? This example seems only
slightly more complicated than the ones that exist in the Axis2 user's
guide.

Thanks in advance for any replies. 

The WSDL:

<?xml version="1.0" encoding="UTF-8"?>

<definitions name="FDefinitions"
   targetNamespace="  <http://www.example.com/wsdl/2004-10-01/feu>
http://www.example.com/wsdl/2004-10-01/feu"
   xmlns:carshdr="http://www.example.com/wsdl/2004-10-01/cars"
   xmlns:carsfault="  <http://www.example.com/wsdl/2006-06-13/carsfault>
http://www.example.com/wsdl/2006-06-13/carsfault"
   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
   xmlns:tns="  <http://www.example.com/wsdl/2004-10-01/feu>
http://www.example.com/wsdl/2004-10-01/feu"
   xmlns:feu="http://www.dummy-temp-address"
   xmlns:soap="  <http://schemas.xmlsoap.org/wsdl/soap/>
http://schemas.xmlsoap.org/wsdl/soap/"
   xmlns:xs="http://www.w3.org/2001/XMLSchema"
   xmlns:soapenc="  <http://schemas.xmlsoap.org/soap/encoding/>
http://schemas.xmlsoap.org/soap/encoding/"
   xmlns="http://schemas.xmlsoap.org/wsdl/">

   <wsdl:types>
      <xs:schema>
         <xs:import namespace=" http://www.dummy-temp-address"
schemaLocation="FEU.xsd"/>
      </xs:schema>
      <xs:schema
targetNamespace="  <http://www.example.com/wsdl/2004-10-01/feu>
http://www.example.com/wsdl/2004-10-01/feu">
         <xs:element name="full-event-updates">
            <xs:complexType>
               <xs:sequence>
                  <xs:element name="full-event-update" 
type="feu:FullEventUpdate" minOccurs="0" maxOccurs="unbounded"/>
               </xs:sequence>
            </xs:complexType>
         </xs:element>
         <xs:element name="full-event-update" type="feu:FullEventUpdate"/> 
         <xs:element name="return" type="xs:string"/>
      </xs:schema>
      <xs:schema
targetNamespace="http://www.example.com/wsdl/2004-10-01/cars
<http://www.example.com/wsdl/2004-10-01/cars> ">
         <xs:element name="CPassword" type="xs:string"/>
         <xs:element name="CLogin" type="xs:string"/>
      </xs:schema>
      <xs:schema 
targetNamespace="http://www.example.com/wsdl/2006-06-13/carsfault">
         <xs:element name="generalFault" type="xs:string"/> 
      </xs:schema>
   </wsdl:types>

   <message name="FEvent">
      <part name="contents" element="tns:full-event-update"/>
   </message>

   <message name="FRecap">
      <part name="contents" element="tns:full-event-updates"/>
   </message>

   <message name="FResponse">
      <part name="return" element="tns:return"/> 
   </message>

   <message name="CPassword">
      <part name="CPassword" element="carshdr:CPassword"/>
   </message>

   <message name="CLogin"> 
      <part name="CLogin" element="carshdr:CLogin"/>
   </message>

   <message name="GeneralFault">
      <part name="faultDetail" element="carsfault:generalFault"/> 
   </message>

   <portType name="FPortType">
      <documentation>F Port Type</documentation>

      <operation name="acceptFEvent" parameterOrder="contents"> 
         <input name="acceptFEventRequest" message="tns:FEvent"/>
         <output name="acceptFEventResponse" message="tns:FResponse"/>
         <fault name="GeneralFault" message="tns:GeneralFault"/> 
      </operation>

      <operation name="acceptFRecap" parameterOrder="contents">
         <input name="acceptFRecapRequest" message="tns:FRecap"/>
         <output name="acceptFRecapResponse" message="tns:FResponse"/>
         <fault name="GeneralFault" message="tns:GeneralFault"/>
      </operation>
   </portType>

   <binding name="FSoapBinding" type="tns:FPortType">
      <documentation>F Soap Binding</documentation>
      <soap:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"/>

      <operation name="acceptFEvent">
         <soap:operation soapAction="acceptFEventAction"/> 
         <input>
            <soap:header message="tns:CLogin" part="CLogin" use="literal"/>
            <soap:header message="tns:CPassword" part="CPassword" 
use="literal"/>
            <soap:body use="literal"/>
         </input>
         <output>
            <soap:body use="literal"/>
         </output> 
         <fault name="GeneralFault">
            <soap:fault name="GeneralFault" use="literal"/>
         </fault>
      </operation>

      <operation name="acceptFRecap"> 
         <soap:operation soapAction="acceptFRecapAction"/>
         <input>
            <soap:header message="tns:CLogin" part="CLogin" use="literal"/>
            <soap:header message="tns:CPassword" part="CPassword"
use="literal"/>
            <soap:body use="literal"/>
         </input>
         <output> 
            <soap:body use="literal"/>
         </output>
         <fault name="GeneralFault">
            <soap:fault name="GeneralFault" use="literal"/> 
         </fault>
      </operation>
   </binding>

   <service name="FService">
      <documentation>F Web Service</documentation>
      <port name="FPort" binding="tns:FSoapBinding"> 
         <soap:address
location="http://localhost:8080/axis/services/FService"/>
      </port>
   </service>
</definitions> 

The schema:

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema targetNamespace="http://www.dummy-temp-address"
           xmlns=" http://www.dummy-temp-address"
           xmlns:xs="http://www.w3.org/2001/XMLSchema"

xmlns:cars="  <http://www.crc-corp.com/schemas/cars/schema_annotation>
http://www.crc-corp.com/schemas/cars/schema_annotation"

           elementFormDefault="unqualified"
           attributeFormDefault="unqualified"
           version="DRAFT"> 

   <xs:element name="full-event-update" type="FullEventUpdate"/>

   <xs:complexType name="FullEventUpdate">
      <xs:sequence>
         <xs:element name="message-header" type="MessageHeader"/> 
         <xs:element name="event-reference" type="EventReference"/>
         <xs:any/>
      </xs:sequence>
   </xs:complexType>

   <xs:complexType name="MessageHeader"> 
      <xs:sequence>
         <xs:any/>
      </xs:sequence>
   </xs:complexType>

   <xs:complexType name="EventReference">
      <xs:sequence>
         <xs:element name="event-id" type="xs:string"/> 
         <xs:element name="update" type="xs:unsignedInt"/>
         <xs:element name="response-plan-id" type="xs:string"
minOccurs="0"/>
      </xs:sequence> 
   </xs:complexType>
</xs:schema>



The WSDL command line:

   WSDL2Java --databinding-method xmlbeans
             --uri FEUImport.wsdl
             --server-side
             --generate-all 
             --service-description
             --output generatedSrc
             --package crc.feuimport.wsdl2java

The skeleton interface that is getting generated:


    /**
     * FEUServiceSkeletonInterface.java 
     *

       * This file was auto-generated from WSDL
     * by the Apache Axis2 version: 1.0 May 05, 2006 (12:31:13 IST)
     */
    package crc.feuimport.wsdl2java;
    /**
     *  FServiceSkeletonInterface java skeleton interface for the 
axisService
     */
    public interface FServiceSkeletonInterface {


        /**
         * Auto generated method signature

          * @param param0

         */
        public  org.apache.axiom.om.OMElement acceptFEURecap
                  (org.apache.axiom.om.OMElement param0 )

           throws
crc.feuimport.wsdl2java.FServiceSkeleton.GeneralFaultException;


        /**
         * Auto generated method signature 

          * @param param4

         */
        public  org.apache.axiom.om.OMElement acceptFEUEvent
                  (org.apache.axiom.om.OMElement param4 )

           throws
crc.feuimport.wsdl2java.FServiceSkeleton.GeneralFaultException ;

    }

The following code appears in the generated
FServiceMessageReceiverInOut.java, which will not compile because there is
no such method as
newXMLStreamReader() on OMObject:

                private   org.apache.axiom.om.OMElement
toOM(org.apache.axiom.om.OMElement param, boolean optimizeContent){
                org.apache.axiom.om.impl.builder.StAXOMBuilder builder = new
org.apache.axiom.om.impl.builder.StAXOMBuilder 
                (org.apache.axiom.om.OMAbstractFactory.getOMFactory(),new
org.apache.axis2.util.StreamWrapper(param.newXMLStreamReader())) ;
                 org.apache.axiom.om.OMElement documentElement =
builder.getDocumentElement ();



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org





Mime
View raw message