Hi,
I wonder if anybody out there would like to look at this ServiceMix 1.0
configuration and tell me what I've done wrong.
This configuration is supposed to set up a JMS receiver (listening on
queue/Q1) which routes to a JMS sender (sending to queue/Q2). The
QueueConnectionFactory is queue/QCF. Another complication is I am using
my own vendor JNDI.
Externally, I have already configured Queues and JNDI and I already have
working JMS clients to sit at the fringes of this configuration.
I am kind of working from a Spring JMS configuration I found here:
http://www-128.ibm.com/developerworks/web/library/wa-spring4/?ca=drs-tp4005
but really the main problem is I am new to Spring so I was always going
to come to grief sooner or later.
BTW, is there any Spring logging I can somehow enable that will help
understand is going on?
Thanks in advance for any help.
Peter.
Here is my servicemix.xml
---------
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:my="http://servicemix.org/demo/">
<!-- the JBI container -->
<container id="jbi">
<property name="createMBeanServer" value="true"/>
<property name="dumpStats" value="true"/>
<property name="statsInterval" value="10"/>
<components>
<!-- 1st. Subscribe to a JMS destination Q1 -->
<component id="inputReceiver" service="my:inputReceiver"
class="org.servicemix.components.jms.JmsReceiverComponent"
destinationService="my:outputSender">
<property name="template">
<bean class="org.springframework.jms.core.JmsTemplate102">
<property name="connectionFactory"
ref="myQueueConnectionFactory"/>
<property name="defaultDestinationName"
value="java:comp/env/jms/queue/Q1"/>
<property name="pubSubDomain" value="false"/>
</bean>
</property>
</component>
<!-- 2nd. Publish the result to a JMS destination Q2 -->
<component id="outputSender" service="my:outputSender"
class="org.servicemix.components.jms.JmsSenderComponent">
<property name="template">
<bean class="org.springframework.jms.core.JmsTemplate102">
<property name="connectionFactory"
ref="myQueueConnectionFactory"/>
<property name="defaultDestinationName"
value="java:comp/env/jms/queue/Q2"/>
<property name="pubSubDomain" value="false"/>
<property name="explicitQosEnabled" value="true"/>
<property name="timeToLive" value="60000"/>
</bean>
</property>
</component>
</components>
<!-- Use our JNDI - The JMS Administered objects are already in here -->
<bean id="myJndi" class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop
key="java.naming.factory.initial">com.fujitsu.interstage.j2ee.jndi.InitialContextFactoryForClient</prop>
</props>
</property>
</bean>
<!-- The QueueConnectionFactory is in the JNDI -->
<bean id="myQueueConnectionFactory"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate" ref="myJndi"/>
<property name="jndiName" value="java:comp/env/jms/queue/QCF"/>
</bean>
<!-- Needed for SpringJBIContainer? -->
<bean id="transactionManager"
class="org.jencks.factory.TransactionManagerFactoryBean"/>
</container>
</beans>
---------
And here are my errors:
Loading ServiceMix from file: servicemix.xml
9/11/2005 14:35:46
org.springframework.beans.factory.xml.XmlBeanDefinitionReader
loadBeanDefinitions
INFO: Loading XML bean definitions from file
[D:\starteam\j2ee14\ESB\proj-prototype\MyExample\jms-binding\servicemix.xml]
9/11/2005 14:35:56
org.springframework.context.support.AbstractRefreshableApplicationContext
refreshBeanFactory
INFO: Bean factory for application context
[org.springframework.context.support.FileSystemXmlApplicationContext;hashCode=8785225]:
org.springframework.beans.factory.support.DefaultListableBeanFactory
defining beans [jbi]; root of BeanFactory hierarchy
9/11/2005 14:35:56
org.springframework.context.support.AbstractApplicationContext refresh
INFO: 1 beans defined in application context
[org.springframework.context.support.FileSystemXmlApplicationContext;hashCode=8785225]
9/11/2005 14:35:56 org.springframework.core.CollectionFactory <clinit>
INFO: JDK 1.4+ collections available
9/11/2005 14:35:56 org.springframework.core.CollectionFactory <clinit>
INFO: Commons Collections 3.x available
9/11/2005 14:35:56
org.springframework.context.support.AbstractApplicationContext
initMessageSource
INFO: Unable to locate MessageSource with name 'messageSource': using
default
[EMAIL PROTECTED]
9/11/2005 14:35:56
org.springframework.context.support.AbstractApplicationContext
initApplicationEventMulticaster
INFO: Unable to locate ApplicationEventMulticaster with name
'applicationEventMulticaster': using default
[EMAIL PROTECTED]
9/11/2005 14:35:56
org.springframework.beans.factory.support.DefaultListableBeanFactory
preInstantiateSingletons
INFO: Pre-instantiating singletons in factory
[org.springframework.beans.factory.support.DefaultListableBeanFactory
defining beans [jbi]; root of BeanFactory hierarchy]
9/11/2005 14:35:56
org.springframework.beans.factory.support.AbstractBeanFactory getBean
INFO: Creating shared instance of singleton bean 'jbi'
9/11/2005 14:36:01
org.springframework.beans.factory.support.AbstractBeanFactory
destroySingletons
INFO: Destroying singletons in factory
{org.springframework.beans.factory.support.DefaultListableBeanFactory
defining beans [jbi]; root of BeanFactory hierarchy}
Caught: org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'org.springframework.jms.core.JmsTemplate102'
defined in file
[D:\starteam\j2ee14\ESB\proj-prototype\MyExample\jms-binding\servicemix.xml]:
Can't resolve reference to bean 'myQueueConnectionFactory' while setting
property 'connectionFactory'; nested exception is
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean
named 'myQueueConnectionFactory' is defined:
org.springframework.beans.factory.support.DefaultListableBeanFactory
defining beans[jbi]; root of BeanFactory hierarchy
org.springframework.beans.factory.BeanCreationException: Error creating
bean with name 'org.springframework.jms.core.JmsTemplate102' defined in
file
[D:\starteam\j2ee14\ESB\proj-prototype\MyExample\jms-binding\servicemix.xml]:
Can't resolve reference to bean 'myQueueConnectionFactory' while setting
property 'connectionFactory'; nested exception is
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean
named 'myQueueConnectionFactory' is defined:
org.springframework.beans.factory.support.DefaultListableBeanFactory
defining beans [jbi]; root of BeanFactory
hierarchyorg.springframework.beans.factory.NoSuchBeanDefinitionException:
No bean named 'myQueueConnectionFactory' is defined:
org.springframework.beans.factory.support.DefaultListableBeanFactory
defining beans [jbi]; root of BeanFactory hierarchy
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:351)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getMergedBeanDefinition(AbstractBeanFactory.java:640)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:147)
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:176)
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:105)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:920)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:731)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:340)
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBeanDefinition(BeanDefinitionValueResolver.java:147)
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:96)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:920)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:731)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:340)
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBeanDefinition(BeanDefinitionValueResolver.java:147)
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:96)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:920)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:731)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:340)
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBeanDefinition(BeanDefinitionValueResolver.java:147)
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:96)
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:193)
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:109)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:920)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:731)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:340)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:223)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:147)
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:277)
at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:312)
at
org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:82)
at
org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:67)
at
org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:58)
at org.servicemix.Main.main(Main.java:76)
[end]