You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Amila Suriarachchi <am...@gmail.com> on 2007/04/18 07:06:56 UTC

Re: AXIS2 - Multiple client stubs overlapping

you also have the same problem as in
http://issues.apache.org/jira/browse/AXIS2-2075

the only option i can see is to merge the two wsdl files and generate the
code once.

Can you try out another databinding frame work?


On 4/17/07, Patrick Houbaux <pa...@eurostep.com> wrote:
>
>  Hello,
>
> I'm writing a client against several WSDL which are all sharing the same
> schemas for types.
> Let's say I have the following:
> - WSDL1 using schema typeA and schema typeB
> - WSDL2 using schema typeA and schema typeC
>
> When I generate the client stub with AXIS2 (using xmlbeans bindings)
> against WSDL1 and implement a small client using only this stub everything
> works great.
> When I start to generate the client stub with AXIS2 (using xmlbeans
> binding) against WSDL2 in the same output folders where client stub for
> WSDL1 was and run my small client without touching any lines  I get some
> ClassCastException on the java type generated with AXIS2 (sources/resources
> were regenerated and overwritten against WSDL2).
>
> I did repack the resources generated folder and added it to my project
> classpath everytime I generated a new stub.
>
> If anybody can advise on how to generate client stubs against several WSDL
> sharing the same schema types, it would be really useful.
>
> Thanks for any help.
>
> I'm using AXIS2-1.2-RC2, and here are my settings for generating the
> stubs:
> <target name="generate.client.sm">
>         <java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true"
> maxmemory="128m">
>             <classpath refid="axis2.classpath"/>
>             <jvmarg value="-Xss2048k"/>
>             <arg value="-d"/>
>                         <arg value="xmlbeans"/>
>                         <arg value="-uri"/>
>                         <arg value="${wsdl.sm.url}"/>
>                         <arg value="-g"/>
>                         <arg value="-ssi"/>
>                         <arg value="-s"/>
>                         <arg value="-u">
>                         <arg value="-o"/>
>                         <arg file="${src.client}"/>
>         </java>
>    </target>
>
> <target name="generate.client.cm">
>         <java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true"
> maxmemory="128m">
>             <classpath refid="axis2.classpath"/>
>             <jvmarg value="-Xss2048k"/>
>             <arg value="-d"/>
>                         <arg value="xmlbeans"/>
>                         <arg value="-uri"/>
>                         <arg value="${wsdl.cm.url}"/>
>                         <arg value="-g"/>
>                         <arg value="-ssi"/>
>                         <arg value="-s"/>
>                         <arg value="-u"/>
>                         <arg value="-o"/>
>                         <arg file="${src.client}"/>
>         </java>
>    </target>
>
> I was wondering if using the option -uw would help in anyway.
>
> Cheers,
> Patrick.
>
> This message contains information that may be privileged or confidential
> and is the property of Eurostep Group. It is intended only for the person to
> whom it is addressed. If you are not the intended recipient, you are not
> authorized to read, print, retain, copy, disseminate, distribute, or use
> this message or any part thereof. If you receive this message in error,
> please notify the sender immediately and delete all copies of this message.
> --------------------------------------------------------------------- To
> unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org For additional
> commands, e-mail: axis-user-help@ws.apache.org




-- 
Amila Suriarachchi,
WSO2 Inc.

Re: AXIS2 - Multiple client stubs overlapping

Posted by Amila Suriarachchi <am...@gmail.com>.
On 4/18/07, Patrick Houbaux <pa...@eurostep.com> wrote:
>
>  Amila,
>
> I could recreate the problem I had with ADB on AXIS2-1.2-RC2:
>
> When running a little I end up with the following exception:
> java.lang.RuntimeException: java.lang.StringIndexOutOfBoundsException:
> String index out of range: -1
>         at org.plcs.www.plmservices.QueryManagementStub.fromOM(
> QueryManagementStub.java:1692)
> ...
> Caused by: java.lang.StringIndexOutOfBoundsException: String index out of
> range: -1
>         at java.lang.String.substring(String.java:1768)
>         at org.plcs.www.plmservices.types.PLM_object$Factory.parse
> (PLM_object.java:378)
>
> which appears in the generated code here:
>
> public static PLM_object parse(javax.xml.stream.XMLStreamReader reader)
> throws java.lang.Exception{
>             PLM_object object = new PLM_object();
>
>             int event;
>             java.lang.String nillableValue = null;
>             java.lang.String prefix ="";
>             java.lang.String namespaceuri ="";
>             try {
>
>                 while (!reader.isStartElement() && !reader.isEndElement())
>                     reader.next();
>
>
>                 if (reader.getAttributeValue(
> "http://www.w3.org/2001/XMLSchema-instance"<http://www.w3.org/2001/XMLSchema-instance>
> ,"type")!=null){
>                   java.lang.String fullTypeName = reader.getAttributeValue
> ("http://www.w3.org/2001/XMLSchema-instance"<http://www.w3.org/2001/XMLSchema-instance>
> ,
>                         "type");
>                   if (fullTypeName!=null){
> *Ln378---> Exception HERE!                   java.lang.String nsPrefix =
> fullTypeName.substring(0,fullTypeName.indexOf(":"));*
>

this should be

                   java.lang.String nsPrefix = null;
                    if (fullTypeName.indexOf(":") > -1){
                        nsPrefix = fullTypeName.substring(0,
fullTypeName.indexOf(":"));
                    }
                    nsPrefix = nsPrefix==null?"":nsPrefix;

this is a fixed bug. unfortunately it has fixed just after RC2. Please have
a test with RC3 which we going to release soon.



                    nsPrefix = nsPrefix==null?"":nsPrefix;
>
>                     java.lang.String type = fullTypeName.substring(
> fullTypeName.indexOf(":")+1);
>
>                             if (!"PLM_object".equals(type)){
>                                 //find namespace for the prefix
>                                 java.lang.String nsUri =
> reader.getNamespaceContext().getNamespaceURI(nsPrefix);
>                                 return
> (PLM_object)org.plcs.www.system.ExtensionMapper.getTypeObject(
>                                      nsUri,type,reader);
>                               }
>
>
>                   }
>
> Cheers,
> Patrick.
>
>
> Patrick Houbaux wrote:
>
> I'm using AXIS2-1.2-RC2.
> I did merge the WSDL as you suggested and everything works now as
> expected. The performance problem was problably due to the fact that I was
> obliged to generate the resources in separate resources folder for each
> WSDL. The classloader might be for something in this as a bunch of things
> are common to those resources.
>
> If I remember correctly there was something wrong with inhenritance when
> using ADB (The data type is really a complex one). I can try to recreate the
> problem with ADB and open a JIRA issue when I got it.
>
> Cheers,
> Patrick.
>
> Amila Suriarachchi wrote:
>
>
>
> On 4/18/07, Patrick Houbaux <pa...@eurostep.com> wrote:
> >
> > Hello Amila,
> >
> > I did try with other databinding framework, I actually started with ADB
> > but the type schema is a bit too complex for it so I changed to xmlbeans
> > which generate the java type data model correctly.
> >
>
> What is the axis2 version you use? if you use Axis2 1.1.1 please try with
> RC2. and if possible please create a jira with your wsdl.
>
>  I haven't succeeded to make JiBX working (lack of experience from my side
> > I guess and the documentation is not really explicit on this).
> >
> > I actually did more investigations and noticed that if I separate all
> > the resources (the binary) generated from each WSDL (using the -R option)
> > while all the sources are in the same output folder it works.
> > The only problem now is a performance problem which I don't know if it's
> > an AXIS2 problem or a server side problem yet (the server is .NET based). I
> > suspect an AXIS2 problem as .NET client do not have any performance issues.
> >
>
> yes. generally xmlbeans and jaxb is slower than the adb and jibx.
>
>  When you suggest to merge the wsdl files in one, do you mean that AXIS2
> > (xmbeans generation) supports several <service> ...</service> in the wsdl?
> >
>
> yes.  but it will be there with the Axis2 1.2 which will release soon.
>
>  Cheers,
> > Patrick.
> >
> > Amila Suriarachchi wrote:
> >
> > you also have the same problem as in
> > http://issues.apache.org/jira/browse/AXIS2-2075
> >
> > the only option i can see is to merge the two wsdl files and generate
> > the code once.
> >
> > Can you try out another databinding frame work?
> >
> >
> > On 4/17/07, Patrick Houbaux <patrick.houbaux@eurostep.com > wrote:
> > >
> > > Hello,
> > >
> > > I'm writing a client against several WSDL which are all sharing the
> > > same schemas for types.
> > > Let's say I have the following:
> > > - WSDL1 using schema typeA and schema typeB
> > > - WSDL2 using schema typeA and schema typeC
> > >
> > > When I generate the client stub with AXIS2 (using xmlbeans bindings)
> > > against WSDL1 and implement a small client using only this stub everything
> > > works great.
> > > When I start to generate the client stub with AXIS2 (using xmlbeans
> > > binding) against WSDL2 in the same output folders where client stub for
> > > WSDL1 was and run my small client without touching any lines  I get some
> > > ClassCastException on the java type generated with AXIS2 (sources/resources
> > > were regenerated and overwritten against WSDL2).
> > >
> > > I did repack the resources generated folder and added it to my project
> > > classpath everytime I generated a new stub.
> > >
> > > If anybody can advise on how to generate client stubs against several
> > > WSDL sharing the same schema types, it would be really useful.
> > >
> > > Thanks for any help.
> > >
> > > I'm using AXIS2-1.2-RC2, and here are my settings for generating the
> > > stubs:
> > > <target name="generate.client.sm">
> > >         <java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true"
> > > maxmemory="128m">
> > >             <classpath refid="axis2.classpath"/>
> > >             <jvmarg value="-Xss2048k"/>
> > >             <arg value="-d"/>
> > >                         <arg value="xmlbeans"/>
> > >                         <arg value="-uri"/>
> > >                         <arg value="${wsdl.sm.url}"/>
> > >                         <arg value="-g"/>
> > >                         <arg value="-ssi"/>
> > >                         <arg value="-s"/>
> > >                         <arg value="-u">
> > >                         <arg value="-o"/>
> > >                         <arg file="${src.client}"/>
> > >         </java>
> > >    </target>
> > >
> > > <target name="generate.client.cm">
> > >         <java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true"
> > > maxmemory="128m">
> > >             <classpath refid="axis2.classpath"/>
> > >             <jvmarg value="-Xss2048k"/>
> > >             <arg value="-d"/>
> > >                         <arg value="xmlbeans"/>
> > >                         <arg value="-uri"/>
> > >                         <arg value="${wsdl.cm.url}"/>
> > >                         <arg value="-g"/>
> > >                         <arg value="-ssi"/>
> > >                         <arg value="-s"/>
> > >                         <arg value="-u"/>
> > >                         <arg value="-o"/>
> > >                         <arg file="${src.client}"/>
> > >         </java>
> > >    </target>
> > >
> > > I was wondering if using the option -uw would help in anyway.
> > >
> > > Cheers,
> > > Patrick.
> > >
> > > This message contains information that may be privileged or
> > > confidential and is the property of Eurostep Group. It is intended only for
> > > the person to whom it is addressed. If you are not the intended recipient,
> > > you are not authorized to read, print, retain, copy, disseminate,
> > > distribute, or use this message or any part thereof. If you receive this
> > > message in error, please notify the sender immediately and delete all copies
> > > of this message.
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org For
> > > additional commands, e-mail: axis-user-help@ws.apache.org
> >
> >
> >
> >
> > --
> > Amila Suriarachchi,
> > WSO2 Inc.
> >
> >   This message contains information that may be privileged or
> > confidential and is the property of Eurostep Group. It is intended only for
> > the person to whom it is addressed. If you are not the intended recipient,
> > you are not authorized to read, print, retain, copy, disseminate,
> > distribute, or use this message or any part thereof. If you receive this
> > message in error, please notify the sender immediately and delete all copies
> > of this message.
> > --------------------------------------------------------------------- To
> > unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org For additional
> > commands, e-mail: axis-user-help@ws.apache.org
> >
>
>
>
> --
> Amila Suriarachchi,
> WSO2 Inc.
>
> This message contains information that may be privileged or confidential
> and is the property of Eurostep Group. It is intended only for the person to
> whom it is addressed. If you are not the intended recipient, you are not
> authorized to read, print, retain, copy, disseminate, distribute, or use
> this message or any part thereof. If you receive this message in error,
> please notify the sender immediately and delete all copies of this message.
> --------------------------------------------------------------------- To
> unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org For additional
> commands, e-mail: axis-user-help@ws.apache.org
>
>  --------------------------------------------------------------------- To
> unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org For additional
> commands, e-mail: axis-user-help@ws.apache.org
>



-- 
Amila Suriarachchi,
WSO2 Inc.

Re: AXIS2 - Multiple client stubs overlapping

Posted by Amila Suriarachchi <am...@gmail.com>.
On 4/18/07, Patrick Houbaux <pa...@eurostep.com> wrote:
>
>  Hello Amila,
>
> I did try with other databinding framework, I actually started with ADB
> but the type schema is a bit too complex for it so I changed to xmlbeans
> which generate the java type data model correctly.
>

What is the axis2 version you use? if you use Axis2 1.1.1 please try with
RC2. and if possible please create a jira with your wsdl.

I haven't succeeded to make JiBX working (lack of experience from my side I
> guess and the documentation is not really explicit on this).
>
> I actually did more investigations and noticed that if I separate all the
> resources (the binary) generated from each WSDL (using the -R option) while
> all the sources are in the same output folder it works.
> The only problem now is a performance problem which I don't know if it's
> an AXIS2 problem or a server side problem yet (the server is .NET based). I
> suspect an AXIS2 problem as .NET client do not have any performance issues.
>

yes. generally xmlbeans and jaxb is slower than the adb and jibx.

When you suggest to merge the wsdl files in one, do you mean that AXIS2
> (xmbeans generation) supports several <service> ...</service> in the wsdl?
>

yes.  but it will be there with the Axis2 1.2 which will release soon.

Cheers,
> Patrick.
>
> Amila Suriarachchi wrote:
>
> you also have the same problem as in
> http://issues.apache.org/jira/browse/AXIS2-2075
>
> the only option i can see is to merge the two wsdl files and generate the
> code once.
>
> Can you try out another databinding frame work?
>
>
> On 4/17/07, Patrick Houbaux <patrick.houbaux@eurostep.com > wrote:
> >
> > Hello,
> >
> > I'm writing a client against several WSDL which are all sharing the same
> > schemas for types.
> > Let's say I have the following:
> > - WSDL1 using schema typeA and schema typeB
> > - WSDL2 using schema typeA and schema typeC
> >
> > When I generate the client stub with AXIS2 (using xmlbeans bindings)
> > against WSDL1 and implement a small client using only this stub everything
> > works great.
> > When I start to generate the client stub with AXIS2 (using xmlbeans
> > binding) against WSDL2 in the same output folders where client stub for
> > WSDL1 was and run my small client without touching any lines  I get some
> > ClassCastException on the java type generated with AXIS2 (sources/resources
> > were regenerated and overwritten against WSDL2).
> >
> > I did repack the resources generated folder and added it to my project
> > classpath everytime I generated a new stub.
> >
> > If anybody can advise on how to generate client stubs against several
> > WSDL sharing the same schema types, it would be really useful.
> >
> > Thanks for any help.
> >
> > I'm using AXIS2-1.2-RC2, and here are my settings for generating the
> > stubs:
> > <target name="generate.client.sm">
> >         <java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true"
> > maxmemory="128m">
> >             <classpath refid="axis2.classpath"/>
> >             <jvmarg value="-Xss2048k"/>
> >             <arg value="-d"/>
> >                         <arg value="xmlbeans"/>
> >                         <arg value="-uri"/>
> >                         <arg value="${wsdl.sm.url}"/>
> >                         <arg value="-g"/>
> >                         <arg value="-ssi"/>
> >                         <arg value="-s"/>
> >                         <arg value="-u">
> >                         <arg value="-o"/>
> >                         <arg file="${src.client}"/>
> >         </java>
> >    </target>
> >
> > <target name="generate.client.cm">
> >         <java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true"
> > maxmemory="128m">
> >             <classpath refid="axis2.classpath"/>
> >             <jvmarg value="-Xss2048k"/>
> >             <arg value="-d"/>
> >                         <arg value="xmlbeans"/>
> >                         <arg value="-uri"/>
> >                         <arg value="${wsdl.cm.url}"/>
> >                         <arg value="-g"/>
> >                         <arg value="-ssi"/>
> >                         <arg value="-s"/>
> >                         <arg value="-u"/>
> >                         <arg value="-o"/>
> >                         <arg file="${src.client}"/>
> >         </java>
> >    </target>
> >
> > I was wondering if using the option -uw would help in anyway.
> >
> > Cheers,
> > Patrick.
> >
> > This message contains information that may be privileged or confidential
> > and is the property of Eurostep Group. It is intended only for the person to
> > whom it is addressed. If you are not the intended recipient, you are not
> > authorized to read, print, retain, copy, disseminate, distribute, or use
> > this message or any part thereof. If you receive this message in error,
> > please notify the sender immediately and delete all copies of this message.
> > --------------------------------------------------------------------- To
> > unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org For additional
> > commands, e-mail: axis-user-help@ws.apache.org
>
>
>
>
> --
> Amila Suriarachchi,
> WSO2 Inc.
>
>
> --
>  ------------------------------------------------------------------
> | *Patrick Houbaux*
> | Senior Consultant
> | Eurostep AB            Email: patrick.houbaux@eurostep.com
> | Drottninggatan 68      Mobile: +33 611 192 943
> | SE-111 21 Stockholm    Fax: +46 (0) 8-200 399
> | Sweden                 URL: http://www.eurostep.com
> |                        Skype name: phoubaux
> | Home address:
> | BAT A11
> | 12 Rue de Paris
> | F-78560 Le Port-Marly
> | France
> -------------------------------------------------------------------
>
> This message contains information that may be privileged or confidential
> and is the property of Eurostep Group. It is intended only for the person to
> whom it is addressed. If you are not the intended recipient, you are not
> authorized to read, print, retain, copy, disseminate, distribute, or use
> this message or any part thereof. If you receive this message in error,
> please notify the sender immediately and delete all copies of this message.
> --------------------------------------------------------------------- To
> unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org For additional
> commands, e-mail: axis-user-help@ws.apache.org
>



-- 
Amila Suriarachchi,
WSO2 Inc.