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]>> 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]>
>     http://www.dankulp.com/blog
> 

-- 
Daniel Kulp
[email protected]
http://www.dankulp.com/blog

Reply via email to