I have some components that accept an incoming mail, process it and then send it back out again. At the moment, I am using a combination of lw and eip components and if I run them embedded in lightweight mode then everything works perfectly.
I am now trying to break the various bits out into lw and eip service units so that I can deploy as a service assembly, however I get classpath errors when trying to start with jbi:servicemix or jbi:projectDeploy. The servicemix.xml file in [1] refers to JaxenStringXPathExpression, which causes java.lang.NoClassDefFoundError: org/jaxen/XPath errors when attempting to deploy then service assembly [2]. The jaxen jar containing the required class is correctly included in the lib/ folder during the build and I am using a recent servicemix 3.1 build that should be setting the classpath to include all jars in lib/. Interestingly, jbi:projectDeploy reports negative numbers during dependency analysis: [INFO] [jbi:projectDeploy] [INFO] ------------------ Deployment Analysis -------------------- [INFO] lw-su has -1 child dependencies I'm not sure what to try next? Terry -------------------------------------------------------------------- [1]: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns:sm="http://servicemix.apache.org/config/1.0" xmlns:eip="http://servicemix.apache.org/eip/1.0" xmlns:job="http://www.metaconcepts.com/x/1.0"> <!-- the JBI container --> <sm:serviceunit id="jbi"> <sm:activationSpecs> <sm:activationSpec componentName="emailPoller" service="job:emailPoller" destinationService="job:x"> <sm:component> <bean class="org.apache.servicemix.components.email.MimeMailPoller"> <property name="marshaler" ref="xMailMarshaler"/> <property name="hostName" value="x.co.uk"/> </bean> </sm:component> </sm:activationSpec> <sm:activationSpec componentName="x" service="job:x" destinationService="job:eipaggr"> <sm:component> <bean class="com.metaconcepts.parser.JobserveComponent"/> </sm:component> </sm:activationSpec> <!--sm:activationSpec> <sm:component> <eip:component> <eip:endpoints> <eip:split-aggregator service="job:eipaggr" endpoint="endpoint"> <eip:target> <eip:exchange-target service="job:returnMail" /> </eip:target> </eip:split-aggregator> </eip:endpoints> </eip:component> </sm:component> </sm:activationSpec--> <sm:activationSpec componentName="returnMail" service="job:returnMail"> <sm:component> <bean class="org.apache.servicemix.components.email.SimpleMailSender"> <property name="sender" ref="mailSender"/> <property name="marshaler"> <bean class="org.apache.servicemix.components.email.SimpleMailMarshaler"> <property name="from"> <bean class="org.apache.servicemix.expression.ConstantExpression"> <constructor-arg value="[EMAIL PROTECTED]"/> </bean> </property> <property name="to"> <bean class="org.apache.servicemix.expression.ConstantExpression"> <constructor-arg value="[EMAIL PROTECTED]"/> </bean> </property> <property name="subject"> <bean class="org.apache.servicemix.expression.JaxenStringXPathExpression"> <constructor-arg value="concat('Sorted ', /aggregate/@count, ' jobs...')"/> </bean> </property> <property name="text"> <bean class="org.apache.servicemix.expression.JaxenStringXPathExpression"> <constructor-arg value="/aggregate"/> </bean> </property> </bean> </property> </bean></sm:component> </sm:activationSpec> <sm:activationSpec componentName="trace" service="job:trace"> <sm:component> <bean class="org.apache.servicemix.components.util.TraceComponent"/> </sm:component> </sm:activationSpec> </sm:activationSpecs> </sm:serviceunit> <bean id="xMailMarshaler" class="com.metaconcepts.mail.xMailMarshaler"> </bean> <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="host"><value>x.co.uk</value></property> </bean> <bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"> <property name="brokerURL" value="tcp://192.168.50.2:61616" /> </bean> </beans> ------------------------------------------------------------------------ [2]: <?xml version="1.0" encoding="UTF-8"?> <jbi-task xmlns="http://java.sun.com/xml/ns/jbi/management-message" version="1.0"> <jbi-task-result> <frmwk-task-result> <frmwk-task-result-details> <task-result-details> <task-id>deploy</task-id> <task-result>FAILED</task-result> <message-type>ERROR</message-type> </task-result-details> </frmwk-task-result-details> </frmwk-task-result> <component-task-result xmlns="http://java.sun.com/xml/ns/jbi/management-message"> <component-name>servicemix-lwcontainer</component-name> <component-task-result-details> <task-result-details> <task-id>deploy</task-id> <task-result>FAILED</task-result> <message-type>ERROR</message-type> <task-status-msg> <msg-loc-info> <loc-token/> <loc-message>Could not deploy xbean service unit</loc-message> </msg-loc-info> </task-status-msg> <exception-info> <nesting-level>1</nesting-level> <msg-loc-info> <loc-token/> <loc-message>org.springframework.beans.factory.parsing.BeanDefinitionParsi ngException: Configuration problem: Unexpected failure during bean definition parsing Offending resource: file [C:\develop\jobsurf\Code\data\smx\service-assemblies\sa\version_15\sus\ser vicemix-lwcontainer\lw-su\servicemix.xml] Bean ''; nested exception is org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Class that bean class [org.apache. servicemix.components.email.SimpleMailMarshaler] depends on not found Offending resource: file [C:\develop\jobsurf\Code\data\smx\service-assemblies\sa\version_15\sus\ser vicemix-lwcontainer\lw-su\servicemix.xml] Bean '' -> Property 'marshaler' -> Bean ''; nested exception is java.lang.NoClassDefFoundError: org/jaxen/XPath</loc-message> <stack-trace><![CDATA[org.apache.xbean.kernel.ServiceRegistrationException : org.springframework.beans.factory.parsing.Be anDefinitionParsingException: Configuration problem: Unexpected failure during bean definition parsing Offending resource: file [C:\develop\jobsurf\Code\data\smx\service-assemblies\sa\version_15\sus\ser vicemix-lwcontainer\lw-su\servicemix.xml] Bean ''; nested exception is org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Class that bean class [org.apache. servicemix.components.email.SimpleMailMarshaler] depends on not found Offending resource: file [C:\develop\jobsurf\Code\data\smx\service-assemblies\sa\version_15\sus\ser vicemix-lwcontainer\lw-su\servicemix.xml] Bean '' -> Property 'marshaler' -> Bean ''; nested exception is java.lang.NoClassDefFoundError: org/jaxen/XPath at org.apache.xbean.kernel.standard.ServiceManagerRegistry.registerService(Se rviceManagerRegistry.java:424) at org.apache.xbean.kernel.standard.StandardKernel.registerService(StandardKe rnel.java:220) at org.apache.xbean.server.spring.loader.SpringLoader.load(SpringLoader.java: 154) at org.apache.servicemix.common.xbean.AbstractXBeanDeployer.deploy(AbstractXB eanDeployer.java:79) at org.apache.servicemix.common.BaseServiceUnitManager.doDeploy(BaseServiceUn itManager.java:88) at org.apache.servicemix.common.BaseServiceUnitManager.deploy(BaseServiceUnit Manager.java:69) at org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAssembl y(DeploymentService.java:527) at org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(Au toDeploymentService.java:304) at org.apache.servicemix.jbi.framework.AutoDeploymentService.updateExternalAr chive(AutoDeploymentService.java:184) at org.apache.servicemix.jbi.container.JBIContainer.updateExternalArchive(JBI Container.java:458) at org.apache.servicemix.jbi.container.JBIContainer.updateExternalArchive(JBI Container.java:468) at org.apache.servicemix.jbi.framework.AdminCommandsService.deployServiceAsse mbly(AdminCommandsService.java:240) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorIm pl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:216 ) at org.apache.servicemix.jbi.management.BaseStandardMBean.invoke(BaseStandard MBean.java:316) at com.sun.jmx.mbeanserver.DynamicMetaDataImpl.invoke(DynamicMetaDataImpl.jav a:213) at com.sun.jmx.mbeanserver.MetaDataImpl.invoke(MetaDataImpl.java:220) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanS erverInterceptor.java:815) at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:784) at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImp l.java:1408) at javax.management.remote.rmi.RMIConnectionImpl.access$100(RMIConnectionImpl .java:81) at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIC onnectionImpl.java:1245) at java.security.AccessController.doPrivileged(Native Method) at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMICon nectionImpl.java:1348) at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.jav a:782) at sun.reflect.GeneratedMethodAccessor15.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorIm pl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294) at sun.rmi.transport.Transport$1.run(Transport.java:153) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:149) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java :701) at java.lang.Thread.run(Thread.java:595) Caused by: org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unexpected failure during bean definition parsing Offending resource: file [C:\develop\jobsurf\Code\data\smx\service-assemblies\sa\version_15\sus\ser vicemix-lwcontainer\lw-su\servicemix.xml] Bean ''; nested exception is org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Class that bean class [org.apache. servicemix.components.email.SimpleMailMarshaler] depends on not found Offending resource: file [C:\develop\jobsurf\Code\data\smx\service-assemblies\sa\version_15\sus\ser vicemix-lwcontainer\lw-su\servicemix.xml] Bean '' -> Property 'marshaler' -> Bean ''; nested exception is java.lang.NoClassDefFoundError: org/jaxen/XPath at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(Fa ilFastProblemReporter.java:59) at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContex t.java:64) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.error(B eanDefinitionParserDelegate.java:363) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseBe anDefinitionElement(BeanDefinitionParserDelegate.java:578) at org.apache.xbean.spring.context.v2c.XBeanBeanDefinitionParserDelegate.pars eBeanDefinitionElement(XBeanBeanDefinitionParserDelegate.java:62) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseBe anDefinitionElement(BeanDefinitionParserDelegate.java:421) at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseChildExtens ionBean(XBeanNamespaceHandler.java:658) at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseNestedPrope rtyViaIntrospection(XBeanNamespaceHandler.java:579) at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.tryParseNestedPr opertyViaIntrospection(XBeanNamespaceHandler.java:546) at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.addNestedPropert yElements(XBeanNamespaceHandler.java:515) at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseBeanFromExt ensionElement(XBeanNamespaceHandler.java:211) at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseBeanFromExt ensionElement(XBeanNamespaceHandler.java:256) at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parse(XBeanNames paceHandler.java:152) at org.apache.xbean.spring.context.v2.XBeanNamespaceHandler.parse(XBeanNamesp aceHandler.java:49) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCu stomElement(BeanDefinitionParserDelegate.java:1147) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseNe stedCustomElement(BeanDefinitionParserDelegate.java:1185) at sun.reflect.GeneratedMethodAccessor16.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorIm pl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.xbean.spring.context.v2c.XBeanBeanDefinitionParserDelegate.inte rnalParseNestedCustomElement(XBeanBeanDefinitionParserDelegate.java:94) at org.apache.xbean.spring.context.v2c.XBeanBeanDefinitionParserDelegate.pars ePropertySubElement(XBeanBeanDefinitionParserDelegate.java:51) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseLi stElement(BeanDefinitionParserDelegate.java:935) at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseListElement (XBeanNamespaceHandler.java:584) at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseNestedPrope rtyViaIntrospection(XBeanNamespaceHandler.java:577) at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.tryParseNestedPr opertyViaIntrospection(XBeanNamespaceHandler.java:546) at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.addNestedPropert yElements(XBeanNamespaceHandler.java:515) at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseBeanFromExt ensionElement(XBeanNamespaceHandler.java:211) at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseBeanFromExt ensionElement(XBeanNamespaceHandler.java:256) at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parse(XBeanNames paceHandler.java:152) at org.apache.xbean.spring.context.v2.XBeanNamespaceHandler.parse(XBeanNamesp aceHandler.java:49) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCu stomElement(BeanDefinitionParserDelegate.java:1147) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCu stomElement(BeanDefinitionParserDelegate.java:1137) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader. parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:143) at org.apache.xbean.spring.context.v2.XBeanBeanDefinitionDocumentReader.parse BeanDefinitions(XBeanBeanDefinitionDocumentReader.java:63) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader. registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:88) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBean Definitions(XmlBeanDefinitionReader.java:499) at org.apache.xbean.spring.context.v2.XBeanXmlBeanDefinitionReader.registerBe anDefinitions(XBeanXmlBeanDefinitionReader.java:79) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDe finitions(XmlBeanDefinitionReader.java:407) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefi nitions(XmlBeanDefinitionReader.java:357) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefi nitions(XmlBeanDefinitionReader.java:334) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loa dBeanDefinitions(AbstractBeanDefinitionReader.java:126) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loa dBeanDefinitions(AbstractBeanDefinitionReader.java:142) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loa dBeanDefinitions(AbstractBeanDefinitionReader.java:168) at org.springframework.context.support.AbstractXmlApplicationContext.loadBean Definitions(AbstractXmlApplicationContext.java:113) at org.apache.xbean.spring.context.FileSystemXmlApplicationContext.loadBeanDe finitions(FileSystemXmlApplicationContext.java:168) at org.springframework.context.support.AbstractRefreshableApplicationContext. refreshBeanFactory(AbstractRefreshableApplicationContext.java:94) at org.springframework.context.support.AbstractApplicationContext.refresh(Abs tractApplicationContext.java:292) at org.apache.xbean.server.spring.configuration.SpringConfiguration.<init>(Sp ringConfiguration.java:63) at org.apache.xbean.server.spring.configuration.SpringConfigurationServiceFac tory.createService(SpringConfigurationServiceFactory.java:106) at org.apache.xbean.kernel.standard.ServiceManager.start(ServiceManager.java: 420) at org.apache.xbean.kernel.standard.ServiceManager.initialize(ServiceManager. java:200) at org.apache.xbean.kernel.standard.RegistryFutureTask$RegisterCallable.call( RegistryFutureTask.java:110) at edu.emory.mathcs.backport.java.util.concurrent.FutureTask.run(FutureTask.j ava:176) at org.apache.xbean.kernel.standard.ServiceManagerRegistry.registerService(Se rviceManagerRegistry.java:409) ... 37 more Caused by: org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Class that bean class [org.apache.servicemix.compone nts.email.SimpleMailMarshaler] depends on not found Offending resource: file [C:\develop\jobsurf\Code\data\smx\service-assemblies\sa\version_15\sus\ser vicemix-lwcontainer\lw-su\servicemix.xml] Bean '' -> Property 'marshaler' -> Bean ''; nested exception is java.lang.NoClassDefFoundError: org/jaxen/XPath at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(Fa ilFastProblemReporter.java:59) at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContex t.java:64) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.error(B eanDefinitionParserDelegate.java:363) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseBe anDefinitionElement(BeanDefinitionParserDelegate.java:575) at org.apache.xbean.spring.context.v2c.XBeanBeanDefinitionParserDelegate.pars eBeanDefinitionElement(XBeanBeanDefinitionParserDelegate.java:62) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseBe anDefinitionElement(BeanDefinitionParserDelegate.java:421) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parsePr opertySubElement(BeanDefinitionParserDelegate.java:847) at org.apache.xbean.spring.context.v2c.XBeanBeanDefinitionParserDelegate.pars ePropertySubElement(XBeanBeanDefinitionParserDelegate.java:57) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parsePr opertySubElement(BeanDefinitionParserDelegate.java:832) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parsePr opertyValue(BeanDefinitionParserDelegate.java:828) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parsePr opertyElement(BeanDefinitionParserDelegate.java:763) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parsePr opertyElements(BeanDefinitionParserDelegate.java:654) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseBe anDefinitionElement(BeanDefinitionParserDelegate.java:564) ... 87 more Caused by: java.lang.NoClassDefFoundError: org/jaxen/XPath at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2365) at java.lang.Class.getDeclaredMethods(Class.java:1763) at java.beans.Introspector$1.run(Introspector.java:1265) at java.security.AccessController.doPrivileged(Native Method) at java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1263) at java.beans.Introspector.getTargetMethodInfo(Introspector.java:1129) 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(XBeanQNam eHelper.java:78) at org.apache.xbean.spring.context.v2c.XBeanQNameHelper.coerceNamespaceAwareP ropertyValues(XBeanQNameHelper.java:54) at org.apache.xbean.spring.context.v2c.XBeanBeanDefinitionParserDelegate.pars eBeanDefinitionElement(XBeanBeanDefinitionParserDelegate.java:63) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseBe anDefinitionElement(BeanDefinitionParserDelegate.java:421) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parsePr opertySubElement(BeanDefinitionParserDelegate.java:847) at org.apache.xbean.spring.context.v2c.XBeanBeanDefinitionParserDelegate.pars ePropertySubElement(XBeanBeanDefinitionParserDelegate.java:57) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parsePr opertySubElement(BeanDefinitionParserDelegate.java:832) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parsePr opertyValue(BeanDefinitionParserDelegate.java:828) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parsePr opertyElement(BeanDefinitionParserDelegate.java:763) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parsePr opertyElements(BeanDefinitionParserDelegate.java:654) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseBe anDefinitionElement(BeanDefinitionParserDelegate.java:564) ... 96 more ]]></stack-trace> </msg-loc-info> </exception-info> </task-result-details> </component-task-result-details> </component-task-result> <component-task-result xmlns="http://java.sun.com/xml/ns/jbi/management-message"> <component-name>servicemix-eip</component-name> <component-task-result-details> <task-result-details> <task-id>deploy</task-id> <task-result>SUCCESS</task-result> </task-result-details> </component-task-result-details> </component-task-result> </jbi-task-result> </jbi-task>
