Ok, This must be the most frustrating thing I've encountered yet.
Seems like I can not load the commons-net jar using the <classpath> in
servicemix.xml alone. When debugging, I defined only one jar in my
servicemix.xml. It looks like this:
******************
<classpath>
<location>lib/commons-net-1.4.1.jar</location>
</classpath>
<bean id="ftpClientPool"
class="org.apache.servicemix.components.net.FTPClientPool">
<property name="host" value="homer012"/>
<property name="username" value="system"/>
<property name="password" value="*****"/>
<property name="binaryMode" value="true"/>
</bean>
.....
********************
I packaged my SA and SU like this:
*********************
test-sa.zip
-->test-su.zip
-->/META-INF
-->jbi.xml
test-su.zip
-->/lib
-->commons-net-1.4.1.jar
-->servicemix.xml
*********************
When I deployed my SA to servicemix, the service-assemblies directory looks
like this:
*********************
%servicemix_home%\data\smx\service-assemblies\test_sa\version_1\sus\servicemix-lwcontainer\test_sa
-->/lib
-->commons-net-1.4.1.jar
-->servicemix.xml
*********************
I verified the <classpath> defined in servicemix.xml in the exploded
directory and it has the location: lib/commons-net-1.4.1.jar
When I run servicemix, this is the exception that I get:
*****************************
09:13:22,581 | ERROR | Thread-9 | AutoDeploymentService |
ramework.AutoDeploymentService 308 | Failed to update Service Assembly:
test_sa
java.lang.Exception: <?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.BeanDefinitionStoreException:
Unexpected exception parsing XML document from file
[C:\apache-servicemix-3.0-incubating\data\smx\service-assemblies\test_sa\version_1\sus\servicemix-lwcontainer\test_sa\servicemix.xml];
nested exception is
org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
Error 'Class that bean class
[org.apache.servicemix.components.net.FTPClientPool] depends on not found'
in file
[C:\apache-servicemix-3.0-incubating\data\smx\service-assemblies\test_sa\version_1\sus\servicemix-lwcontainer\test_sa\servicemix.xml]
at:
Bean 'ftpClientPool'; nested exception is java.lang.NoClassDefFoundError:
org/apache/commons/net/SocketClient</loc-message>
<stack-trace><![CDATA[org.apache.xbean.kernel.ServiceRegistrationException:
org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected
exception parsing XML document from file
[C:\apache-servicemix-3.0-incubating\data\smx\service-assemblies\test_sa\version_1\sus\servicemix-lwcontainer\test_sa\servicemix.xml];
nested exception is
org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
Error 'Class that bean class
[org.apache.servicemix.components.net.FTPClientPool] depends on not found'
in file
[C:\apache-servicemix-3.0-incubating\data\smx\service-assemblies\test_sa\version_1\sus\servicemix-lwcontainer\test_sa\servicemix.xml]
at:
Bean 'ftpClientPool'; nested exception is java.lang.NoClassDefFoundError:
org/apache/commons/net/SocketClient
at
org.apache.xbean.kernel.standard.ServiceManagerRegistry.registerService(ServiceManagerRegistry.java:424)
at
org.apache.xbean.kernel.standard.StandardKernel.registerService(StandardKernel.java:220)
at
org.apache.xbean.server.spring.loader.SpringLoader.load(SpringLoader.java:154)
at
org.apache.servicemix.common.xbean.AbstractXBeanDeployer.deploy(AbstractXBeanDeployer.java:81)
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:527)
at
org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(AutoDeploymentService.java:295)
at
org.apache.servicemix.jbi.framework.AutoDeploymentService$2.run(AutoDeploymentService.java:592)
at
org.apache.geronimo.connector.work.WorkerContext.run(WorkerContext.java:291)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown
Source)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.springframework.beans.factory.BeanDefinitionStoreException:
Unexpected exception parsing XML document from file
[C:\apache-servicemix-3.0-incubating\data\smx\service-assemblies\test_sa\version_1\sus\servicemix-lwcontainer\test_sa\servicemix.xml];
nested exception is
org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
Error 'Class that bean class
[org.apache.servicemix.components.net.FTPClientPool] depends on not found'
in file
[C:\apache-servicemix-3.0-incubating\data\smx\service-assemblies\test)sa\version_1\sus\servicemix-lwcontainer\test_sa\servicemix.xml]
at:
Bean 'ftpClientPool'; nested exception is java.lang.NoClassDefFoundError:
org/apache/commons/net/SocketClient
at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:423)
at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:360)
at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:335)
at
org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:126)
at
org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:142)
at
org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:168)
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:94)
at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:294)
at
org.apache.xbean.server.spring.configuration.SpringConfiguration.<init>(SpringConfiguration.java:63)
at
org.apache.xbean.server.spring.configuration.SpringConfigurationServiceFactory.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.java:176)
at
org.apache.xbean.kernel.standard.ServiceManagerRegistry.registerService(ServiceManagerRegistry.java:409)
... 11 more
Caused by:
org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
Error 'Class that bean class
[org.apache.servicemix.components.net.FTPClientPool] depends on not found'
in file
[C:\apache-servicemix-3.0-incubating\data\smx\service-assemblies\test_sa\version_1\sus\servicemix-lwcontainer\test_sa\servicemix.xml]
at:
Bean 'ftpClientPool'; nested exception is java.lang.NoClassDefFoundError:
org/apache/commons/net/SocketClient
at
org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:56)
at
org.springframework.beans.factory.support.ReaderContext.error(ReaderContext.java:74)
at
org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.error(BeanDefinitionParserDelegate.java:1181)
at
org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseBeanDefinitionElement(BeanDefinitionParserDelegate.java:552)
at
org.apache.xbean.spring.context.v2b.XBeanBeanDefinitionParserDelegate.parseBeanDefinitionElement(XBeanBeanDefinitionParserDelegate.java:61)
at
org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseBeanDefinitionElement(BeanDefinitionParserDelegate.java:398)
at
org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseBeanDefinitionElement(BeanDefinitionParserDelegate.java:367)
at
org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseDefaultElement(DefaultBeanDefinitionDocumentReader.java:162)
at
org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:138)
at
org.apache.xbean.spring.context.v2.XBeanBeanDefinitionDocumentReader.parseBeanDefinitions(XBeanBeanDefinitionDocumentReader.java:39)
at
org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:93)
at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:496)
at
org.apache.xbean.spring.context.v2.XBeanXmlBeanDefinitionReader.registerBeanDefinitions(XBeanXmlBeanDefinitionReader.java:79)
at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:406)
... 27 more
Caused by: java.lang.NoClassDefFoundError:
org/apache/commons/net/SocketClient
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:242)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:160)
at
org.springframework.beans.factory.support.BeanDefinitionReaderUtils.createBeanDefinition(BeanDefinitionReaderUtils.java:95)
at
org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseBeanDefinitionElement(BeanDefinitionParserDelegate.java:452)
... 37 more
]]></stack-trace>
</msg-loc-info>
</exception-info>
</task-result-details>
</component-task-result-details>
</component-task-result>
</jbi-task-result>
</jbi-task>
at
org.apache.servicemix.jbi.framework.ManagementSupport.failure(ManagementSupport.java:121)
at
org.apache.servicemix.jbi.framework.ManagementSupport.failure(ManagementSupport.java:107)
at
org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAssembly(DeploymentService.java:563)
at
org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(AutoDeploymentService.java:295)
at
org.apache.servicemix.jbi.framework.AutoDeploymentService$2.run(AutoDeploymentService.java:592)
at
org.apache.geronimo.connector.work.WorkerContext.run(WorkerContext.java:291)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown
Source)
at java.lang.Thread.run(Thread.java:595)
*****************************************
If I stick the commons-net-1.4.1.jar file into the
%servicemix_home%\lib\optional directory (while removing the classpath
dependency from servicemix.xml), everything works fine. Am I missing
something here? BTW, this happens on ServiceMix 3.0 running on Windows XP
w/SP2. Any help would be appreciated. Thanks in advance.
-los
gnodet wrote:
>
> The first one works, as shown in several examples
> in servicemix distribution.
>
> On 10/12/06, moraleslos <[EMAIL PROTECTED]> wrote:
>>
>> ok, I guess the issue i'm having with this is when I have more than one
>> dependency. I can get it working with the example you described, but
>> when I
>> need more than 1 jar, how do I declare this? For example, these don't
>> work:
>> <classpath>
>> <location>lib/commons-net-1.4.1.jar</location>
>> <location>lib/jaxen-1.1-beta-11.jar</location>
>> </classpath>
>>
>>
>> <classpath>
>>
>> <location>lib/commons-net-1.4.1.jar;lib/jaxen-1.1-beta-11.jar</location>
>> </classpath>
>>
>>
>> <classpath>
>>
>> <location>lib/commons-net-1.4.1.jar,lib/jaxen-1.1-beta-11.jar</location>
>> </classpath>
>>
>>
>> <classpath>
>> <location>lib/*.jar</location>
>> </classpath>
>>
>>
>> So how do I configure the multiple dependencies in the servicemix.xml
>> file?
>> Thanks.
>>
>> -los
>>
>>
>>
>> gnodet wrote:
>> >
>> > You should bundle these jars in the SU.
>> > In addition you currently need to specify
>> > these jars in the servicemix.xml file
>> > in your SU using:
>> > <classpath>
>> > <location>lib/commons-net-1.4.1.jar</location>
>> > </classpath>
>> >
>> > On 10/9/06, moraleslos <[EMAIL PROTECTED]> wrote:
>> >>
>> >> Hi,
>> >>
>> >> I'm finally coming along with my first SA deployment. My question is
>> >> that
>> >> I'm currently trying to run my FTPPoller class but there are some
>> >> dependencies that need to be addressed, i.e.
>> >> org/apache/commons/net/SocketClient, etc. I've been dropping these
>> >> dependent jars into the %servicemix_home%/lib/optional directory.
>> >> Instead
>> >> of doing this, can I just package the dependent jars inside the SA (or
>> >> the
>> >> SU) itself, e.g.:
>> >>
>> >> test-sa.zip
>> >> -->/lib
>> >> -->commons-net-1.4.1.jar
>> >> -->/META-INF
>> >> -->jbi.xml
>> >> -->test-su.zip
>> >>
>> >> Thanks in advance.
>> >>
>> >> -los
>> >> --
>> >> View this message in context:
>> >>
>> http://www.nabble.com/class-dependencies-in-SA--tf2412903.html#a6725809
>> >> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>> >>
>> >>
>> >
>> >
>> > --
>> > Cheers,
>> > Guillaume Nodet
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/class-dependencies-in-SA--tf2412903.html#a6785645
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>>
>
>
> --
> Cheers,
> Guillaume Nodet
>
>
--
View this message in context:
http://www.nabble.com/class-dependencies-in-SA--tf2412903.html#a6796889
Sent from the ServiceMix - User mailing list archive at Nabble.com.