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.
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. Thanks, -Nick "Lahiru Sandakith" <[EMAIL PROTECTED] To com> axis-dev@ws.apache.org cc 11/28/2007 09:35 PM Subject Re: [Axis2] JAX-WS: problems with annotated methods Please respond to [EMAIL PROTECTED] e.org 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.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 Inactive hide details for "keith chapman" <[EMAIL PROTECTED]> "keith chapman" < [EMAIL PROTECTED]> "keith chapman" < [EMAIL PROTECTED] mail.com> To [EMAIL PROTECTED] 11/20/2007 org 01:49 AM cc Subject Please respond to Re: JAX-WS: axis-dev@ws.apache.org 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]> 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") 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 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] For additional commands, e-mail: [EMAIL PROTECTED] -- Keith Chapman WSO2 Inc. Oxygen for Web Services Developers. 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
<<inline: graycol.gif>>
<<inline: pic22461.gif>>
<<inline: ecblank.gif>>