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 "Jonge, Merijn de" <me...@philips.com> on 2008/09/09 20:56:14 UTC

Composing axis2 webservices

Hi All,

I'm using axis2-1.4.1 and Eclipse/WTP and want to create the following two services:
   * A service "f" that produces a result of type "A"
   * A service "g" that consumes an input of type "A"
Next, I would like to make the service composition g(f()). In other words, I would like to pass the result of service "f" to the service "g".

My problem is that the generated client stubs contain incompatible class definitions for type "A", making the service composition impossible.
The problem is that both definitions are defined as static inline classes of the corresponding services.
Something like:

      public class fStub {
         ...
         public static class A {}
         ...
      }

      public class gStub {
         ...
         public static class A {}
         ...
      }

Since both definitions of A are in different name spaces (fstub.A and gStub.A, respectively), the classes are incompatible.
On the server side this is not a problem, because there the generated class definition for "A" uses the namespace as defined in the wsdl.

Could someone indicate how to solve this problem? Am I doing things wrong?

Any help would be greatly appreciated.

Kind regards,
Merijn de Jonge


Merijn de Jonge
Healthcare Systems Architecture Department
Philips Research Laboratories
http://www.extra.research.philips.com/hera/people/mdejonge/


________________________________
The information contained in this message may be confidential and legally protected under applicable law. The message is intended solely for the addressee(s). If you are not the intended recipient, you are hereby notified that any use, forwarding, dissemination, or reproduction of this message is strictly prohibited and may be unlawful. If you are not the intended recipient, please contact the sender by return e-mail and destroy all copies of the original message.

RE: Composing axis2 webservices

Posted by "Jonge, Merijn de" <me...@philips.com>.
Dear Anne,

Thanks for your reply.

> You should use the "WSDL first" method to build these services. Define
> a common schema that defines the "A" type, and then import that schema
> into your WSDLs.
That is exactly what I did! However, it turns out that the "-u" switch of wsdl2java must be used in order to "unpack the databinding classes". Only this way the generated classes will be generated in separate packages, rather than inlined in the service stub class.
However, this switch is not turned on by default when generating client code. In the WTP framework of eclipse, I don't know how to turn this switch on (although it seems to be on for generating server code). Consequently, when generating a java bean skeleton (i.e., the server code) from a wsdl file the generated code is perfect, but when generating the corresponding client code I get these static inline classes.

The only solution I found thus far is by generating the client code by hand (i.e., by running "wsdl2java -u" by hand).
This is of course not really the way software development using WTP should look like.

Is there something I do wrong, or did I miss a configuration setting, or is it a problem of WTP that needs to be fixed?

Kind regards,
Merijn


-----Original Message-----
From: Anne Thomas Manes [mailto:atmanes@gmail.com]
Sent: Friday 12 September 2008 14:17
To: axis-user@ws.apache.org
Subject: Re: Composing axis2 webservices

You should use the "WSDL first" method to build these services. Define
a common schema that defines the "A" type, and then import that schema
into your WSDLs.

Anne

On Tue, Sep 9, 2008 at 2:56 PM, Jonge, Merijn de
<me...@philips.com> wrote:
> Hi All,
>
>
>
> I'm using axis2-1.4.1 and Eclipse/WTP and want to create the following two
> services:
>
>    * A service "f" that produces a result of type "A"
>
>    * A service "g" that consumes an input of type "A"
>
> Next, I would like to make the service composition g(f()). In other words, I
> would like to pass the result of service "f" to the service "g".
>
>
>
> My problem is that the generated client stubs contain incompatible class
> definitions for type "A", making the service composition impossible.
>
> The problem is that both definitions are defined as static inline classes of
> the corresponding services.
>
> Something like:
>
>
>
>       public class fStub {
>
>          ...
>
>          public static class A {}
>
>          ...
>
>       }
>
>
>
>       public class gStub {
>
>          ...
>
>          public static class A {}
>
>          ...
>
>       }
>
>
>
> Since both definitions of A are in different name spaces (fstub.A and
> gStub.A, respectively), the classes are incompatible.
>
> On the server side this is not a problem, because there the generated class
> definition for "A" uses the namespace as defined in the wsdl.
>
>
>
> Could someone indicate how to solve this problem? Am I doing things wrong?
>
>
>
> Any help would be greatly appreciated.
>
>
>
> Kind regards,
>
> Merijn de Jonge
>
>
>
>
>
> Merijn de Jonge
>
> Healthcare Systems Architecture Department
>
> Philips Research Laboratories
>
> http://www.extra.research.philips.com/hera/people/mdejonge/
>
>
>
> ________________________________
> The information contained in this message may be confidential and legally
> protected under applicable law. The message is intended solely for the
> addressee(s). If you are not the intended recipient, you are hereby notified
> that any use, forwarding, dissemination, or reproduction of this message is
> strictly prohibited and may be unlawful. If you are not the intended
> recipient, please contact the sender by return e-mail and destroy all copies
> of the original message.
>

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


The information contained in this message may be confidential and legally protected under applicable law. The message is intended solely for the addressee(s). If you are not the intended recipient, you are hereby notified that any use, forwarding, dissemination, or reproduction of this message is strictly prohibited and may be unlawful. If you are not the intended recipient, please contact the sender by return e-mail and destroy all copies of the original message.

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


Re: Composing axis2 webservices

Posted by Anne Thomas Manes <at...@gmail.com>.
You should use the "WSDL first" method to build these services. Define
a common schema that defines the "A" type, and then import that schema
into your WSDLs.

Anne

On Tue, Sep 9, 2008 at 2:56 PM, Jonge, Merijn de
<me...@philips.com> wrote:
> Hi All,
>
>
>
> I'm using axis2-1.4.1 and Eclipse/WTP and want to create the following two
> services:
>
>    * A service "f" that produces a result of type "A"
>
>    * A service "g" that consumes an input of type "A"
>
> Next, I would like to make the service composition g(f()). In other words, I
> would like to pass the result of service "f" to the service "g".
>
>
>
> My problem is that the generated client stubs contain incompatible class
> definitions for type "A", making the service composition impossible.
>
> The problem is that both definitions are defined as static inline classes of
> the corresponding services.
>
> Something like:
>
>
>
>       public class fStub {
>
>          …
>
>          public static class A {}
>
>          …
>
>       }
>
>
>
>       public class gStub {
>
>          …
>
>          public static class A {}
>
>          …
>
>       }
>
>
>
> Since both definitions of A are in different name spaces (fstub.A and
> gStub.A, respectively), the classes are incompatible.
>
> On the server side this is not a problem, because there the generated class
> definition for "A" uses the namespace as defined in the wsdl.
>
>
>
> Could someone indicate how to solve this problem? Am I doing things wrong?
>
>
>
> Any help would be greatly appreciated.
>
>
>
> Kind regards,
>
> Merijn de Jonge
>
>
>
>
>
> Merijn de Jonge
>
> Healthcare Systems Architecture Department
>
> Philips Research Laboratories
>
> http://www.extra.research.philips.com/hera/people/mdejonge/
>
>
>
> ________________________________
> The information contained in this message may be confidential and legally
> protected under applicable law. The message is intended solely for the
> addressee(s). If you are not the intended recipient, you are hereby notified
> that any use, forwarding, dissemination, or reproduction of this message is
> strictly prohibited and may be unlawful. If you are not the intended
> recipient, please contact the sender by return e-mail and destroy all copies
> of the original message.
>

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