Hello again,

I'll try to add some libraries to servicemix-shared as a workaround for this
problem.
Any other ideas?
Should I raise jira issue for it?

Regards,
Piotr


Piotr Jagielski wrote:
> 
> Problematic fragment of xbean.xml is:
> 
>   <bean id="sqlMapClient"
> class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
>     <property name="configLocation"
> value="classpath:ibatis/sqlmap-config.xml"/>
>     <property name="dataSource" ref="dataSource"/>
>   </bean>
> 
> And here are dependencies from pom.xml:
> 
>   <dependencies>
>     <dependency>
>       <groupId>org.springframework</groupId>
>       <artifactId>spring-jdbc</artifactId>
>     </dependency>    
>     <dependency>
>       <groupId>org.springframework</groupId>
>       <artifactId>spring-orm</artifactId>
>       <exclusions>
>           <exclusion>
>             <groupId>com.ibatis</groupId>
>             <artifactId>ibatis2</artifactId>
>           </exclusion>
>       </exclusions>
>     </dependency>
>     <dependency>
>         <groupId>org.apache.ibatis</groupId>
>         <artifactId>ibatis-sqlmap</artifactId>
>     </dependency>
>     <dependency>
>         <groupId>org.apache.cxf</groupId>
>         <artifactId>cxf-rt-frontend-jaxws</artifactId>
>         <scope>provided</scope>
>     </dependency>
>     <dependency>
>         <groupId>org.apache.cxf</groupId>
>         <artifactId>cxf-rt-transports-http</artifactId>
>         <scope>provided</scope>
>     </dependency>
>     <dependency>
>         <groupId>javax.xml.bind</groupId>
>         <artifactId>jaxb-api</artifactId>
>     </dependency>
>     <dependency>
>         <groupId>javax.xml.ws</groupId>
>         <artifactId>jaxws-api</artifactId>
>         <scope>provided</scope>
>     </dependency>
>     <!-- test dependencies -->
>     <dependency>
>         <groupId>junit</groupId>
>         <artifactId>junit</artifactId>
>         <version>4.4</version>
>         <scope>test</scope>
>     </dependency>
>     <dependency>
>         <groupId>ojdbc</groupId>
>         <artifactId>ojdbc</artifactId>
>         <version>14</version>
>         <scope>test</scope>
>     </dependency>
>   </dependencies>
> 
> Regards
> 
> 
> Jean-Baptiste Onofré wrote:
>> 
>> Can I have your SU's xbean.xml and pom.xml ?
>> 
>> Regards
>> JB
>> 
>> On Friday 09 January 2009 - 13:04, Piotr Jagielski wrote:
>>> 
>>> Here is the stacktrace:
>>> 
>>> <loc-message>Unexpected exception parsing XML document from file
>>> [/usr/local/java/apache-servicemix-3.3/data/smx/service-assemblies/adapter-pc-PCService-1/ve
>>> rsion_1/sus/servicemix-jsr181/adapter-pc-jsr181-su/applicationContext.xml];
>>> nested exception is java.lang.NoClassDefFoundError:
>>> com/ibatis/sqlmap/client/SqlMapClient</loc-message>
>>>                                        
>>> <stack-trace><![CDATA[org.springframework.beans.factory.BeanDefinitionStoreException:
>>> Unexpected exception parsing XML document from file [/usr/local/java/ap
>>> ache-servicemix-3.3/data/smx/service-assemblies/adapter-pc-PCService-1/version_1/sus/servicemix-jsr181/adapter-pc-jsr181-su/applicationContext.xml];
>>> nested exception is java.lang.NoClassDefFoundErr
>>> or: com/ibatis/sqlmap/client/SqlMapClient
>>>         at
>>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:420)
>>>         at
>>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342)
>>>         at
>>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310)
>>>         at
>>> org.apache.xbean.spring.context.v2.XBeanBeanDefinitionDocumentReader.importBeanDefinitionResource(XBeanBeanDefinitionDocumentReader.java:129)
>>>         at
>>> org.apache.xbean.spring.context.v2.XBeanBeanDefinitionDocumentReader.parseDefaultElement(XBeanBeanDefinitionDocumentReader.java:95)
>>>         at
>>> org.apache.xbean.spring.context.v2.XBeanBeanDefinitionDocumentReader.parseBeanDefinitions(XBeanBeanDefinitionDocumentReader.java:81)
>>>         at
>>> org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:92)
>>>         at
>>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:507)
>>>         at
>>> org.apache.xbean.spring.context.v2.XBeanXmlBeanDefinitionReader.registerBeanDefinitions(XBeanXmlBeanDefinitionReader.java:79)
>>>         at
>>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:398)
>>>         at
>>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342)
>>>         at
>>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310)
>>>         at
>>> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)
>>>         at
>>> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)
>>>         at
>>> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)
>>>         at
>>> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:212)
>>>         at
>>> org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:113)
>>>         at
>>> org.apache.xbean.spring.context.FileSystemXmlApplicationContext.loadBeanDefinitions(FileSystemXmlApplicationContext.java:168)
>>>         at
>>> org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123)
>>>         at
>>> org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:423)
>>>         at
>>> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:353)
>>>         at
>>> org.apache.servicemix.common.xbean.AbstractXBeanDeployer.deploy(AbstractXBeanDeployer.java:86)
>>>         at
>>> org.apache.servicemix.common.BaseServiceUnitManager.doDeploy(BaseServiceUnitManager.java:88)
>>>         at
>>> org.apache.servicemix.common.BaseServiceUnitManager.deploy(BaseServiceUnitManager.java:69)
>>>         at
>>> org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAssembly(DeploymentService.java:508)
>>>         at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.checkPendingSAs(AutoDeploymentService.java:482)
>>>         at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateComponent(AutoDeploymentService.java:293)
>>>         at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(AutoDeploymentService.java:252)
>>>         at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDirectory(AutoDeploymentService.java:667)
>>>         at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.access$800(AutoDeploymentService.java:62)
>>>         at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService$1.run(AutoDeploymentService.java:631)
>>>         at java.util.TimerThread.mainLoop(Timer.java:512)
>>>         at java.util.TimerThread.run(Timer.java:462)
>>> Caused by: java.lang.NoClassDefFoundError:
>>> com/ibatis/sqlmap/client/SqlMapClient
>>>         at java.lang.Class.getDeclaredMethods0(Native Method)
>>>         at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
>>>         at java.lang.Class.getDeclaredMethods(Class.java:1791)
>>>         at java.beans.Introspector$1.run(Introspector.java:1272)
>>>         at java.security.AccessController.doPrivileged(Native Method)
>>>         at
>>> java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1270)
>>>         at
>>> java.beans.Introspector.getTargetMethodInfo(Introspector.java:1136)
>>>         at java.beans.Introspector.getBeanInfo(Introspector.java:387)
>>>         at java.beans.Introspector.getBeanInfo(Introspector.java:159)
>>>         at java.beans.Introspector.getBeanInfo(Introspector.java:220)
>>>         at java.beans.Introspector.<init>(Introspector.java:368)
>>>         at java.beans.Introspector.getBeanInfo(Introspector.java:159)
>>>         at
>>> org.apache.xbean.spring.context.v2c.XBeanQNameHelper.getBeanInfo(XBeanQNameHelper.java:78)
>>>         at
>>> org.apache.xbean.spring.context.v2c.XBeanQNameHelper.coerceNamespaceAwarePropertyValues(XBeanQNameHelper.java:54)
>>>         at
>>> org.apache.xbean.spring.context.v2c.XBeanBeanDefinitionParserDelegate.parseBeanDefinitionElement(XBeanBeanDefinitionParserDelegate.java:59)
>>>         at
>>> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseBeanDefinitionElement(BeanDefinitionParserDelegate.java:389)
>>>         at
>>> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseBeanDefinitionElement(BeanDefinitionParserDelegate.java:358)
>>>         at
>>> org.apache.xbean.spring.context.v2.XBeanBeanDefinitionDocumentReader.processBeanDefinition(XBeanBeanDefinitionDocumentReader.java:174)
>>>         at
>>> org.apache.xbean.spring.context.v2.XBeanBeanDefinitionDocumentReader.parseDefaultElement(XBeanBeanDefinitionDocumentReader.java:101)
>>>         at
>>> org.apache.xbean.spring.context.v2.XBeanBeanDefinitionDocumentReader.parseBeanDefinitions(XBeanBeanDefinitionDocumentReader.java:81)
>>>         at
>>> org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:92)
>>>         at
>>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:507)
>>>         at
>>> org.apache.xbean.spring.context.v2.XBeanXmlBeanDefinitionReader.registerBeanDefinitions(XBeanXmlBeanDefinitionReader.java:79)
>>>         at
>>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:398)
>>>         ... 32 more
>>> Caused by: java.lang.ClassNotFoundException:
>>> com.ibatis.sqlmap.client.SqlMapClient in classloader
>>> com.ibatis.sqlmap.client.SqlMapClient
>>>         at
>>> org.apache.xbean.classloader.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:206)
>>>         at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>>> 
>>> As you can see the exception is java.lang.NoClassDefFoundError and it is
>>> raised from ApplicationContext.refresh().
>>> I have ibatis-sqlmap in my dependencies and it is included in SU's lib
>>> derectory.
>>> 
>>> Regard
>>> 
>>> 
>>> Jean-Baptiste Onofré wrote:
>>> > 
>>> > I understand Piotr.
>>> > 
>>> > Anyway, by default, if you have the dependency in the SU's pom.xml,
>>> the
>>> > jar is present
>>> > in the SU classloader.
>>> > For exemple, I have heavily used this behavior with CXF-SE to proxy
>>> EJB
>>> > and include 
>>> > the EJB's stub in the SU.
>>> > 
>>> > Please, could you attach the raised exception (NoClassDefFound or
>>> > ClassNotFound) ?
>>> > 
>>> > Thanks
>>> > Regards
>>> > JB
>>> > 
>>> > On Friday 09 January 2009 - 12:09, Piotr Jagielski wrote:
>>> >> 
>>> >> Hi Jean,
>>> >> 
>>> >> I tried adding classpath entry but it doesn't help. I also read in
>>> >> http://servicemix.apache.org/classloaders.html that lib/*.jar are
>>> added
>>> >> to
>>> >> SU'a classpath by default - is this correct?
>>> >> 
>>> >> Adding ibatis.jar to SMX lib directory of course helps, but I'd
>>> prefer to
>>> >> find some better solution. On 3.2.1 it was not necessary to do it.
>>> >> 
>>> >> Regards
>>> >> 
>>> >> 
>>> >> Jean-Baptiste Onofré wrote:
>>> >> > 
>>> >> > Hi Piotr
>>> >> > 
>>> >> > Do you have ibatis dependency in the SU's pom.xml ?
>>> >> > 
>>> >> > Overwise, you can put :
>>> >> > - ibatis.jar in the SMX lib directory (loaded by classworlds)
>>> >> > - add a <classpath/> entry in the xbean.xml
>>> >> > 
>>> >> > Regards
>>> >> > JB
>>> >> > 
>>> >> > 
>>> >> > On Friday 09 January 2009 - 11:48, Piotr Jagielski wrote:
>>> >> >> 
>>> >> >> Hi all,
>>> >> >> 
>>> >> >> I'm trying to migrate existing services from 3.2.1 to 3.3.
>>> >> >> While deploying SA on 3.3 NoClassDefFoundError occurs while
>>> >> instantiating
>>> >> >> some IBatis references from xbean.xml - which doesn't happen on
>>> 3.2.1.
>>> >> I
>>> >> >> have ibatis.jar in SU lib directory.
>>> >> >> 
>>> >> >> I searched through code and found some changes in
>>> >> AbstractXbeanDeployer
>>> >> >> in
>>> >> >> 3.3 :
>>> >> >> 
>>> >> >> ClassLoader classLoader = component.getClass().getClassLoader();
>>> >> >> Thread.currentThread().setContextClassLoader(classLoader);
>>> >> >> ...
>>> >> >> applicationContext.refresh();
>>> >> >> su.setApplicationContext(applicationContext);
>>> >> >> // Use SU classloader
>>> >> >>
>>> >>
>>> Thread.currentThread().setContextClassLoader(su.getConfigurationClassLoader());
>>> >> >> initApplicationContext(applicationContext);
>>> >> >> 
>>> >> >> So it looks like refresh() method is called with component's class
>>> >> loader
>>> >> >> and classes from within SU jars are not loaded - and
>>> NoClassDefFound
>>> >> is
>>> >> >> raised.
>>> >> >> This problem is related to servicemix-jsr181, IBatis classes on
>>> >> >> servicemix-camel are loaded without errors.
>>> >> >> 
>>> >> >> Any suggestions?
>>> >> >> 
>>> >> >> Regards,
>>> >> >> Piotr
>>> >> >> -- 
>>> >> >> View this message in context:
>>> >> >>
>>> >>
>>> http://www.nabble.com/SU-deployed-on-servicemix-jsr181-2008.01-couldn%27t-find-classes-from-jars-included-in-SU-lib-directory-tp21379285p21379285.html
>>> >> >> Sent from the ServiceMix - User mailing list archive at
>>> Nabble.com.
>>> >> >> 
>>> >> > 
>>> >> > -- 
>>> >> > Jean-Baptiste Onofré (Nanthrax)
>>> >> > BuildProcess/AutoDeploy Project Leader
>>> >> > http://buildprocess.sourceforge.net
>>> >> > [email protected]
>>> >> > PGP : 17D4F086
>>> >> > 
>>> >> > 
>>> >> 
>>> >> -- 
>>> >> View this message in context:
>>> >>
>>> http://www.nabble.com/SU-deployed-on-servicemix-jsr181-2008.01-couldn%27t-find-classes-from-jars-included-in-SU-lib-directory-tp21379285p21379692.html
>>> >> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>> >> 
>>> > 
>>> > -- 
>>> > Jean-Baptiste Onofré (Nanthrax)
>>> > BuildProcess/AutoDeploy Project Leader
>>> > http://buildprocess.sourceforge.net
>>> > [email protected]
>>> > PGP : 17D4F086
>>> > 
>>> > 
>>> 
>>> -- 
>>> View this message in context:
>>> http://www.nabble.com/SU-deployed-on-servicemix-jsr181-2008.01-couldn%27t-find-classes-from-jars-included-in-SU-lib-directory-tp21379285p21380549.html
>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>> 
>> 
>> -- 
>> Jean-Baptiste Onofré (Nanthrax)
>> BuildProcess/AutoDeploy Project Leader
>> http://buildprocess.sourceforge.net
>> [email protected]
>> PGP : 17D4F086
>> 
>> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/SU-deployed-on-servicemix-jsr181-2008.01-couldn%27t-find-classes-from-jars-included-in-SU-lib-directory-tp21379285p21432003.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to