You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Lahiru Sandakith <sa...@gmail.com> on 2007/12/01 01:54:38 UTC

Re: [Axis2] JAX-WS: problems with annotated methods

Hi Nick,

Thanks for the reply.

On Nov 30, 2007 8:31 PM, Nicholas L Gallardo <nl...@us.ibm.com> wrote:

> Lahriu,
>
> Thanks for the insights. I agree that there's a gap that needs to be
> closed here. I'll write up the thoughts I've had for a little while on this
> and float them to the list.
>
great,

>
>
> I don't know if I'll have time to affect all of this, but I will at least
> try to lay it out and others can contribute if they'd like to pick pieces of
> it up.
>
sure, lets try to discuss and come up with a list that we all can fill,

Thanks
Sandakith.

>
>
> Thanks,
>
> -Nick
>
>
>
>
> [image: Inactive hide details for "Lahiru Sandakith"
> <sa...@gmail.com>]"Lahiru Sandakith" <sa...@gmail.com>
>
>
>
>     *"Lahiru Sandakith" <sa...@gmail.com>*
>
>             11/28/2007 09:35 PM
>             Please respond to
>             axis-dev@ws.apache.org
>
>
> To
>
> axis-dev@ws.apache.org
> cc
>
>
> Subject
>
> Re: [Axis2] JAX-WS: problems with annotated methods
>
> Hi Nick,
>
> Forwarding this with Axis2 lable.
>
> Looking at the issue, we found that in the scenario that we talk about
> POJODeployer being able to deploy a JSR-181 annotated pojo through JAXWS in
> Axis2. I found some issues and with the help of Deepal we fixed them
> yesterday.
>
> 1) Service not exposing with the annotated name correctly , Fixed
> 2) Operation if not exposing with the annotated name correctly , Fixed
> 3) ?wsdl not reflet the service correctly , Fixed
>
> then we tried to invoke the service with a client and in rest way.
> But then we fond that the service that got deployed did not attached with
> the JAXWS Message Receiver and it being exposed with the default RPC Message
> Receiver, with some debuggig we found that in the DiscrptionFactory the
> axisService JAXWS module
>
> public static AxisService createAxisService(Class serviceImplClass) {
> ServiceDescription serviceDescription =
> createServiceDescription(serviceImplClass);
> EndpointDescription[] edArray = serviceDescription.getEndpointDescriptions();
> AxisService axisService = edArray[0].getAxisService();
> return axisService;
> }
>
> did not attached the correct MR to the axisService.
>
> I guess this is an issue, and would like to have your thoughts on this and
> about the overall deployment integration of JAXWS to Axis2 as mentioned in
> the earlier mail.
>
> Thanks
> Sandakith
>
>
>
>
> On Nov 28, 2007 8:16 AM, Lahiru Sandakith <*s...@gmail.com>>
> wrote:
>
>    Hi Nick,
>
>    I was also looking at the possibilities of JSR-181 annotated class
>    exposing as a Axis2/JAXWS service.
>
>
>    On Nov 28, 2007 2:39 AM, Nicholas L Gallardo < *nlgallar@us.ibm.com*<nl...@us.ibm.com>>
>    wrote:
>    Keith,
>
>    Are you talking about a JAX-WS specific deployer, or the POJO
>    deployer? I'm not aware of a JAX-WS specific one, but certainly agree that
>    one is needed.
>
>    This is about POJO Deployer, Simply we get this class
>
>    package jaxws.example;
>
>    import javax.jws.WebMethod;
>    import javax.jws.WebService;
>
>
>    @WebService(name= "WSASJAX_Service2", targetNamespace = "*http://www.webtest.org/jaxws
>    * <http://www.webtest.org/jaxws>")
>    public class JAXWSService1 {
>
>    @WebMethod(operationName = "echoMethodString")
>
>    public String echoMethod(String s){
>    return s;
>    }
>    }
>
>    * make it a jar
>    * edit the axis2.xml entry specific on POJODeployer to pick up .jar
>    files
>    * put the jar into the repository/pojo directory
>    * start axis2.
>
>    When we do that we see the service with 2 methods echoMethodString
>    and echoMethod. This is how to reproduce the issue.
>
>    Also I saw that in the POJODeployer class code, If the JAXWS jars
>    are present in the classpath then it will try to deploy it as a JAXWS
>    endpoint, else it will deploy it as a Axis2 endpoint.*
>    **
>    https://svn.apache.org/repos/asf/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/POJODeployer.java
>    *<https://svn.apache.org/repos/asf/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/POJODeployer.java>guess this maybe the cause to the problem.
>
>
>    My guess as to what's happening...
>
>    Right now, we have POJO deployment, but we don't have good JAX-WS
>    integration into the deployment infrastructure.
>
>    So actually what will be the procedure in the JAXWS module that we
>    have in the Axis2, to get a service in to the axis2 deployment? What will be
>    the packaging, is it the same as the AAR model, and do we need the wsdl too.
>
>    You're bean is being picked up as a POJO and deployed as such which
>    is where the "echoMethod" entry is coming from.
>
>    True.
>
>
>    Then, when your request hits the JAXWSMessageReceiver the first
>    time, the JAX-WS layer goes through its own metadata initialization. This
>    includes building up not only a EndpointDescription/OperationDescription,
>    but a set of AxisService/AxisOperation objects to match. These are being
>    mapped to "echomethodString" which is where the other entry comes from.
>
>    When you say "It takes echoMethod and echomethodString as two
>    different methods.", what exactly do you mean there? They are reflected as
>    two operations in the WSDL?
>
>    No actually the ?wsdl generation fails in this above described
>    scenario.
>
>
>    To the point of the WSDL 1.1 generation, that leads me to believe
>    this isn't being deployed as a JAX-WS endpoint at all. We've known for a
>    while that since we don't have formal tooling for JAX-WS that there is no
>    generation. I'm guessing that you're endpoint is being deployed as a normal
>    POJO endpoint using the base Axis2 runtime instead of JAX-WS.
>
>    Yes, Agreed these are issues in the POJODeployer and seems is we
>    make the web method like this
>
>    @WebMethod(operationName = "echoString")
>
>    public String echoMethod(String s){
>    return s;
>    }
>
>    The scenario worked for me but making the annotated oprtation name
>    same as the method name, breaks the whole concept of having the JSR-181
>    annotations at the first place.
>    Will look in to more on this, I am looking forward on the way that
>    how I can make use of the JAXWS module in regarding JSR-181 annotated class.
>
>
>    Thanks
>    Sandakith
>
>
>    Regards,
>
>    -Nick
>
>
>    "keith chapman" <* keithgchapman@gmail.com*<ke...@gmail.com>
>    >
>
>
>
>
>       *"keith chapman" <**...@gmail.com>
>                         *>*
>
>                         11/20/2007 01:49 AM
>
>
>  Please respond to*
> **axis-dev@ws.apache.org* <ax...@ws.apache.org>
>   To
> *
> **axis-dev@ws.apache.org* <ax...@ws.apache.org> cc
> Subject
>
> Re: JAX-WS: problems with annotated methods
>
>
>    Hi,
>
>    This is due to a bug in the jaxws deployer and MessageReceiver. This
>    can be solved as follows,
>
>    During deployment name the axisOperation according to the annotation
>    ("echomethodString") in this case and put a parameter into the axisOperation
>    stating the actual method name, therefore in the messageReceiver we know
>    which method to call. Can somebody familiar with JaxWS code do this fix
>    please.
>
>    Thanks,
>    Keith.
>    On Nov 20, 2007 11:42 AM, Charitha Kankanamge <*c...@wso2.com>>
>    wrote:
>       Hi devs,
>
>          I was trying to deploy jax-ws based service using axis2.
>          Here is my
>          service impl class. please note that, I did not include
>          any wsdl inside
>          the service jar.
>
>          @WebService(name= "WSASJAX_Service2", targetNamespace =
>          "*http://www.webtest.org/jaxws*<http://www.webtest.org/jaxws>
>          ")
>          public class jaxwsservice2 {
>          @WebMethod(operationName = "echomethodString")
>          public String echoMethod(String s){
>          return s;
>          }
>
>          }
>
>          Axis2 does not handle this service correctly. It takes
>          echoMethod and
>          echomethodString as two different methods. Also Axis2
>          was unable to
>          generate wsdl1.1 using the above service impl class.
>          WSDL generation was
>          successful when I removed the annotation members of
>          @WEbMethod annotation.
>
>          It seems that the Axis2 JAX-WS implementation is unable
>          to handle some
>          of the annotations which have annon members. I reported
>          a JIRA for this
>          issue at *
>          https://issues.apache.org/jira/browse/AXIS2-3352*<https://issues.apache.org/jira/browse/AXIS2-3352>
>
>          since this is a fundamental scenario, it will be great
>          if this is
>          resolved ASAP.
>
>          Please let me know if there are any issues in the above
>          steps which were
>          used to generate jax-ws service.
>
>          regards
>          Charitha
>
>
>
>
>          ---------------------------------------------------------------------
>
>          To unsubscribe, e-mail: *
>          axis-dev-unsubscribe@ws.apache.org*<ax...@ws.apache.org>
>          For additional commands, e-mail: *axis-dev-help@ws.apache.org
>          * <ax...@ws.apache.org>
>
>
>
>    --
>    Keith Chapman
>    WSO2 Inc.
>    Oxygen for Web Services Developers.*
>    **http://wso2.org/* <http://wso2.org/>
>
>
>
>
>
>    --
>    Thanks
>    Lahiru Sandakith
>    *
>    **http://sandakith.wordpress.com/* <http://sandakith.wordpress.com/>
>    GPG Key Fingerprint : 8CD8 68E0 4CBC 75CB 25BC 1AB1 FE5E 7464 1F01
>    9A0F
>
>
>
>
> --
> Thanks
> Lahiru Sandakith
> *
> **http://sandakith.wordpress.com/* <http://sandakith.wordpress.com/>
> GPG Key Fingerprint : 8CD8 68E0 4CBC 75CB 25BC 1AB1 FE5E 7464 1F01 9A0F
>



-- 
Thanks
Lahiru Sandakith

http://sandakith.wordpress.com/
GPG Key Fingerprint : 8CD8 68E0 4CBC 75CB 25BC  1AB1 FE5E 7464 1F01 9A0F