Simone and Robert

 

i dont know how many times Ive been bitten by CNFE by Spring Injector

 

http://www.grepcode.com/search/?query=org/springframework/context/ApplicationContextAware

 

reveals ApplicationContextAware is located in spring-context-3.x.jar

but spring-core-3.x.jar is a dependency of spring-context so add 
spring-core-3.x.jar
to distro

Robert is right in that Injector will  *always* find a class thats in the 
distro (.aar)

but you *should* be able to flip classLoaders and have the new CL find it in 
its classpath...

Nota Bene:same CNFE error happens when guice implements Spring injector 

IMHO this is incorrect behaviour and the Injector *should* implement the 
requested CL to locate all requested classes


I've looked into this *problem* and I'll post findings and workaround on 
maven-dev 


Obrigado,
Martin 

  



> Date: Tue, 15 Oct 2013 07:50:08 -0300
> Subject: Re: Axis2 / Spring3 / .aar file
> From: robertlazar...@gmail.com
> To: java-user@axis.apache.org
> 
> On Tue, Oct 15, 2013 at 7:03 AM, Simone <m...@gmx.de> wrote:
> > Hi,
> >
> > I try to deploy a webservice with axis2 and spring 3.2.
> >
> > I wrote a SpringInit:
> > ClassLoader classLoader = service.getClassLoader();
> > ClassPathXmlApplicationContext appCtx = new
> > ClassPathXmlApplicationContext(
> > new String[] { "application.xml" }, false);
> > appCtx.setClassLoader(classLoader);
> > appCtx.refresh();
> >
> > Added following lines to my application.xml
> >
> > <bean id="applicationContext"
> > class="org.apache.axis2.extensions.spring.receivers.ApplicationContextHolder"
> > />
> > <bean id="springAwareService"
> > class="com.ids.dam.impl.DAMServiceSkeleton">
> > </bean>
> >
> > and this is my services.xml
> >
> > <service name="SpringInit" class="com.ids.dam.impl.SpringInit">
> > <description>
> > This web service initializes Spring.
> > </description>
> > <parameter name="ServiceClass">com.ids.dam.impl.SpringInit
> > </parameter>
> > <parameter name="ServiceTCCL">composite</parameter>
> > <parameter name="load-on-startup">true</parameter>
> > <operation name="sprintInit">
> > <messageReceiver
> > class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver" />
> > </operation>
> > </service>
> >
> > .
> >
> > At the start of tomcat I get the following error:
> >
> > java.lang.NoClassDefFoundError:
> > org/springframework/context/ApplicationContextAware
> >
> >
> >
> > But all spring jars exists in .aar/lib folder.
> >
> > Please help :-)
> >
> > Kind regards, SImone
> 
> Did you do this step?
> 
> "move the axis2-spring-*.jar from WEB-INF/lib to inside the AAR, as
> shown below - it will not work otherwise."
> 
> Make sure that jar is only in the aar. Also, try expanding your
> springframework jar to verify
> org/springframework/context/ApplicationContextAware is inside. A quick
> look at the springframework docs indicates that the class is still in
> the distro, but we need to double check.
> 
> - R
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscr...@axis.apache.org
> For additional commands, e-mail: java-user-h...@axis.apache.org
> 
                                          

Reply via email to