That was the big issue, we do have spring in there, but it's an older version
and we didn't want to mess with upgrading. So I was looking for a way to run
the CXFBus while using the older spring jars we have.
I think we got it figured out, we're going to use a stripped down build for
the webservices, which doesn't include any of the older spring stuff we're
using.
Again thanks for the help!
Willem2 wrote:
>
> Hi,
>
> I think you need to look up your class path if there any spring related
> class.
> Here is part of CXFServlet init code:
> String springCls =
> "org.springframework.context.ApplicationContext";
> try {
> ClassLoaderUtils.loadClass(springCls, getClass());
> loadSpringBus(servletConfig);
> } catch (ClassNotFoundException e) {
> loadBusNoConfig(servletConfig);
> }
> If you want to create bus from CXFBusfactory , you need to remove the
> spring related jars first.
>
> Willem.
>
>
> bobbydole wrote:
>> Thanks, I'm using Tomcat 6 in windows. So I added
>>
>> -Dorg.apache.cxf.bus.factory=org.apache.cxf.bus.CXFBusFactory
>>
>> under the Java tab. Then I checked the System.properties and I saw that
>> it
>> property had been set:
>> org.apache.cxf.bus.factory org.apache.cxf.bus.CXFBusFactory
>>
>> However I still get the message:
>> Sep 20, 2007 2:52:45 PM org.apache.cxf.transport.servlet.CXFServlet
>> loadSpringBus
>>
>> in my catalina log. And I still get the following exception:
>>
>> java.lang.NoClassDefFoundError:
>> org/springframework/beans/factory/xml/NamespaceHandlerResolver
>> at
>> org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:84)
>> at
>> org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:65)
>> at
>> org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:52)
>> at
>> org.apache.cxf.transport.servlet.CXFServlet.loadSpringBus(CXFServlet.java:159)
>> at org.apache.cxf.transport.servlet.CXFServlet.init(CXFServlet.java:98)
>>
>> when the servlet starts up.
>>
>> Thanks again for the help. I feel like you guys have gone out of your way
>> to
>> help me on this...
>>
>> Do you have any other suggestions?
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> Willem2 wrote:
>>
>>> Hi
>>>
>>> It looks like the servlet transport factory did not set up the transport
>>> id for you to use.
>>> If you just want CXF Servlet to use the CXFBusFactory , you can add this
>>> option
>>> -Dorg.apache.cxf.bus.factory=org.apache.cxf.bus.CXFBusFactory to your
>>> WebContainer's start up script.
>>>
>>>
>>> Willem.
>>> bobbydole wrote:
>>>
>>>> Hello,
>>>>
>>>> I downloaded the latest snapshot,
>>>> apache-cxf-2.1-incubator-20070918.014642-3, I'm still getting the same
>>>> error:
>>>> java.lang.NullPointerException
>>>> at
>>>> org.apache.cxf.frontend.AbstractEndpointFactory.createEndpointInfo(AbstractEndpointFactory.java:172)
>>>> at
>>>> org.apache.cxf.frontend.AbstractEndpointFactory.createEndpoint(AbstractEndpointFactory.java:110)
>>>> at
>>>> org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:107)
>>>> at com.bob.dole.super.servlet.AppInit.init(AppInit.java:105)
>>>>
>>>> So I sort of switched gears and tried to get it up and running without
>>>> using
>>>> the simple-frontend. So I added the CXFServlet to my web.xml, and
>>>> removed
>>>> the ServerFactory code, and replaced it with the EndpointPublish code.
>>>> Here's the bit of my code:
>>>>
>>>> org.apache.cxf.bus.CXFBusFactory busFactory = new
>>>> org.apache.cxf.bus.CXFBusFactory();
>>>> BusFactory.setDefaultBus(busFactory.createBus());
>>>> BusFactory.setThreadDefaultBus(busFactory.createBus());
>>>> Endpoint.publish("/test/Hello", new TestService());
>>>>
>>>>
>>>> However this brings me back to my original error:
>>>> java.lang.NoClassDefFoundError:
>>>> org/springframework/beans/factory/xml/NamespaceHandlerResolver
>>>> at
>>>> org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:83)
>>>> at
>>>> org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:65)
>>>> at
>>>> org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:52)
>>>> at
>>>> org.apache.cxf.transport.servlet.CXFServlet.loadSpringBus(CXFServlet.java:152)
>>>> at
>>>> org.apache.cxf.transport.servlet.CXFServlet.init(CXFServlet.java:98)
>>>>
>>>> Since it's creating the Bus in the CXFServlet it makes sense that my
>>>> setDefaultBus in the code doesn't affect it at all. How can I set the
>>>> CXFServlet to use the CXF Bus instead of the SpringBus? Dan had
>>>> mentioned
>>>> setting setting the system property to
>>>> org.apache.cxf.bus.CXFBusFactory.
>>>> But
>>>> I am unsure how to do that.
>>>>
>>>> Once again thanks for all your help!
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Willem2 wrote:
>>>>
>>>>
>>>>> Hi,
>>>>>
>>>>> I just check the stack trace , current CXF trunk add a null pointer
>>>>> checker at that point , can you try the latest SNAPSHOT?
>>>>> If you want to use the ServletTransport with the simple front end APIļ¼
>>>>> you still need to add the CXFServlet into you web.xml.
>>>>>
>>>>> The cxf-servlet.xml just contains the Endpoint Information, if you had
>>>>> some place to put the code which calls the ServerFactoryBean, you can
>>>>> drop the cxf-servlet.xml.
>>>>>
>>>>> Willem.
>>>>>
>>>>> bobbydole wrote:
>>>>>
>>>>>
>>>>>> Thank you so much!
>>>>>>
>>>>>> I ended up doing this:
>>>>>> org.apache.cxf.bus.CXFBusFactory busFactory = new
>>>>>> org.apache.cxf.bus.CXFBusFactory();
>>>>>> BusFactory.setDefaultBus(busFactory.createBus());
>>>>>> BusFactory.setThreadDefaultBus(busFactory.createBus());
>>>>>> ServerFactoryBean svrFactory = new ServerFactoryBean();
>>>>>>
>>>>>> However now I'm running into another problem. It seems to want to use
>>>>>> the
>>>>>> Jetty jars (for a JettyHTTPTransportFactory), which I'm pretty sure I
>>>>>> don't
>>>>>> want to use since I'm using Tomcat.
>>>>>> So I set destinationFactory as follows:
>>>>>> svrFactory.setDestinationFactory(new
>>>>>> ServletTransportFactory());
>>>>>> svrFactory.setServiceClass(Test.class);
>>>>>> svrFactory.setAddress("http://localhost/Test/Hello");
>>>>>> svrFactory.setServiceBean(test);
>>>>>> svrFactory.create();
>>>>>>
>>>>>> However now I get NullPointerException
>>>>>> java.lang.NullPointerException
>>>>>> at
>>>>>> org.apache.cxf.frontend.AbstractEndpointFactory.createEndpointInfo(AbstractEndpointFactory.java:166)
>>>>>> at
>>>>>> org.apache.cxf.frontend.AbstractEndpointFactory.createEndpoint(AbstractEndpointFactory.java:104)
>>>>>> at
>>>>>> org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:108)
>>>>>>
>>>>>>
>>>>>> Maybe it would help if I described what I want to get done. Currently
>>>>>> I
>>>>>> have
>>>>>> 2 servlets running in tomcat that I need to turn into services. I'm
>>>>>> sort
>>>>>> of
>>>>>> lost and confused on what my next time would be. If I want to use the
>>>>>> simple
>>>>>> frontend method do I need to add the CXFServlet to my web.xml? I
>>>>>> dropped
>>>>>> the
>>>>>> cxf-servlet.xml in my web-inf directory, how ever it doesn't seem to
>>>>>> do
>>>>>> anything. Do I have to add it to a another file to get it to load?
>>>>>>
>>>>>> Thanks for all the help, I feel like I'm so close!
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> dkulp wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>> You probably could call:
>>>>>>>
>>>>>>> org.apache.cxf.bus.CXFBusFactory.createBus();
>>>>>>>
>>>>>>> first to cause it to create an Extension based bus. You may need
>>>>>>> to
>>>>>>> call BusFactory.setDefaultBus(...) and
>>>>>>> BusFactory.setThreadDefaultBus(...) with the return of the
>>>>>>> createBus()
>>>>>>> to force the bus to be there and avoid trying to create a spring
>>>>>>> one.
>>>>>>>
>>>>>>>
>>>>>>> You could also set the system property:
>>>>>>> org.apache.cxf.bus.factory
>>>>>>> to:
>>>>>>> org.apache.cxf.bus.CXFBusFactory
>>>>>>>
>>>>>>> That should work as well.
>>>>>>>
>>>>>>> Dan
>>>>>>>
>>>>>>>
>>>>>>> On Monday 17 September 2007, bobbydole wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> Thanks for the reply!
>>>>>>>>
>>>>>>>> Is there any way to over ride this behavior? We are using Spring,
>>>>>>>> but
>>>>>>>> I've been told not to stay away from the spring JARs in CXF. I
>>>>>>>> think
>>>>>>>> that we're using an older version of spring, and we don't want to
>>>>>>>> mess
>>>>>>>> with upgrading at this time.. I don't know how to include the newer
>>>>>>>> spring files without messing with the old ones.
>>>>>>>>
>>>>>>>> Any suggestions?
>>>>>>>>
>>>>>>>> This has been driving me mad all day.. :(
>>>>>>>>
>>>>>>>> Dan Diephouse-2 wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> Hiya,
>>>>>>>>> I believe that the BusFactory will not create a new Bus unless it
>>>>>>>>> detects spring on your classpath. The fact that you're getting a
>>>>>>>>> NoClassDefFoundError supports this - otherwise you would have a
>>>>>>>>> ClassNotFoundException. So I would double check your classpath.
>>>>>>>>> Cheers,
>>>>>>>>> - Dan
>>>>>>>>>
>>>>>>>>> bobbydole wrote:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> Hello, I'm trying to get a simple web service setup using CXF.
>>>>>>>>>> Basically I'm
>>>>>>>>>> following the simple frontend example. However when I run it it I
>>>>>>>>>> get this
>>>>>>>>>> exception:
>>>>>>>>>>
>>>>>>>>>> java.lang.NoClassDefFoundError:
>>>>>>>>>> org/springframework/beans/factory/xml/NamespaceHandlerResolver
>>>>>>>>>> at
>>>>>>>>>> org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFacto
>>>>>>>>>> ry.java:83) at
>>>>>>>>>> org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFacto
>>>>>>>>>> ry.java:65) at
>>>>>>>>>> org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFacto
>>>>>>>>>> ry.java:52) at
>>>>>>>>>> org.apache.cxf.BusFactory.getDefaultBus(BusFactory.java:69) at
>>>>>>>>>> org.apache.cxf.BusFactory.getDefaultBus(BusFactory.java:58) at
>>>>>>>>>> org.apache.cxf.BusFactory.getThreadDefaultBus(BusFactory.java:98)
>>>>>>>>>> at
>>>>>>>>>> org.apache.cxf.frontend.AbstractEndpointFactory.getBus(AbstractEndp
>>>>>>>>>> ointFactory.java:274) at
>>>>>>>>>> org.apache.cxf.frontend.AbstractEndpointFactory.initializeServiceFa
>>>>>>>>>> ctory(AbstractEndpointFactory.java:150) at
>>>>>>>>>> org.apache.cxf.frontend.ServerFactoryBean.initializeServiceFactory(
>>>>>>>>>> ServerFactoryBean.java:144) at
>>>>>>>>>> org.apache.cxf.frontend.AbstractEndpointFactory.createEndpoint(Abst
>>>>>>>>>> ractEndpointFactory.java:80) at
>>>>>>>>>> org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.
>>>>>>>>>> java:108)
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Which looks to me like it requires the Spring of some sort, or at
>>>>>>>>>> least it
>>>>>>>>>> appears to want to use Spring.
>>>>>>>>>>
>>>>>>>>>> All I want to do is get a simple frontend service running without
>>>>>>>>>> spring (as
>>>>>>>>>> I can't use it) Any one got any ideas?
>>>>>>>>>>
>>>>>>>>>> Thanks!
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Dan Diephouse
>>>>>>>>> MuleSource
>>>>>>>>> http://mulesource.com | http://netzooid.com/blog
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>> --
>>>>>>> J. Daniel Kulp
>>>>>>> Principal Engineer
>>>>>>> IONA
>>>>>>> P: 781-902-8727 C: 508-380-7194
>>>>>>> [EMAIL PROTECTED]
>>>>>>> http://www.dankulp.com/blog
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>>
>
>
--
View this message in context:
http://www.nabble.com/CXF-without-Spring--tf4470086.html#a12825500
Sent from the cxf-user mailing list archive at Nabble.com.