No, i dont get the error. It is used t throws this error but got resolved after putting the appropriate jars in the lib folder. The problem apparently (the way i see it) is - the CXF servlet loads the Servlet transport factory but the CXF BC however uses the JettyHTTPTransportFactory and not the ServletTransport Factory. I am attaching the command prompt as it appears when tomcat starts up...if u notice when the cxf-bc (wsdl-first-cxfbc-su) starts up...it starts jetty...lastly, if you go the bottom you would notice the servlet transport replacing as the destination factory as well...
***command promt as it appears - starts**** Using CATALINA_BASE: C:\tomcat\apache-tomcat-5.5.27 Using CATALINA_HOME: C:\tomcat\apache-tomcat-5.5.27 Using CATALINA_TMPDIR: C:\tomcat\apache-tomcat-5.5.27\temp Using JRE_HOME: C:\Progra~1\Java\jdk1.5.0_15 Jan 4, 2009 11:43:03 AM org.apache.catalina.core.AprLifecycleListener lifecycleEvent INFO: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Progra~1\Java\jdk1.5.0_15 Jan 4, 2009 11:43:03 AM org.apache.coyote.http11.Http11BaseProtocol init INFO: Initializing Coyote HTTP/1.1 on http-8080 Jan 4, 2009 11:43:03 AM org.apache.catalina.startup.Catalina load INFO: Initialization processed in 640 ms Jan 4, 2009 11:43:03 AM org.apache.catalina.core.StandardService start INFO: Starting service Catalina Jan 4, 2009 11:43:03 AM org.apache.catalina.core.StandardEngine start INFO: Starting Servlet Engine: Apache Tomcat/5.5.27 Jan 4, 2009 11:43:03 AM org.apache.catalina.core.StandardHost start INFO: XML validation disabled WARN - EndpointRegistry - Disabled endpoint processor 'org.apache.servicemix.jbi.framework.support.WSDL2Processor': java.lang.NoClassDefFoundError: org/ INFO - JBIContainer - ServiceMix 3.2.2 JBI Container (ServiceMix) is starting INFO - JBIContainer - For help or more information please see: http://servicemix.apache.org/ INFO - ComponentMBeanImpl - Initializing component: #SubscriptionManager# INFO - jetty - Logging to org.apache.servicemix.http.jetty.jcllog...@18fc9ba via org.apache.servicemix.http.jetty.JCLLogger INFO - DeploymentService - Restoring service assemblies WARN - ClientFactory - Cound not start ClientFactory: javax.naming.NamingException: Context is read only INFO - ComponentMBeanImpl - Setting running state for Component: servicemix-bean to Started INFO - ComponentMBeanImpl - Initializing component: servicemix-bean INFO - ComponentMBeanImpl - Setting running state for Component: servicemix-camel to Started INFO - ComponentMBeanImpl - Initializing component: servicemix-camel INFO - ComponentMBeanImpl - Setting running state for Component: servicemix-cxf-bc to Started INFO - ComponentMBeanImpl - Initializing component: servicemix-cxf-bc INFO - ComponentMBeanImpl - Setting running state for Component: servicemix-cxf-se to Started INFO - ComponentMBeanImpl - Initializing component: servicemix-cxf-se INFO - ComponentMBeanImpl - Setting running state for Component: servicemix-drools to Started INFO - ComponentMBeanImpl - Initializing component: servicemix-drools INFO - ComponentMBeanImpl - Setting running state for Component: servicemix-eip to Started INFO - ComponentMBeanImpl - Initializing component: servicemix-eip INFO - ComponentMBeanImpl - Setting running state for Component: servicemix-file to Started INFO - ComponentMBeanImpl - Initializing component: servicemix-file INFO - ComponentMBeanImpl - Setting running state for Component: servicemix-ftp to Started INFO - ComponentMBeanImpl - Initializing component: servicemix-ftp INFO - ComponentMBeanImpl - Setting running state for Component: servicemix-http to Started INFO - ComponentMBeanImpl - Initializing component: servicemix-http INFO - HttpComponentListener - Component servicemix-http configured. INFO - ComponentMBeanImpl - Setting running state for Component: servicemix-jms to Started INFO - ComponentMBeanImpl - Initializing component: servicemix-jms INFO - ComponentMBeanImpl - Setting running state for Component: servicemix-script to Shutdown INFO - ServiceAssemblyLifeCycle - Starting service assembly: wsdl-first-cxf-sa INFO - ServiceUnitLifeCycle - Initializing service unit: wsdl-first-cxfse-su INFO - ServiceUnitLifeCycle - Initializing service unit: wsdl-first-cxfbc-su Jan 4, 2009 11:43:25 AM org.apache.cxf.bus.spring.BusApplicationContext getConfigResources WARNING: Could not find the configuration file cxf-all.xml on the classpath. Jan 4, 2009 11:43:26 AM org.apache.cxf.endpoint.ServerImpl initDestination INFO: Setting the server's publish address to be http://localhost:8080/ServiceMix/services/DeliveryServiceImplService/ INFO - ServiceUnitLifeCycle - Initializing service unit: wsdl-first-drools-su INFO - ServiceUnitLifeCycle - Initializing service unit: wsdl-first-bulk-bean-se ListenerBeanBulk:: In Constructor INFO - ServiceUnitLifeCycle - Initializing service unit: wsdl-first-adhoc-bean-se ListenerBeanAdhoc:: In Constructor INFO - ServiceUnitLifeCycle - Starting service unit: wsdl-first-cxfse-su Jan 4, 2009 11:43:27 AM org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass INFO: Creating Service {http://servicemix.apache.org/samples/wsdl-first}DeliveryServiceImplService from class org.apache.servicemix.samples.wsdl_first.DeliveryService Jan 4, 2009 11:43:27 AM org.apache.cxf.endpoint.ServerImpl initDestination INFO: Setting the server's publish address to be jbi://ID-10-125-25-223-11ea286df70-12-0 INFO - ServiceUnitLifeCycle - Starting service unit: wsdl-first-cxfbc-su INFO - jetty - jetty-6.1.9 INFO - jetty - Started [email protected]:8080 INFO - ServiceUnitLifeCycle - Starting service unit: wsdl-first-drools-su INFO - ServiceUnitLifeCycle - Starting service unit: wsdl-first-bulk-bean-se INFO - ServiceUnitLifeCycle - Starting service unit: wsdl-first-adhoc-bean-se INFO - JBIContainer - ServiceMix JBI Container (ServiceMix) started INFO - JDBCAdapterFactory - Database driver recognized: [apache_derby_embedded_jdbc_driver] Jan 4, 2009 11:43:35 AM org.apache.cxf.transport.servlet.CXFServlet loadSpringBus INFO: Load the bus with application context Jan 4, 2009 11:43:35 AM org.apache.cxf.bus.spring.BusApplicationContext getConfigResources INFO: No cxf.xml configuration file detected, relying on defaults. Jan 4, 2009 11:43:35 AM org.apache.cxf.transport.servlet.AbstractCXFServlet replaceDestinationFactory INFO: Servlet transport factory already registered Jan 4, 2009 11:43:35 AM org.apache.cxf.transport.servlet.CXFServlet loadAdditionalConfig INFO: Build endpoints from config-location: /WEB-INF/cxf-servlet.xml Jan 4, 2009 11:43:36 AM org.apache.coyote.http11.Http11BaseProtocol start INFO: Starting Coyote HTTP/1.1 on http-8080 Jan 4, 2009 11:43:36 AM org.apache.jk.common.ChannelSocket init INFO: JK: ajp13 listening on /0.0.0.0:8009 Jan 4, 2009 11:43:36 AM org.apache.jk.server.JkMain start INFO: Jk running ID=0 time=0/16 config=null Jan 4, 2009 11:43:36 AM org.apache.catalina.storeconfig.StoreLoader load INFO: Find registry server-registry.xml at classpath resource Jan 4, 2009 11:43:36 AM org.apache.catalina.startup.Catalina start INFO: Server startup in 33829 ms *** Command Prompt as it appears - ends***** Freeman Fang wrote: > > Hi, > Seems your CXFSevlet transport is not loaded. > Did you get any exception in the $TOMCAT_HOME/logs/catalina.out after > you edit the web.xml? > Something like > org.apache.catalina.loader.standardclassloa...@1938039^m > org.apache.cxf.transport.servlet.CXFServlet > java.lang.ClassNotFoundException: > org.apache.cxf.transport.servlet.CXFServlet > at > org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1359) > at > org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1205) > at > org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1068) > at > org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966) > at > org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3956) > at > org.apache.catalina.core.StandardContext.start(StandardContext.java:4230) > at > org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760) > at > org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740) > at > org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544) > at > org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:825) > at > org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:714) > at > org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490) > at > org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138) > at > org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311) > at > org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120) > at > org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022) > at > org.apache.catalina.core.StandardHost.start(StandardHost.java:736) > at > org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014) > at > org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) > > > Freeman > > > GV wrote: >> Hi Freeman, >> >> Thanks for your reply. >> >> I am using v3.2.2 and am using the web console for deploying the SA. >> My >> web.xml looks like: >> >> >> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee >> >> http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >> version="2.4"> >> >> <description> >> Apache ServiceMix Console >> </description> >> <display-name>Apache ServiceMix Console</display-name> >> >> <context-param> >> <param-name>contextConfigLocation</param-name> >> <param-value>/WEB-INF/applicationContext.xml >> /WEB-INF/servicemix.xml</param-value> >> </context-param> >> <context-param> >> <param-name>contextClass</param-name> >> >> <param-value>org.apache.xbean.spring.context.XmlWebApplicationContext</param-value> >> </context-param> >> <listener> >> <listener-class> >> org.springframework.web.context.ContextLoaderListener >> </listener-class> >> </listener> >> <servlet> >> <servlet-name>cxf</servlet-name> >> <display-name>cxf</display-name> >> <description>Apache CXF Endpoint</description> >> >> <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> >> <load-on-startup>1</load-on-startup> >> </servlet> >> <servlet-mapping> >> <servlet-name>cxf</servlet-name> >> <url-pattern>/services/*</url-pattern> >> </servlet-mapping> >> >> <!-- >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> --> >> <!-- Configuration of the SiteMesh Filter. >> >> --> >> <!-- >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> --> >> <filter> >> <filter-name>sitemesh</filter-name> >> >> <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class> >> </filter> >> >> <filter-mapping> >> <filter-name>sitemesh</filter-name> >> <url-pattern>/*</url-pattern> >> </filter-mapping> >> >> <!-- >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> --> >> <!-- Expose Spring POJOs to JSP . >> >> --> >> <!-- >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> --> >> <filter> >> <filter-name>spring</filter-name> >> >> <filter-class>org.apache.servicemix.web.filter.ApplicationContextFilter</filter-class> >> </filter> >> >> <filter-mapping> >> <filter-name>spring</filter-name> >> <url-pattern>/*</url-pattern> >> </filter-mapping> >> >> <!-- >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> --> >> <!-- ServiceMix servlets >> >> --> >> <!-- >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> --> >> >> >> <!-- >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> --> >> <!-- Spring listener. --> >> <!-- >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> --> >> <listener> >> >> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> >> </listener> >> <listener> >> >> <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> >> </listener> >> >> <!-- >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> --> >> <!-- Configuration of the Spring MVC dispatcher >> --> >> <!-- >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> --> >> <servlet> >> <servlet-name>dispatcher</servlet-name> >> >> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> >> <load-on-startup>2</load-on-startup> >> </servlet> >> <!-- >> <servlet> >> <servlet-name>servicemix-http</servlet-name> >> >> <servlet-class>org.apache.servicemix.web.http.HttpManagedServlet</servlet-class> >> </servlet> >> <init-param> >> <param-name>mapping</param-name> >> <param-value>/services</param-value> >> </init-param> >> --> >> <!-- <servlet-mapping> >> <servlet-name>BindingServlet</servlet-name> >> <url-pattern>/jbi/*</url-pattern> >> </servlet-mapping> --> >> <servlet-mapping> >> <servlet-name>dispatcher</servlet-name> >> <url-pattern>*.action</url-pattern> >> </servlet-mapping> >> <servlet-mapping> >> <servlet-name>dispatcher</servlet-name> >> <url-pattern>*.svg</url-pattern> >> </servlet-mapping> >> <!-- <servlet-mapping> >> <servlet-name>servicemix-http</servlet-name> >> <url-pattern>/services/*</url-pattern> >> </servlet-mapping> >> --> >> <welcome-file-list> >> <welcome-file>index.html</welcome-file> >> <welcome-file>index.jsp</welcome-file> >> </welcome-file-list> >> >> <error-page> >> <exception-type>java.lang.Exception</exception-type> >> <location>/error.jsp</location> >> </error-page> >> >> <!-- >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> --> >> <!-- Factor out common headers in JSP pages --> >> <!-- >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> --> >> <jsp-config> >> <taglib> >> <taglib-uri> >> http://www.opensymphony.com/sitemesh/decorator >> </taglib-uri> >> <taglib-location> >> /WEB-INF/sitemesh-decorator.tld >> </taglib-location> >> </taglib> >> <taglib> >> <taglib-uri> >> http://www.opensymphony.com/sitemesh/page >> </taglib-uri> >> <taglib-location> >> /WEB-INF/sitemesh-page.tld >> </taglib-location> >> </taglib> >> <jsp-property-group> >> <url-pattern>*.jsp</url-pattern> >> <include-prelude>/WEB-INF/jspf/headertags.jspf</include-prelude> >> </jsp-property-group> >> </jsp-config> >> </web-app> >> >> My xbean.xml looks like: >> <beans xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0" >> xmlns:person="http://servicemix.apache.org/samples/wsdl-first"> >> >> <cxfbc:consumer wsdl="classpath:Test.wsdl" >> targetService="person:TestImplService" >> targetInterface="person:TestService"/> >> >> </beans> >> >> (I tried adding locationURI = "/TestImplService/" and it threw me a >> java.net.MalformedURL exception while deploying- if i change it to >> locationURI="http://localhost:8080/<my-sm-context>/services/TestImplService/" >> the application deploys but in the command prompt i see - >> INFO - ServiceUnitLifeCycle - Starting service unit: >> wsdl-first-cxfbc-su >> INFO - jetty - jetty-6.1.9 >> INFO - jetty - Started >> [email protected]:8080 >> ) >> >> Also when i try to access the url mentioned in the locationURI(with ?wsdl >> appended to it) , it is saying "No Service Found" at this URL... >> >> GV >> >> >> Freeman Fang wrote: >> >>> Hi GV, >>> What ServiceMix version are you use? >>> I suppose you are using 3.2.3, so would you please post >>> /webapps/apache-servicemix-web-3.2.3/WEB-INF/web.xml >>> and the xbean.xml for your cxf bc consumer? >>> And do you install component and SA from the web console? >>> I post the necessary step again, just for your reference >>> >>> You need add >>> <servlet> >>> <servlet-name>cxf</servlet-name> >>> <display-name>cxf</display-name> >>> <description>Apache CXF Endpoint</description> >>> >>> <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> >>> <load-on-startup>1</load-on-startup> >>> </servlet> >>> <servlet-mapping> >>> <servlet-name>cxf</servlet-name> >>> <url-pattern>/services/*</url-pattern> >>> </servlet-mapping> >>> to the /webapps/apache-servicemix-web-3.2.3/WEB-INF/web.xml >>> this servlet just replace http transport with servlet transport, so that >>> you can avoid starting jetty server when start cxf bc consumer, just >>> reuse the http server provided by your servlet container(tomcat in your >>> case), >>> Also, you need add >>> locationURI="/whateveryouwant" >>> for your cxf bc consumer configuration >>> You need install cxf bc component and SA from the WEB console >>> then you can access the wsdl by >>> http://localhost:8080/apache-servicemix-web-3.2.2/services/whateveryouwant?wsdl >>> >>> >>> >>> Freeman >>> >>> GV wrote: >>> >>>> Hi >>>> >>>> I am launching ServiceMix as a Web Application (Tomcat as the >>>> container) - >>>> it however kicks off an instance of Jetty. I want to use Tomcat as the >>>> container for ServiceMix and would like to not use Jetty. >>>> >>>> I referred to a few posts to use Servlet Transport instead of HTTP >>>> transport by using CXFServlet as the destination of incoming requests. >>>> While >>>> this prompts the destination factory being replaced by the >>>> ServletTransport >>>> Factory, it still does not stop Jetty from getting spawned. Also, i am >>>> unable to access the web service endpoint (which is a CXF BC in my >>>> case). >>>> Basically, when my application (deployed as a Service Assembly) starts >>>> up, >>>> while starting up the cxf bc service unit in my application, it kicks >>>> off >>>> jetty. >>>> >>>> Again all posts i referred to with reference to this mentioned making >>>> changes to web.xml which i did. >>>> >>>> Can somebody list if i am missing anything here? >>>> >>>> GV >>>> >>>> >>> >>> >> >> > > > -- View this message in context: http://www.nabble.com/Turning-off-jetty-tp21222876p21278879.html Sent from the ServiceMix - User mailing list archive at Nabble.com.
