Without Spring the exception is different :

Exception in thread "main" java.lang.NoClassDefFoundError:
javax/wsdl/WSDLException
        at java.lang.Class.getDeclaredConstructors0(Native Method)
        at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
        at java.lang.Class.getConstructor0(Unknown Source)
        at java.lang.Class.getConstructor(Unknown Source)
        at org.apache.cxf.bus.extension.Extension.load(Extension.java:92)
        at
org.apache.cxf.bus.extension.ExtensionManagerImpl.loadAndRegister(ExtensionManagerImpl.java:164)
        at
org.apache.cxf.bus.extension.ExtensionManagerImpl.processExtension(ExtensionManagerImpl.java:140)
        at
org.apache.cxf.bus.extension.ExtensionManagerImpl.loadFragment(ExtensionManagerImpl.java:133)
        at
org.apache.cxf.bus.extension.ExtensionManagerImpl.load(ExtensionManagerImpl.java:125)
        at
org.apache.cxf.bus.extension.ExtensionManagerImpl.load(ExtensionManagerImpl.java:94)
        at
org.apache.cxf.bus.extension.ExtensionManagerBus.<init>(ExtensionManagerBus.java:123)
        at org.apache.cxf.bus.CXFBusFactory.createBus(CXFBusFactory.java:41)
        at org.apache.cxf.bus.CXFBusFactory.createBus(CXFBusFactory.java:37)
        at org.apache.cxf.bus.CXFBusFactory.createBus(CXFBusFactory.java:33)
        at org.apache.cxf.BusFactory.getDefaultBus(BusFactory.java:69)
        at org.apache.cxf.BusFactory.getThreadDefaultBus(BusFactory.java:106)
        at org.apache.cxf.BusFactory.getThreadDefaultBus(BusFactory.java:97)
        at
org.apache.cxf.endpoint.AbstractEndpointFactory.getBus(AbstractEndpointFactory.java:73)


sorry if you didn't get a chance to complete this work yet

Sergey


Sergey Beryozkin wrote:
> 
> Hi Dan
> 
> Did you finish the part 3 of this refactoring ?
> I'm setting up a custom JAXRS project in Eclipse and I still have to add a
> wsdl4j library to the list of dependencies though I've been able to drop
> quite a few dependencies compared to a similar project I set up earlier...
> 
> Just in case, here is what I'm seeing :
> 
> Caused by: org.springframework.beans.factory.BeanCreationException: Error
> creating bean with name
> 'org.apache.cxf.transport.http_jetty.JettyHTTPTransportFactory' defined in
> class path resource [META-INF/cxf/cxf-extension-http-jetty.xml]:
> Initialization of bean failed; nested exception is
> java.lang.NoClassDefFoundError: javax/wsdl/Port
>       at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:480)
>       at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
>       at
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
>       at
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:221)
>       at
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
>       at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
>       at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
>       at
> org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:881)
>       at
> org.apache.cxf.bus.spring.SpringBeanLocator.loadBeansOfType(SpringBeanLocator.java:72)
>       at
> org.apache.cxf.transport.TransportFinder.loadAll(TransportFinder.java:138)
>       at
> org.apache.cxf.transport.TransportFinder.findTransportForURI(TransportFinder.java:84)
>       at
> org.apache.cxf.transport.DestinationFactoryManagerImpl.getDestinationFactoryForUri(DestinationFactoryManagerImpl.java:133)
>       at
> org.apache.cxf.jaxrs.AbstractJAXRSFactoryBean.createEndpointInfo(AbstractJAXRSFactoryBean.java:102)
>       at
> org.apache.cxf.jaxrs.AbstractJAXRSFactoryBean.createEndpoint(AbstractJAXRSFactoryBean.java:168)
>       at
> org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:83)
> 
> 
> cheers, Sergey
> 
> 
> dkulp wrote:
>> 
>> 
>> OK.  "Part 1"  (I have more ideas) is in.   A "default" bus has gone from
>> over 
>> 55 beans created and initialized down to 12.   Startup time for the first
>> Bus 
>> has dropped from 2.1 seconds on my machine to 0.9.   After the jit warms
>> up 
>> and classes loaded and such, subsequent Bus creation has dropped from
>> 105ms to 
>> about 60.     
>> 
>> Obviously, a default bus isn't much use now as nothing is loaded and
>> doing 
>> pretty much anything is going to start triggering other parts to load in.  
>> Thus, a "full" startup isn't as dramatic, but it's definitely a good
>> start.
>> 
>> Dan
>> 
>> 
>> 
>> On Tue August 25 2009 9:40:37 am Daniel Kulp wrote:
>>> Just a warning, if I can get all the tests passing, I have a big commit
>>> coming in today (although broken across a couple commits that will all
>>> come
>>> at once) that touches a LOT of stuff.
>>>
>>> Basically, I'm trying to reduce the startup time.  Specifically, the
>>> "BusFactory.createDefaultBus()" time.    I've done some investigation
>>> and
>>> discovered a few things that are taking a lot of time:
>>>
>>> 1) JSR250 processing - this is actually fairly expensive the first time.
>>> Retrieving annotations is expensive and the JSR250 has to look at every
>>> field and method.   The second time a class is used it's fast (cached),
>>> but
>>> that initial startup sucks.   I've added a NoJSR250Annotations
>>> annotation
>>> that can be added to beans loaded from Spring to mark the class as not
>>> having any JSR250 annotations anywhere on it so the JSR250 processor can
>>> skip it.   I've added this annotation to a bunch of places where it can
>>> be
>>> added.  (not all beans can have it, obviously)   This alone has about a
>>> 20%
>>> boost.
>>>
>>> 2) JAXB context creations - the JAXB based WSDL extensors are creating
>>> their JAXB context up front.   If those extensors are never used
>>> (example: 
>>> never use the CORBA binding) it's a pointless waste of time.   I'm
>>> changing
>>> them to create them only if needed for parsing/writing.   ,
>>>
>>> 3)  lazy-init="true"  - I'm going through all the cxf-extension-*.xml
>>> files
>>> and adding lazy-init="true" to almost everything.   I'm also updating
>>> other
>>> code to pull beans "if needed".   This has a huge affect of lower the
>>> number of beans created at startup.   Right now, a default bus creates
>>> 57
>>> beans up front, right away (and every one is run through the JSR250
>>> processor).    With some changes, I now have this down to 20 beans (and
>>> I
>>> think I can get it down closer to 15), with only 6 going through JSR250
>>> processing.
>>>
>>> The major affect of (3) is a lot of stuff doesn't get loaded unless it's
>>> needed.  If it's needed, you'll take a hit later to get it loaded, but
>>> if
>>> it's not needed, it's not loaded.    For example, if you don't use
>>> WSDL's
>>> at all (purely code first cases or JAX-RS cases), the WSDLManager is
>>> never
>>> loaded and thus none of the WSDL extensors are loaded.
>>>
>>> The "downside" of (3) is that a bunch of tests now fail that I'm trying
>>> to
>>> fix up.    There are many tests that test if the "count" of registered
>>> things is a particular number, but now the number is either 0 or much
>>> less.
>>>   I need to update the tests to actually ask for things first to make
>>> sure
>>> they get loaded.
>>>
>>>
>>> Anyway, it's a pretty big patch that touches a lot of files.  Thus, the
>>> heads up warning.
>> 
>> -- 
>> Daniel Kulp
>> dk...@apache.org
>> http://www.dankulp.com/blog
>> 
>> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/WARNING%3A-very-big-commit-coming-later-today....-tp25134475p25239080.html
Sent from the cxf-dev mailing list archive at Nabble.com.

Reply via email to