【发布时间】:2014-05-13 13:13:30
【问题描述】:
我正在尝试构建一个向 ActiveMQ 队列发送消息的 MQ 生产者。问题是我不希望实现特定于 ActiveMQ。我实际上是在开发环境中进行 ActiveMQ 发送,而在生产中,应用程序服务器将使用其他东西。我打算使用 Maven 创建 2 个配置文件,它们将根据给定的配置文件过滤资源。
我开始使用 JNDI,但我被卡住了……我尝试了很多选择,但没有一个可行。 目前,我的 spring config xml 是这样的:
<jee:jndi-lookup id="mqConnectionFactory" jndi-name="java:comp/env/jms/mqConnectionFactory" />
<bean id="jmsJndiTemplate" class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop key="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</prop>
<prop key="java.naming.provider.url">vm://localhost</prop>
</props>
</property>
</bean>
<bean id="ismeJmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="defaultDestination" ref="ismeJmsDestination"/>
<property name="connectionFactory" ref="mqConnectionFactory"/>
</bean>
<bean id="ismeJmsDestination" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate" ref="jmsJndiTemplate"/>
<property name="jndiName" value="dynamicQueues/FOO.BAR"/>
</bean>
mqConnectionFactory 找不到,因为我没有在 JNDI 中添加它。我不知道如何实际添加它,因为这不是 webapp,所以没有 context.xml。
有人可以帮助我朝着正确的方向前进吗?
【问题讨论】:
标签: spring maven jms activemq spring-jms