Hi Piotr, Do you use standalone SMX (not deployed in a web container) ? Do you confirm that the dependencies set is in the SU pom.xml (not the SA one) ?
Regards JB On Tuesday 13 January 2009 - 01:26, Piotr Jagielski wrote: > > 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. > -- Jean-Baptiste Onofré (Nanthrax) BuildProcess/AutoDeploy Project Leader http://buildprocess.sourceforge.net [email protected] PGP : 17D4F086
