Hi All, I answer by myself.
Even if I don't really know why, removing following lines from my services configuration is fixing the issue (services are visible and are running perfectly): <import resource="classpath:META-INF/cxf/cxf.xml" /> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> <import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> <cxf:bus> <cxf:features> <cxf:logging/> </cxf:features> </cxf:bus> Any idea why these lines are preventing web services to be usable while no error message is issued? Regards. Johann Spam a écrit : > Hi All, > > I've followed the guidelines from > "http://cwiki.apache.org/CXF20DOC/jax-ws-configuration.html" to > configure my web services inside Tomcat 6.0. > > If I use the following configuration, everything in the cxf (log4j) log > file looks like the services are deployed successfully, but checking > with "http://localhost:8080/myWebApp/services/" results in "No services > have been found.". > > <bean id="WSUserServicePortType" > class="be.eft.cbkv3.ws.WSUserServicePortTypeImpl"> > </bean> > <jaxws:endpoint id="WSUserServicePortTypeEndpoint" > implementor="#WSUserServicePortType" > address="/WS_UserService.srv"> > <jaxws:binding> > <soap:soapBinding mtomEnabled="true" version="1.2"/> > </jaxws:binding> > </jaxws:endpoint> > > <bean id="WSClaimServicePortType" > class="be.eft.cbkv3.ws.WSClaimServicePortTypeImpl"> > </bean> > <jaxws:endpoint id="WSClaimServicePortTypeEndpoint" > implementor="#WSClaimServicePortType" > address="/WS_ClaimService.srv"> > <jaxws:binding> > <soap:soapBinding mtomEnabled="true" version="1.2"/> > </jaxws:binding> > </jaxws:endpoint> > > I changed configuration in that way (not using implementor but > implementorClass only): > <jaxws:endpoint id="WSUserServicePortTypeEndpoint" > > implementorClass="be.eft.cbkv3.ws.WSUserServicePortTypeImpl" > address="/WS_UserService.srv"> > <jaxws:binding> > <soap:soapBinding mtomEnabled="true" version="1.2"/> > </jaxws:binding> > </jaxws:endpoint> > > <jaxws:endpoint id="WSClaimServicePortTypeEndpoint" > > implementorClass="be.eft.cbkv3.ws.WSClaimServicePortTypeImpl" > address="/WS_ClaimService.srv"> > <jaxws:binding> > <soap:soapBinding mtomEnabled="true" version="1.2"/> > </jaxws:binding> > </jaxws:endpoint> > Then I get on "http://localhost:8080/myWebApp/services/" (looks good, > isn't it?): > Available SOAP services: > WSClaimServicePortType > * getClaim > * identify > > WSUserServicePortType > * openSession > * identify > * closeSession > But when I try to use the Web Services by running the WS consumers, I > get this error (in tomcat log): > 02 Oct 2009 at 18.06.57,929 WARN > (SessionId=,org.apache.cxf.common.logging.LogUtils,345,http-8080-1) [] > Application has thrown exception, unwinding now > org.apache.cxf.interceptor.Fault: object is not an instance of declaring > class while invoking public java.lang.String > myPackage.ws.WSUserServicePortTypeImpl.openSession(java.lang.String,java.lang.String,java.lang.Short,java.lang.String) > throws myPackage.ws.LoginException_Exception with params [login, > password, 0, localhost]. > at > org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:152) > at > org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.createFault(AbstractJAXWSMethodInvoker.java:83) > at > org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:126) > at > org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:55) > at > org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:68) > at > org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58) > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) > at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) > at java.util.concurrent.FutureTask.run(FutureTask.java:138) > at > org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37) > at > org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:98) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236) > at > org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:104) > at > org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:99) > at > org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:452) > at > org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:196) > at > org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:220) > at > org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:153) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) > at > org.apache.cxf.transport.servlet.AbstractCXFServlet.service(AbstractCXFServlet.java:211) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) > at > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) > at java.lang.Thread.run(Thread.java:619) > Caused by: java.lang.IllegalArgumentException: object is not an instance > of declaring class > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:166) > at > org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:82) > ... 29 more > > I wonder what is wrong in my configuration? > > I've tested using "jaxws:server" and I have same issue: the web services > looks like deployed in the log but access to > "http://localhost:8080/myWebApp/services/" results in "No services have > been found.". > > By the way, my tests based on Simple Frontend are working well: > > <simple:server id="cxf.wsUserService" > serviceClass="myPackage.ws.interfaces.WSUserService" > address="/WS_UserService.srv"> > <simple:serviceBean> > <bean id="server.wsUserService" > class="myPackage.ws.impl.WSUserServiceImpl"> > <property name="businessFacade" ref="businessFacade"/> > </bean> > </simple:serviceBean> > </simple:server> > > <simple:server id="cxf.wsClaimService" > serviceClass="myPackage.ws.interfaces.WSClaimService" > address="/WS_ClaimService.srv"> > <simple:serviceBean> > <bean id="server.wsClaimService" > class="myPackage.ws.impl.WSClaimServiceImpl"> > <property name="businessFacade" ref="businessFacade"/> > </bean> > </simple:serviceBean> > </simple:server> > > Any help would be greatly appreciated. > > Regards. > Johann > > >