[ 
https://issues.apache.org/jira/browse/AXIS2-4127?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12696099#action_12696099
 ] 

Balint Domokos commented on AXIS2-4127:
---------------------------------------

I had exception 1. as well, the problem was that jaxws-tools.jar and tools.jar 
from JDK were missing from my tomcat classpath. The fix was to copy them to 
$TOMCAT_HOME/shared/lib in my case.
I have used POJODeployer and I have not used service.xml.

Regards,
Balint

> JSR 181 annotations web services giving errors
> ----------------------------------------------
>
>                 Key: AXIS2-4127
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4127
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>    Affects Versions: 1.4.1
>         Environment: Running within IBM RAD 7/ WebSphere 6.1
>            Reporter: Girish Khemani
>             Fix For: 1.4.1
>
>
> JSR 181 annotated POJO web services are always getting into errors. Lack of  
> / conflicting documentation is also an issue with this feature.
> I understand services.xml is not to be created for using this feature. Please 
> confirm.
> Please confirm whether PojoDeployer or JAXWSDeployer is to be used for this 
> feature in axis.xml.
> When I use PojoDeployer with following  -
> 1.
> Until endpointInterface attribute is added to @WebService the webservice WSDL 
> is not getting created and following error comes on the console-
> [11/11/08 06:39:28:888 GMT] 00000043 SystemOut     O [ERROR] Error occurred 
> generating WSDL file for Web service implementation class {JSR181Pojo}: 
> {java.lang.ClassNotFoundException: com.sun.tools.ws.spi.WSToolsObjectFactory}
> java.lang.ClassNotFoundException: com.sun.tools.ws.spi.WSToolsObjectFactory
>       at java.lang.Class.forName(Class.java:131)
>       at 
> org.apache.axis2.jaxws.description.builder.JAXWSRIWSDLGenerator.generateWsdl(JAXWSRIWSDLGenerator.java:166)
>       at 
> org.apache.axis2.jaxws.description.builder.JAXWSRIWSDLGenerator.initialize(JAXWSRIWSDLGenerator.java:371)
>       at 
> org.apache.axis2.jaxws.description.builder.JAXWSRIWSDLGenerator.getWSDL(JAXWSRIWSDLGenerator.java:364)
>       at 
> org.apache.axis2.description.AxisService.printWSDL(AxisService.java:1322)
>       at 
> org.apache.axis2.transport.http.ListingAgent.processListService(ListingAgent.java:287)
>       at 
> org.apache.axis2.transport.http.AxisServlet.doGet(AxisServlet.java:242)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
>       at 
> com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:966)
>       at 
> com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
>       at 
> com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:463)
>       at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3129)
>       at 
> com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:238)
>       at 
> com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:811)
>       at 
> com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1433)
>       at 
> com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:93)
>       at 
> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:465)
>       at 
> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:394)
>       at 
> com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:102)
>       at 
> com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:152)
>       at 
> com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:213)
>       at 
> com.ibm.io.async.AbstractAsyncFuture.fireCompletionActions(AbstractAsyncFuture.java:195)
>       at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
>       at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:194)
>       at 
> com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:782)
>       at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:863)
>       at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1510)
> And when I try to access WSDL this is what I get -
> <error>
>   <description>Unable to generate WSDL 1.1 for this service</description> 
>   <reason>If you wish Axis2 to automatically generate the WSDL 1.1, then 
> please +set useOriginalwsdl as false in your services.xml</reason> 
>   javax.xml.ws.WebServiceException: Error occurred generating WSDL file for 
> Web service implementation class {JSR181Pojo}: 
> {java.lang.ClassNotFoundException: com.sun.tools.ws.spi.WSToolsObjectFactory} 
> at 
> org.apache.axis2.jaxws.description.builder.JAXWSRIWSDLGenerator.generateWsdl(JAXWSRIWSDLGenerator.java:187)
>  at 
> org.apache.axis2.jaxws.description.builder.JAXWSRIWSDLGenerator.initialize(JAXWSRIWSDLGenerator.java:371)
>  at 
> org.apache.axis2.jaxws.description.builder.JAXWSRIWSDLGenerator.getWSDL(JAXWSRIWSDLGenerator.java:364)
>  at org.apache.axis2.description.AxisService.printWSDL(AxisService.java:1322) 
> at 
> org.apache.axis2.transport.http.ListingAgent.processListService(ListingAgent.java:287)
>  at org.apache.axis2.transport.http.AxisServlet.doGet(AxisServlet.java:242) 
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:743) at 
> javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at 
> com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:966)
>  at 
> com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
>  at 
> com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:463)
>  at 
> com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:92)
>  at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:744) 
> at 
> com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1433) 
> at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:93) 
> at 
> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:465)
>  at 
> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:394)
>  at 
> com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:102)
>  at 
> com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:152)
>  at 
> com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:213)
>  at 
> com.ibm.io.async.AbstractAsyncFuture.fireCompletionActions(AbstractAsyncFuture.java:195)
>  at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136) at 
> com.ibm.io.async.ResultHandler.complete(ResultHandler.java:194) at 
> com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:741) 
> at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:863) at 
> com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1510) Caused by: 
> java.lang.ClassNotFoundException: com.sun.tools.ws.spi.WSToolsObjectFactory 
> at java.lang.Class.forName(Class.java:131) at 
> org.apache.axis2.jaxws.description.builder.JAXWSRIWSDLGenerator.generateWsdl(JAXWSRIWSDLGenerator.java:166)
>  ... 25 more 
>   </error>
> 2. 
> @WebService(
>           endpointInterface = "testjsr.JSRPojoSEI",
>           targetNamespace = "http://jsrpojo.im.fil.com";,
>           serviceName = "JSRPojo"
>           )
> public class JSR181Pojo implements JSRPojoSEI {       
>       public String add(String x, String y){
>               System.out.println("Got call -  JSR181Pojo service");
>               return x+y;
>       }
> }
> public interface JSRPojoSEI {
>     public String add(String x,String y);
> }
> WSDL gets generated and web service is accessible. But server is started 
> following error is reported on console -
> [11/11/08 07:43:51:335 GMT] 00000026 SystemOut     O [INFO] Undeploying Web 
> service: JSRPojo.jar
> [11/11/08 07:43:51:566 GMT] 00000026 SystemOut     O [INFO] JAXWS jars are 
> missing in the classpath with null, switching to annongen
> java.lang.reflect.InvocationTargetException
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:615)
>       at 
> org.apache.axis2.deployment.POJODeployer.createAxisService(POJODeployer.java:260)
>       at 
> org.apache.axis2.deployment.POJODeployer.deploy(POJODeployer.java:198)
>       at 
> org.apache.axis2.deployment.repository.util.DeploymentFileData.deploy(DeploymentFileData.java:136)
>       at 
> org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:597)
>       at 
> org.apache.axis2.deployment.repository.util.WSInfoList.update(WSInfoList.java:144)
>       at 
> org.apache.axis2.deployment.RepositoryListener.update(RepositoryListener.java:330)
>       at 
> org.apache.axis2.deployment.RepositoryListener.checkServices(RepositoryListener.java:227)
>       at 
> org.apache.axis2.deployment.RepositoryListener.startListener(RepositoryListener.java:324)
>       at 
> org.apache.axis2.deployment.scheduler.SchedulerTask.checkRepository(SchedulerTask.java:64)
>       at 
> org.apache.axis2.deployment.scheduler.SchedulerTask.run(SchedulerTask.java:71)
>       at 
> org.apache.axis2.deployment.scheduler.Scheduler$SchedulerTimerTask.run(Scheduler.java:83)
>       at java.util.TimerThread.mainLoop(Timer.java:527)
>       at java.util.TimerThread.run(Timer.java:477)
> Caused by: javax.xml.ws.WebServiceException: Validation error: SEI does not 
> contain a WebService annotation.  Implementation class: JSR181Pojo; SEI: 
> JSRPojoSEI
>       at 
> org.apache.axis2.jaxws.ExceptionFactory.createWebServiceException(ExceptionFactory.java:173)
>       at 
> org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:70)
>       at 
> org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:118)
>       at 
> org.apache.axis2.jaxws.description.impl.ServiceDescriptionImpl.validateSEI(ServiceDescriptionImpl.java:1681)
>       at 
> org.apache.axis2.jaxws.description.impl.ServiceDescriptionImpl.validateIntegrity(ServiceDescriptionImpl.java:1232)
>       at 
> org.apache.axis2.jaxws.description.impl.ServiceDescriptionImpl.validateDBCLIntegrity(ServiceDescriptionImpl.java:1105)
>       at 
> org.apache.axis2.jaxws.description.impl.ServiceDescriptionImpl.<init>(ServiceDescriptionImpl.java:314)
>       at 
> org.apache.axis2.jaxws.description.impl.DescriptionFactoryImpl.createServiceDescriptionFromDBCMap(DescriptionFactoryImpl.java:240)
>       at 
> org.apache.axis2.jaxws.description.impl.DescriptionFactoryImpl.createServiceDescription(DescriptionFactoryImpl.java:210)
>       at 
> org.apache.axis2.jaxws.description.DescriptionFactory.createAxisService(DescriptionFactory.java:357)
>       at 
> org.apache.axis2.jaxws.description.DescriptionFactory.createAxisService(DescriptionFactory.java:346)
>       ... 17 more
> 3. To fix this if I add webservice annotation to SEI
> Then WSDL 1.1 is not generated and on server start following error is reported
> [11/11/08 07:48:01:340 GMT] 00000026 SystemOut     O [INFO] Undeploying Web 
> service: JSRPojo.jar
> [11/11/08 07:48:01:450 GMT] 00000026 SystemOut     O [INFO] JAXWS jars are 
> missing in the classpath with null, switching to annongen
> java.lang.reflect.InvocationTargetException
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:615)
>       at 
> org.apache.axis2.deployment.POJODeployer.createAxisService(POJODeployer.java:260)
>       at 
> org.apache.axis2.deployment.POJODeployer.deploy(POJODeployer.java:198)
>       at 
> org.apache.axis2.deployment.repository.util.DeploymentFileData.deploy(DeploymentFileData.java:136)
>       at 
> org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:597)
>       at 
> org.apache.axis2.deployment.repository.util.WSInfoList.update(WSInfoList.java:144)
>       at 
> org.apache.axis2.deployment.RepositoryListener.update(RepositoryListener.java:330)
>       at 
> org.apache.axis2.deployment.RepositoryListener.checkServices(RepositoryListener.java:227)
>       at 
> org.apache.axis2.deployment.RepositoryListener.startListener(RepositoryListener.java:324)
>       at 
> org.apache.axis2.deployment.scheduler.SchedulerTask.checkRepository(SchedulerTask.java:64)
>       at 
> org.apache.axis2.deployment.scheduler.SchedulerTask.run(SchedulerTask.java:71)
>       at 
> org.apache.axis2.deployment.scheduler.Scheduler$SchedulerTimerTask.run(Scheduler.java:83)
>       at java.util.TimerThread.mainLoop(Timer.java:527)
>       at java.util.TimerThread.run(Timer.java:477)
> Caused by: javax.xml.ws.WebServiceException: A ServiceDescription was not 
> created for JSRPojoSEI
>       at 
> org.apache.axis2.jaxws.ExceptionFactory.createWebServiceException(ExceptionFactory.java:173)
>       at 
> org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:70)
>       at 
> org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:118)
>       at 
> org.apache.axis2.jaxws.description.impl.DescriptionFactoryImpl.createServiceDescription(DescriptionFactoryImpl.java:221)
>       at 
> org.apache.axis2.jaxws.description.DescriptionFactory.createAxisService(DescriptionFactory.java:357)
>       at 
> org.apache.axis2.jaxws.description.DescriptionFactory.createAxisService(DescriptionFactory.java:346)
>       ... 17 more
> Again WSDL 1.1 is not generated as in Case 1 above.
> 4. When I use JAXWSDeployer I again get into similar issues
> Are there any additional jars needed to run this. I tried adding jaxws-tools& 
> jaxws-rt.jar from sun but one or the other issue comes.
> Please let me know with a sample code & configuration on how to use JSR 181 
> annotated webservices in AXIS 2
> Regards
> Girish

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to