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



Reply via email to