OK. I created the following:

http://issues.apache.org/jira/browse/AXIS2-844

Thanks.

Derek

> -----Original Message-----
> From: Davanum Srinivas [mailto:[EMAIL PROTECTED] 
> Sent: Wednesday, June 21, 2006 7:15 PM
> To: [email protected]; [EMAIL PROTECTED]
> Subject: Re: [Axis2] Why do I get service skeletons taking 
> OMElement, and uncompilable code?
> 
> 
> Yes, Please log a JIRA bug.
> 
> thanks,
> dims
> 
> On 6/21/06, Derek <[EMAIL PROTECTED]> wrote:
> > Thanks for the suggestion, Robert.
> >
> > I tried downloading the June 21 nightly build of Axis, and that 
> > version of WSDL2Java did produce the same skeleton files 
> for me that 
> > it did for you (the ones taking an XmlObject parameter, rather than 
> > OMObject as I was getting with the 1.0 release).
> >
> > I then tried to test your hypothesis about xs:any. I 
> modified my XML 
> > schema to comment out the two xs:any tags. I then ran WSDL2Java and 
> > regenerated the files. I got the same generated skeleton files as 
> > before.
> >
> > After pounding my head against the keyboard vigorously for 
> a while, I 
> > decided to start drastically simplifying the WSDL to try to 
> find out 
> > what was going wrong. Eventually, I found a change that made the 
> > problem go away. I still don't understand why, though.
> >
> > One of my xs:schema declarations in my WSDL has the same 
> namespace as 
> > the targetNamespace declared at the top of the WSDL file itself. It 
> > declares three elements: "full-event-update", "full-event-updates", 
> > and "return", which are referenced in the FEvent, FRecap, and 
> > FResponse messages. When I change the WSDL so this schema 
> is declared 
> > to instead have a different namespace from the WSDL 
> targetNamespace, 
> > then the generated signature I get for my method is:
> >
> >     /**
> >      *  FEUServiceSkeletonInterface java skeleton interface for the 
> > axisService
> >      */
> >     public interface FEUServiceSkeletonInterface {
> >
> >
> >         /**
> >          * Auto generated method signature
> >
> >           * @param param0
> >
> >          */
> >         public  
> com.crc_corp.www.wsdl._2004_10_01.feu2.ReturnDocument
> > acceptFEUEvent
> >
> > 
> (com.crc_corp.www.wsdl._2004_10_01.feu2.FullEventUpdateDocumen
> t param0 
> > )
> >
> >            ;
> >
> >     }
> >
> > So it seems to be the case that if a message references an 
> XML element 
> > declaration which is in the same namespace as the 
> targetNamespace of 
> > the WSDL file itself, then the XMLBeans WSDL2Java code generator 
> > decides for mysterious reasons of its own to pass those messages as 
> > XmlObject instances instead of the types that should be 
> generated for 
> > the messages. Why this should be so, I have no idea.
> >
> > There seems to be no documentation or warnigns of any such behavior 
> > that I can find in the Axis documentation, so I assume this 
> is a bug. 
> > Should I file this in Jira?
> >
> > Derek
> >
> > > -----Original Message-----
> > > From: robert lazarski [mailto:[EMAIL PROTECTED]
> > > Sent: Tuesday, June 20, 2006 5:38 PM
> > > To: [email protected]
> > > Subject: Re: [Axis2] Why do I get service skeletons taking 
> > > OMElement, and uncompilable code?
> > >
> > >
> > > Oops, a little late here and I misread the method 
> signature. Getting 
> > > XmlObject instead of OMElement probably isn't what you 
> were hoping 
> > > for, so perhaps as Anne implied xs:any is the culprit.
> > >
> > > Do keep in mind the bug fixes in the xmlbeans code since the 1.0 
> > > release, however.
> > >
> > > Good luck,
> > > Robert
> > > http://www.braziloutsource.com/
> > >
> > > On 6/20/06, robert lazarski <[EMAIL PROTECTED]> wrote:
> > > > To add to what Anne said, you're using a version of axis
> > > from May 05,
> > > > 2006 . While that may be the official 1.0 release, there
> > > were several
> > > > important bugs fixed for xmlbeans after that.
> > > >
> > > > The good news is that this is the code that I was able to
> > > produce from
> > > > the latest nightly:
> > > >
> > > >     /**
> > > >      * FServiceSkeleton.java
> > > >      *
> > > >      * This file was auto-generated from WSDL
> > > >      * by the Apache Axis2 version: SNAPSHOT Jun 20, 2006
> > > (11:24:21 GMT+00:00)
> > > >      */
> > > >     package org.simple.endpoint;
> > > >     /**
> > > >      *  FServiceSkeleton java skeleton for the axisService
> > > >      */
> > > >     public class FServiceSkeleton{
> > > >
> > > >
> > > >         /**
> > > >          * Auto generated method signature
> > > >
> > > >           * @param param0
> > > >
> > > >          */
> > > >         public  org.apache.xmlbeans.XmlObject acceptFEvent
> > > >                   (org.apache.xmlbeans.XmlObject param0 )
> > > >
> > > >            throws
> > > org.simple.endpoint.FServiceSkeleton.GeneralFaultException{
> > > >                 //Todo fill this with the necessary 
> business logic
> > > >                 throw new
> > > java.lang.UnsupportedOperationException();
> > > >         }
> > > >
> > > >
> > > >         /**
> > > >          * Auto generated method signature
> > > >
> > > >           * @param param4
> > > >
> > > >          */
> > > >         public  org.apache.xmlbeans.XmlObject acceptFRecap
> > > >                   (org.apache.xmlbeans.XmlObject param4 )
> > > >
> > > >            throws
> > > org.simple.endpoint.FServiceSkeleton.GeneralFaultException{
> > > >                 //Todo fill this with the necessary 
> business logic
> > > >                 throw new
> > > java.lang.UnsupportedOperationException();
> > > >         }
> > > >
> > > >          public static class GeneralFaultException extends 
> > > > java.rmi.RemoteException{
> > > >
> > > >             private 
> > > > com.example.www.wsdl._2006_06_13.carsfault.GeneralFaultDocument
> > > > faultMessage;
> > > >
> > > >             public void
> > > >
> > > 
> setFaultMessage(com.example.www.wsdl._2006_06_13.carsfault.GeneralFa
> > > ul
> > > > tDocument
> > > > msg){
> > > >                faultMessage = msg;
> > > >             }
> > > >
> > > >             public 
> > > > com.example.www.wsdl._2006_06_13.carsfault.GeneralFaultDocument
> > > > getFaultMessage(){
> > > >                return faultMessage;
> > > >             }
> > > >          }
> > > >
> > > >     }
> > > >
> > > > This is the ant task I used to do it:
> > > >
> > > > <target name="wsdl2java" depends="clean,prepare">
> > > >       <delete dir="output" />
> > > >       <java classname="org.apache.axis2.wsdl.WSDL2Java" 
> fork="true">
> > > >           <classpath refid="axis.classpath"/>
> > > >           <arg value="-d"/>
> > > >           <arg value="xmlbeans"/>
> > > >           <arg value="-uri"/>
> > > >           <!--
> > > >           <arg file="wsdl/simple.wsdl"/>
> > > >           -->
> > > >           <arg file="wsdl/ahelp.wsdl"/>
> > > >           <arg value="-ss"/>
> > > >           <arg value="-g"/>
> > > >           <arg value="-sd"/>
> > > >           <arg value="-o"/>
> > > >           <arg file="output"/>
> > > >           <arg value="-p"/>
> > > >           <arg value="org.simple.endpoint"/>
> > > >       </java>
> > > >
> > > >       <!-- Move the schema folder to classpath-->
> > > >       <move todir="${build.classes}">
> > > >           <fileset dir="output/resources">
> > > >               <include name="*schema*/**/*.class"/>
> > > >               <include name="*schema*/**/*.xsb"/>
> > > >           </fileset>
> > > >       </move>
> > > >
> > > >   </target>
> > > >
> > > > HTH,
> > > > Robert
> > > > http://www.braziloutsource.com/
> > > >
> > > > On 6/20/06, Anne Thomas Manes <[EMAIL PROTECTED]> wrote:
> > > > > 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 <[EMAIL PROTECTED]> 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";
> > > > > >
> > > > > xmlns:carshdr="http://www.example.com/wsdl/2004-10-01/cars";
> > > > > >    xmlns: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";
> > > > > >    xmlns:feu="http://www.dummy-temp-address";
> > > > > >    xmlns:soap=" http://schemas.xmlsoap.org/wsdl/soap/";
> > > > > >    xmlns:xs="http://www.w3.org/2001/XMLSchema";
> > > > > >    xmlns:soapenc="
> > > > > 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";>
> > > > > >          <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
> > > > > ">
> > > > > >          <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";
> > > > > >
> > > > > >            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:
> > > > > [EMAIL PROTECTED]
> > > > > > For additional commands, e-mail: 
> [EMAIL PROTECTED]
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > >
> > > 
> --------------------------------------------------------------------
> > > -
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> > >
> > >
> >
> >
> >
> > 
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> 
> 
> -- 
> Davanum Srinivas : http://wso2.com/blogs/
> 



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

Reply via email to