With 2.2.4 it works fine :-) I still mustn't add these imports:
<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" /> But I'm now able (with 2.2.4) to configure > <cxf:bus> > <cxf:features> > <cxf:logging/> > </cxf:features> > </cxf:bus> without any problem. For my knowledge, could you give me the JIRA issue number that is related to your '<cxf:bus> processing modifications'? Thank you for you help. Johann On Fri, Oct 9, 2009 at 8:59 AM, Johann DUPUIS <[email protected] <mailto:[email protected]>> wrote: Thanks I will give 2.2.4 a try. Johann On Thu, Oct 8, 2009 at 10:56 PM, Daniel Kulp <[email protected] <mailto:[email protected]>> wrote: I think this is one of the bugs I fixed in 2.2.4. If made some modifications to the <cxf:bus> processing stuff to grab the default bus (which is what you see being created) if one isn't already in the context. Thus, this may be fixed in 2.2.4 (which is being voted on now) Dan On Tue October 6 2009 3:44:38 am Spam wrote: > In my 'web.xml' I load services related configuration with: > > <servlet> > <servlet-name>CXFServlet</servlet-name> > <display-name>CXF Servlet</display-name> > > <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> > <init-param> > <param-name>config-location</param-name> > <param-value>/WEB-INF/services-server.xml</param-value> > </init-param> > <load-on-startup>1</load-on-startup> > </servlet> > > <servlet-mapping> > <servlet-name>CXFServlet</servlet-name> > <url-pattern>/services/*</url-pattern> > </servlet-mapping> > > If i remove those lines from 'services-server.xml', then imports looks > > like useless: > > <cxf:bus> > > <cxf:features> > > <cxf:logging/> > > </cxf:features> > > </cxf:bus> > > For info, here is the beginning of 'services-server.xml' file: > <?xml version="1.0" encoding="UTF-8"?> > <beans xmlns="http://www.springframework.org/schema/beans" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:simple="http://cxf.apache.org/simple" > xmlns:soap="http://cxf.apache.org/bindings/soap" > xmlns:cxf="http://cxf.apache.org/core" > xmlns:jaxws="http://cxf.apache.org/jaxws" > xsi:schemaLocation=" > http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans-2.5.xsd > http://cxf.apache.org/bindings/soap > http://cxf.apache.org/schemas/configuration/soap.xsd > http://cxf.apache.org/simple http://cxf.apache.org/schemas/simple.xsd > http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd > http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd > " > default-autowire="byName"> > > > Looking at Tomcat starting I can read: > 09:31:10,191 INFO [BusApplicationContext] No cxf.xml configuration file > detected, relying on defaults. > 09:31:10,191 DEBUG [BusApplicationContext] Creating application context > with resources: [class path resource [META-INF/cxf/cxf.xml], class path > resource [META-INF/cxf/cxf-extension-corba.xml], class path resource > [META-INF/cxf/cxf-extension-jaxws.xml], ... > > So I guess there is a fallback that workaround the missing 'cxf.xml' and > related files. > > The problem is I cannot configure <cxf:bus> since adding imports is > breaking (without error) the WS deployment. > > Regards. > Johann > > > On Mon, Oct 5, 2009 at 8:42 PM, Daniel Kulp <[email protected] <mailto:[email protected]> > <mailto:[email protected] <mailto:[email protected]>>> wrote: > > > I guess it kind of depends on how this config is picked up... > > Is this a cxf-servlet.xml thing that the CXFServlet is loading (in > which case > you shouldn't have the imports as your config is loaded on top of the > "Default" bus configs) or is this a applicationContext.xml type > thing that > the sping context listener is picking up (in which case it IS needed)? > > Dan > > On Mon October 5 2009 4:37:25 am Spam wrote: > > 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(AbstractInvoke > > > >r.java:152) at > > > org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.createFault(AbstractJAXWS > > > >MethodInvoker.java:83) at > > > org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.jav > > > >a:126) at > > > org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:55 > > > >) at > > > org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.jav > > > >a:68) at > > > org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvoker > > > >Interceptor.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(Servic > > > >eInvokerInterceptor.java:98) at > > > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorCh > > > >ain.java:236) at > > > org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiatio > > > >nObserver.java:104) at > > > org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestina > > > >tion.java:99) at > > > org.apache.cxf.transport.servlet.ServletController.invokeDestination(Serv > > > >letController.java:452) at > > > org.apache.cxf.transport.servlet.ServletController.invoke(ServletControll > > > >er.java:196) at > > > org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFSer > > > >vlet.java:220) at > > > org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFSer > > > >vlet.java:153) at > > > javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at > > > org.apache.cxf.transport.servlet.AbstractCXFServlet.service(AbstractCXFSe > > > >rvlet.java:211) at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicat > > > >ionFilterChain.java:290) at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilte > > > >rChain.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.j > > > >ava:109) at > > > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:28 > > > >6) at > > > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845 > > > >) at > > > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(H > > > >ttp11Protocol.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(DelegatingMethodAccessorI > > > >mpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) > > > at > > > org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(Abstract > > > >Invoker.java:166) at > > > org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.jav > > > >a: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 > > -- > Daniel Kulp > [email protected] <mailto:[email protected]> <mailto:[email protected] <mailto:[email protected]>> > http://www.dankulp.com/blog > -- Daniel Kulp [email protected] <mailto:[email protected]> http://www.dankulp.com/blog
