[
https://issues.apache.org/activemq/browse/AMQ-2212?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=51258#action_51258
]
Gary Tully commented on AMQ-2212:
---------------------------------
To use xbean to load an xml configuration, the spring dependencies need to be
included in the RAR. spring-core and spring-context
The classloader used by the BrokerXBeanContext needs to provide access to the
contents of the RAR.
Setting the thread context class loader for the thread that starts the broker
to the classoader that loads the ResourceAdapter makes this happen for weblogic
10 and works also on Jboss 5.
The default xml configuration file from the root of the RAR may not be
sufficient. It is reasonable to update this config and leave it in the RAR or
change the value of the BrokerXmlConfig property in the META-INF/ra.xml to
point to an external location.
It is possible to use the weblogic console to deploy a plan.xml and
contained/generated weblogic-ra.xml that will overide the BrokerXmlConfig to
allow an external config file to be generated, without modifying the RAR at all.
{code}<?xml version='1.0' encoding='UTF-8'?>
<weblogic-connector xmlns="http://www.bea.com/ns/weblogic/weblogic-connector"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-connector
http://www.bea.com/ns/weblogic/weblogic-connector/1.0/weblogic-connector.xsd">
<native-libdir></native-libdir>
<jndi-name>ActiveMQ</jndi-name>
<enable-access-outside-app>false</enable-access-outside-app>
<enable-global-access-to-classes>false</enable-global-access-to-classes>
<security></security>
<properties>
<property>
<name>BrokerXmlConfig</name>
<value>xbean:file:///tmp/broker-config.xml</value>
</property>
</properties>
<admin-objects>
....
{code}
> RAR on Weblogic: embedded broker fails to start with :
> org.springframework.beans.factory.BeanDefinitionStoreException: IOException
> parsing XML document from class path resource [broker-config.xml]; nested
> exception is java.io.FileNotFoundException: class
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: AMQ-2212
> URL: https://issues.apache.org/activemq/browse/AMQ-2212
> Project: ActiveMQ
> Issue Type: Bug
> Components: JCA Container
> Affects Versions: 5.2.0
> Reporter: Gary Tully
> Assignee: Gary Tully
> Fix For: 5.3.0
>
>
> {code}<Apr 16, 2009 10:21:12 PM IST> <Warning> <Socket> <BEA-000402> <There
> are: 5 active sockets, but the maximum number of socket reader threads
> allowed by the configuration is: 4. You may want to alter your
> configuration.>
> <Apr 16, 2009 10:21:53 PM IST> <Warning> <netuix> <BEA-423420> <Redirect is
> executed in begin or refresh action. Redirect url is
> /console/console.portal?_nfpb=true&_pageLabel=HomePage1.>
> <Apr 16, 2009 10:23:25 PM IST> <Warning> <Connector> <BEA-190155> <Compliance
> checking/validation of the resource adapter
> /Users/gtully/j2ee/bea/user_projects/domains/base_domain/servers/AdminServer/upload/activemq-rar-5.3-SNAPSHOT.rar
> resulted in the following warnings:
> The ra.xml <resourceadapter-class> class
> 'org.apache.activemq.ra.ActiveMQResourceAdapter' should implement
> java.io.Serializable but does not.>
> 2009-04-16 22:23:26,074 [ (self-tuning)'] DEBUG ActiveMQResourceAdapter
> - setting [password] property
> 2009-04-16 22:23:26,074 [ (self-tuning)'] DEBUG ActiveMQResourceAdapter
> - setting [useInboundSession] to: false
> 2009-04-16 22:23:26,075 [ (self-tuning)'] DEBUG ActiveMQResourceAdapter
> - setting [serverUrl] to: tcp://localhost:61616
> 2009-04-16 22:23:26,075 [ (self-tuning)'] DEBUG ActiveMQResourceAdapter
> - setting [userName] to: defaultUser
> <Apr 16, 2009 10:23:26 PM IST> <Warning> <WorkManager> <BEA-002919> <Unable
> to find a WorkManager with name activemq-rar-5.3-SNAPSHOT.rar. Dispatch
> policy activemq-rar-5.3-SNAPSHOT.rar will map to the default WorkManager for
> the application activemq-rar-5>
> 2009-04-16 22:23:26,432 [ActiveMQ Broker] DEBUG XBeanBrokerFactory
> - Now attempting to figure out the type of resource: broker-config.xml
> 2009-04-16 22:23:26,679 [ActiveMQ Broker] INFO ResourceXmlApplicationContext
> - Refreshing
> org.apache.xbean.spring.context.resourcexmlapplicationcont...@22886042:
> display name
> [org.apache.xbean.spring.context.resourcexmlapplicationcont...@22886042];
> startup date [Thu Apr 16 22:23:26 IST 2009]; root of context hierarchy
> 2009-04-16 22:23:27,409 [ActiveMQ Broker] INFO XBeanXmlBeanDefinitionReader
> - Loading XML bean definitions from class path resource [broker-config.xml]
> 2009-04-16 22:23:27,416 [ActiveMQ Broker] WARN ActiveMQResourceAdapter
> - Could not start up embeded ActiveMQ Broker 'xbean:broker-config.xml':
> IOException parsing XML document from class path resource
> [broker-config.xml]; nested exception is java.io.FileNotFoundException: class
> path resource [broker-config.xml] cannot be opened because it does not exist
> 2009-04-16 22:23:27,450 [ActiveMQ Broker] DEBUG ActiveMQResourceAdapter
> - Reason for: IOException parsing XML document from class path resource
> [broker-config.xml]; nested exception is java.io.FileNotFoundException: class
> path resource [broker-config.xml] cannot be opened because it does not exist
> org.springframework.beans.factory.BeanDefinitionStoreException: IOException
> parsing XML document from class path resource [broker-config.xml]; nested
> exception is java.io.FileNotFoundException: class path resource
> [broker-config.xml] cannot be opened because it does not exist
> at
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:349)
> at
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310)
> at
> org.apache.xbean.spring.context.ResourceXmlApplicationContext.loadBeanDefinitions(ResourceXmlApplicationContext.java:111)
> at
> org.apache.xbean.spring.context.ResourceXmlApplicationContext.loadBeanDefinitions(ResourceXmlApplicationContext.java:104)
> 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.xbean.spring.context.ResourceXmlApplicationContext.<init>(ResourceXmlApplicationContext.java:64)
> at
> org.apache.xbean.spring.context.ResourceXmlApplicationContext.<init>(ResourceXmlApplicationContext.java:52)
> at
> org.apache.activemq.xbean.XBeanBrokerFactory.createApplicationContext(XBeanBrokerFactory.java:96)
> at
> org.apache.activemq.xbean.XBeanBrokerFactory.createBroker(XBeanBrokerFactory.java:52)
> at
> org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:71)
> at
> org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:54)
> at
> org.apache.activemq.ra.ActiveMQResourceAdapter$1.run(ActiveMQResourceAdapter.java:78)
> Caused by: java.io.FileNotFoundException: class path resource
> [broker-config.xml] cannot be opened because it does not exist
> at
> org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:142)
> at
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:336)
> ... 13 more
> 2009-04-16 22:23:27,468 [ (self-tuning)'] DEBUG
> tiveMQManagedConnectionFactory - copying standard ResourceAdapter
> configuration properties
> 2009-04-16 22:23:27,468 [ (self-tuning)'] DEBUG
> tiveMQManagedConnectionFactory - setting [clientid] to: null
> 2009-04-16 22:23:27,468 [ (self-tuning)'] DEBUG
> tiveMQManagedConnectionFactory - setting [password] property
> 2009-04-16 22:23:27,468 [ (self-tuning)'] DEBUG
> tiveMQManagedConnectionFactory - setting [serverUrl] to: tcp://localhost:61616
> {code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.