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.
