Ah, I understand. It seems as though my setup should be fine, which is good, since I'm seriously happy with it:-)

Thanks for everything!

On Sep 6, 2006, at 1:12 PM, Guillaume Nodet wrote:

The classloading problem in only related to where you put
your class files and dependencies.  If you use the standard
jbi packaging and deploy a SA on the lwcontainer, you
should make sure that all needed dependencies are bundled
within your SUs. Else you have to make sure about what the
container class loader includes.

What i meant in the previous thread was about the
servicemix-components jar, not the lightweight container
itself.   For example if you put the servicemix-components
jar in the container classloader and you want to use the
RSS component, you will have to put the needed jars
in the same classloader than the component itself. It
means you will have to put the RSS library in the container
classloader.  At the end, such a behavior will remove the
benefit of having separate classloaders, as everything will
end up in the container classloader.

Sounds clear ?

On 9/6/06, William Blackburn <[EMAIL PROTECTED]> wrote:

Sorry to hijack this thread, but I was hoping for clarification of
the last statement made in the quoted thread. I have been building an
application that consists of several home-grown servicemix 'pojo'
components configured directly in servicemix.xml, several binding
components from servicemix-component and an 'extension' framework
based on additional components hot-deployed against the lwcontainer.

I've never analyzed the class loading behavior in this arrangement
myself, but am I to understand that this is a non-optimal
configuration? Can you elaborate on the consequences of my current
design, and help me understand what I've done wrong if this is not a
best-practice?

Thanks in advance for any assistance.

B.J.




On Sep 6, 2006, at 12:38 AM, Guillaume Nodet wrote:

> The error is in the stack trace:
> Caused by: java.lang.ClassNotFoundException:
> org.apache.servicemix.components.jms.JmsInUsingJCABinding
>
> The reason is that servicemix-components is not put anymore in
> the ./lib
> folder, because it forces all lw components
> dependencies to be loaded from the server classloader when you
> deploy a SU
> on the lw container.
> If you don' t use the lw container, feel free to add this jar in
> ./lib/optional.
>
> On 9/6/06, gg1052 <[EMAIL PROTECTED]> wrote:
>>
>>
>> hi..
>>
>> i am copy SM-M2 version example/nca(develope me) to SM-M3 version
>> /example/nca.
>>
>> nca example SM-M2 Success..
>>
>> SM-M3/example/nca.. excute servicemix servicemix.xml
>>
>> and follow error message..
>>
>>
>> servicemix.bat: Ignoring predefined value for SERVICEMIX_HOME
>> Starting Apache ServiceMix ESB: 3.0-incubating-SNAPSHOT
>>
>> Loading Apache ServiceMix from file: servicemix.xml
>> Caught:
>> org.springframework.beans.factory.BeanDefinitionStoreException:
>> Unexpect
>> ed exception parsing XML document from file
>> [D:\Project\env\servicemix_m3\exampl
>> es\nca\servicemix.xml]; nested exception is
>> java.lang.IllegalStateException:
>> Una
>> ble to invoke parseNestedCustomElement method
>> org.springframework.beans.factory.BeanDefinitionStoreException:
>> Unexpected
>> excep
>> tion parsing XML document from file
>> [D:\Project\env\servicemix_m3\examples\nca\s
>> ervicemix.xml]; nested exception is java.lang.IllegalStateException:
>> Unable
>> to i
>> nvoke parseNestedCustomElement method
>> Caused by: java.lang.IllegalStateException: Unable to invoke
>> parseNestedCustomEl
>> ement method
>>         at
>> org.apache.xbean.spring.context.v2b.XBeanBeanDefinitionParserDelegate
>> .internalParseNestedCustomElement
>> (XBeanBeanDefinitionParserDelegate.java
>> :95)
>>         at
>> org.apache.xbean.spring.context.v2b.XBeanBeanDefinitionParserDelegate >> .parsePropertySubElement(XBeanBeanDefinitionParserDelegate.java: 50)
>>         at
>> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.pa
>> rseListElement(BeanDefinitionParserDelegate.java:914)
>>         at
>> org.apache.xbean.spring.context.v2b.XBeanNamespaceHandler.parseListEl
>> ement(XBeanNamespaceHandler.java:581)
>>         at
>> org.apache.xbean.spring.context.v2b.XBeanNamespaceHandler.parseNested
>> PropertyViaIntrospection(XBeanNamespaceHandler.java:574)
>>         at
>> org.apache.xbean.spring.context.v2b.XBeanNamespaceHandler.tryParseNes
>> tedPropertyViaIntrospection(XBeanNamespaceHandler.java:543)
>>         at
>> org.apache.xbean.spring.context.v2b.XBeanNamespaceHandler.addNestedPr
>> opertyElements(XBeanNamespaceHandler.java:512)
>>         at
>> org.apache.xbean.spring.context.v2b.XBeanNamespaceHandler.parseBeanFr
>> omExtensionElement(XBeanNamespaceHandler.java:208)
>>         at
>> org.apache.xbean.spring.context.v2b.XBeanNamespaceHandler.parseBeanFr
>> omExtensionElement(XBeanNamespaceHandler.java:253)
>>         at
>> org.apache.xbean.spring.context.v2b.XBeanNamespaceHandler.parse (XBean
>> NamespaceHandler.java:153)
>>         at
>> org.apache.xbean.spring.context.v2.XBeanNamespaceHandler.parse (XBeanN
>> amespaceHandler.java:49)
>>         at
>> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.pa
>> rseCustomElement(BeanDefinitionParserDelegate.java:1118)
>>         at
>> org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentRe >> ader.parseBeanDefinitions (DefaultBeanDefinitionDocumentReader.java:
>> 141)
>>         at
>> org.apache.xbean.spring.context.v2.XBeanBeanDefinitionDocumentReader.
>> parseBeanDefinitions(XBeanBeanDefinitionDocumentReader.java:39)
>>         at
>> org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentRe
>> ader.registerBeanDefinitions
>> (DefaultBeanDefinitionDocumentReader.java:93)
>>         at
>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registe
>> rBeanDefinitions(XmlBeanDefinitionReader.java:496)
>>         at
>> org.apache.xbean.spring.context.v2.XBeanXmlBeanDefinitionReader.regis
>> terBeanDefinitions(XBeanXmlBeanDefinitionReader.java:79)
>>         at
>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadB
>> eanDefinitions(XmlBeanDefinitionReader.java:406)
>>         at
>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBea
>> nDefinitions(XmlBeanDefinitionReader.java:360)
>>         at
>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBea
>> nDefinitions(XmlBeanDefinitionReader.java:335)
>>         at
>> org.springframework.beans.factory.support.AbstractBeanDefinitionReade
>> r.loadBeanDefinitions(AbstractBeanDefinitionReader.java:126)
>>         at
>> org.springframework.beans.factory.support.AbstractBeanDefinitionReade
>> r.loadBeanDefinitions(AbstractBeanDefinitionReader.java:142)
>>         at
>> org.springframework.beans.factory.support.AbstractBeanDefinitionReade
>> r.loadBeanDefinitions(AbstractBeanDefinitionReader.java:168)
>>         at
>> org.springframework.context.support.AbstractXmlApplicationContext.loa
>> dBeanDefinitions(AbstractXmlApplicationContext.java:113)
>>         at
>> org.apache.xbean.spring.context.FileSystemXmlApplicationContext.loadB
>> eanDefinitions(FileSystemXmlApplicationContext.java:168)
>>         at
>> org.springframework.context.support.AbstractRefreshableApplicationCon >> text.refreshBeanFactory (AbstractRefreshableApplicationContext.java:
>> 94)
>>         at
>> org.springframework.context.support.AbstractApplicationContext.refres
>> h(AbstractApplicationContext.java:294)
>>         at
>> org.apache.xbean.spring.context.FileSystemXmlApplicationContext.<init
>> >(FileSystemXmlApplicationContext.java:149)
>>         at
>> org.apache.xbean.spring.context.FileSystemXmlApplicationContext.<init
>> >(FileSystemXmlApplicationContext.java:100)
>>         at org.apache.servicemix.Main.main(Main.java:80)
>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>> Method)
>>         at
>> sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.
>> java:39)
>>         at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAcces
>> sorImpl.java:25)
>>         at java.lang.reflect.Method.invoke(Method.java:585)
>>         at
>> org.codehaus.classworlds.Launcher.launchStandard(Launcher.java: 410)
>>         at org.codehaus.classworlds.Launcher.launch(Launcher.java:
>> 344)
>> at org.codehaus.classworlds.Launcher.main(Launcher.java: 461)
>> Caused by: java.lang.reflect.InvocationTargetException
>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>> Method)
>>         at
>> sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.
>> java:39)
>>         at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAcces
>> sorImpl.java:25)
>>         at java.lang.reflect.Method.invoke(Method.java:585)
>>         at
>> org.apache.xbean.spring.context.v2b.XBeanBeanDefinitionParserDelegate
>> .internalParseNestedCustomElement
>> (XBeanBeanDefinitionParserDelegate.java
>> :93)
>>         ... 36 more
>> Caused by:
>> org.springframework.beans.factory.parsing.BeanDefinitionParsingExcept
>> ion: Error 'Bean class
>> [org.apache.servicemix.components.jms.JmsInUsingJCABindin
>> g] not found' in file
>> [D:\Project\env\servicemix_m3\examples\nca\servicemix.xml]
>> at:
>> Bean ''; nested exception is java.lang.ClassNotFoundException:
>> org.apache.servic
>> emix.components.jms.JmsInUsingJCABinding
>>         at
>> org.springframework.beans.factory.parsing.FailFastProblemReporter.err
>> or(FailFastProblemReporter.java:56)
>>         at
>> org.springframework.beans.factory.support.ReaderContext.error (ReaderC
>> ontext.java:74)
>>         at
>> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.er
>> ror(BeanDefinitionParserDelegate.java:1181)
>>         at
>> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.pa
>> rseBeanDefinitionElement(BeanDefinitionParserDelegate.java:549)
>>         at
>> org.apache.xbean.spring.context.v2b.XBeanBeanDefinitionParserDelegate >> .parseBeanDefinitionElement (XBeanBeanDefinitionParserDelegate.java:
>> 61)
>>         at
>> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.pa
>> rseBeanDefinitionElement(BeanDefinitionParserDelegate.java:398)
>>         at
>> org.apache.xbean.spring.context.v2b.XBeanNamespaceHandler.parseChildE
>> xtensionBean(XBeanNamespaceHandler.java:655)
>>         at
>> org.apache.xbean.spring.context.v2b.XBeanNamespaceHandler.parseNested
>> PropertyViaIntrospection(XBeanNamespaceHandler.java:576)
>>         at
>> org.apache.xbean.spring.context.v2b.XBeanNamespaceHandler.tryParseNes
>> tedPropertyViaIntrospection(XBeanNamespaceHandler.java:543)
>>         at
>> org.apache.xbean.spring.context.v2b.XBeanNamespaceHandler.addNestedPr
>> opertyElements(XBeanNamespaceHandler.java:512)
>>         at
>> org.apache.xbean.spring.context.v2b.XBeanNamespaceHandler.parseBeanFr
>> omExtensionElement(XBeanNamespaceHandler.java:208)
>>         at
>> org.apache.xbean.spring.context.v2b.XBeanNamespaceHandler.parseBeanFr
>> omExtensionElement(XBeanNamespaceHandler.java:253)
>>         at
>> org.apache.xbean.spring.context.v2b.XBeanNamespaceHandler.parse (XBean
>> NamespaceHandler.java:153)
>>         at
>> org.apache.xbean.spring.context.v2.XBeanNamespaceHandler.parse (XBeanN
>> amespaceHandler.java:49)
>>         at
>> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.pa
>> rseCustomElement(BeanDefinitionParserDelegate.java:1118)
>>         at
>> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.pa
>> rseNestedCustomElement(BeanDefinitionParserDelegate.java:1156)
>>         ... 41 more
>> Caused by: java.lang.ClassNotFoundException:
>> org.apache.servicemix.components.jm
>> s.JmsInUsingJCABinding
>>         at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
>> at java.security.AccessController.doPrivileged(Native Method) >> at java.net.URLClassLoader.findClass (URLClassLoader.java:188)
>>         at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
>>         at
>> org.codehaus.classworlds.RealmClassLoader.loadClassDirect (RealmClassL
>> oader.java:195)
>>         at
>> org.codehaus.classworlds.DefaultClassRealm.loadClassDirect (DefaultCla
>> ssRealm.java:412)
>>         at
>> org.codehaus.classworlds.DefaultClassRealm.loadClass (DefaultClassReal
>> m.java:376)
>>         at
>> org.codehaus.classworlds.RealmClassLoader.loadClass (RealmClassLoader.
>> java:214)
>>         at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>>         at java.lang.ClassLoader.loadClassInternal
>> (ClassLoader.java:319)
>>         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.c
>> reateBeanDefinition(BeanDefinitionReaderUtils.java:95)
>>         at
>> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.pa
>> rseBeanDefinitionElement(BeanDefinitionParserDelegate.java:452)
>>         ... 53 more
>>
>>
>>
>> ==== servicemix.xml ===========
>>
>> <?xml version="1.0" encoding="euc-kr"?>
>> <beans xmlns="http://xbean.org/schemas/spring/1.0";
>>         xmlns:spring="http://xbean.org/schemas/spring/1.0";
>>         xmlns:sm="http://servicemix.apache.org/config/1.0";
>>         xmlns:my="http://servicemix.apache.org/demo/";>
>>
>>
>>         <!-- the JBI container -->
>>         <sm:container spring:id="jbi" rootDir="./data/smx"
>> useMBeanServer="true"
>>                 createMBeanServer="true" installationDirPath="./
>> install"
>> deploymentDirPath="./deploy"
>> monitorInstallationDirectory="true" dumpStats="true"
>>                 statsInterval="10"
>> transactionManager="#transactionManager">
>>
>>                 <sm:activationSpecs>
>>
>>
>>                   <!-- Subscribe to a JMS destination -->
>>                   <sm:activationSpec componentName="inputReceiver"
>>
>> service="my:inputReceiver"
>>
>> destinationService="my:outputSender">
>>                   <sm:component>
>>                     <bean
>> class="org.apache.servicemix.components.jms.JmsInUsingJCABinding">
>> <property name="jcaContainer" ref="jencks"/>
>>                         <property name="activationSpec">
>>                           <bean class="
>> org.apache.activemq.ra.ActiveMQActivationSpec">
>>                             <property name="destination"
>> value="demo.org.servicemix.source"/>
>> <property name="destinationType" value="
>> javax.jms.Topic"/>
>>                           </bean>
>>                         </property>
>>                     </bean>
>>                   </sm:component>
>>                 </sm:activationSpec>
>>
>>                 <!-- Publish the result to a JMS destination -->
>>                 <sm:activationSpec componentName="outputSender"
>> service="my:outputSender">
>>                   <sm:component>
>>                     <bean class="nca.TestPojo">
>>                         <property name="template">
>>                           <bean class="
>> org.springframework.jms.core.JmsTemplate">
>>                             <property name="connectionFactory"
>> ref="jmsFactory"/>
>> <property name="defaultDestinationName"
>> value="demo.org.servicemix.result"/>
>>                             <property name="pubSubDomain"
>> value="true"/>
>>                           </bean>
>>                         </property>
>>                     </bean>
>>                   </sm:component>
>>                 </sm:activationSpec>
>>                 </sm:activationSpecs>
>>         </sm:container>
>>
>>         <!-- the JCA container -->
>>         <bean id="jencks" class="org.jencks.JCAContainer"
>>                 singleton="true">
>>
>>                 <!-- lets use the default configuration of work
>> manager
>> and transaction
>> manager-->
>>                 <property name="bootstrapContext">
>>                         <bean
>>                                 class="
>> org.jencks.factory.BootstrapContextFactoryBean">
>>                                 <property name="threadPoolSize"
>> value="25"
>> />
>>                         </bean>
>>                 </property>
>>
>>                 <!-- the JCA Resource Adapter -->
>>                 <property name="resourceAdapter">
>>                         <bean id="activeMQResourceAdapter"
>>                                 class="
>> org.apache.activemq.ra.ActiveMQResourceAdapter" singleton="true">
>>                                 <property name="serverUrl"
>>                                         value="tcp://localhost:
>> 61616" />
>>                         </bean>
>>                 </property>
>>         </bean>
>>
>>         <!-- message broker -->
>>         <bean id="broker" class="
>> org.apache.activemq.xbean.BrokerFactoryBean">
>>                 <property name="config"
>> value="classpath:activemq.xml" />
>>         </bean>
>>
>>         <bean id="transactionContextManager"
>>                 class="
>> org.jencks.factory.TransactionContextManagerFactoryBean"/>
>>         <bean id="transactionManager"
>>                 class="
>> org.jencks.factory.GeronimoTransactionManagerFactoryBean" />
>>
>>         <bean id="jmsFactory"
>>
>> class="org.apache.activemq.pool.PooledConnectionFactory">
>>                 <property name="connectionFactory">
>>                         <bean class="
>> org.apache.activemq.ActiveMQConnectionFactory">
>>                                 <property name="brokerURL">
>>
>>                                         <value>tcp://localhost:
>> 61616</value>
>>                                 </property>
>>                         </bean>
>>                 </property>
>>         </bean>
>>
>> </beans>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/run-error-tf2224917.html#a6165202
>> Sent from the ServiceMix - User forum at Nabble.com.
>>
>>
>
>
> --
> Cheers,
> Guillaume Nodet




--
Cheers,
Guillaume Nodet

Reply via email to