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 <[EMAIL PROTECTED]> 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 < [EMAIL PROTECTED]> 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
> ")
> 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.javaguess
>  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
> >
> >
> > [image: Inactive hide details for "keith chapman"
> > <[EMAIL PROTECTED]>] "keith chapman" < [EMAIL PROTECTED]>
> >
> >
> >
> >     *"keith chapman" <[EMAIL PROTECTED]>*
> >
> >             11/20/2007 01:49 AM
> >             Please respond to
> >             [email protected]
> >
> >
> > To
> >
> > [email protected]
> > 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 <[EMAIL PROTECTED]<[EMAIL 
> > PROTECTED]>>
> > 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: [EMAIL PROTECTED]<[EMAIL PROTECTED]>
> >    For additional commands, e-mail: [EMAIL PROTECTED] *<[EMAIL PROTECTED]>
> >
> >
> >
> >
> > --
> > Keith Chapman
> > WSO2 Inc.
> > Oxygen for Web Services Developers.*
> > **http://wso2.org/* <http://wso2.org/>
> >
>
>
>
> --
> Thanks
> Lahiru Sandakith
>
> 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

Reply via email to