1
我试图构建一个MQ生产者发送消息到ActiveMQ队列。问题是我不希望实现针对ActiveMQ。我实际上是在开发环境中进行ActiveMQ发送,而在生产中,应用程序服务器将使用其他的东西。我打算使用Maven创建2个配置文件,这些配置文件将根据给定的配置文件过滤资源。Spring + JMS + ActiveMQ不依赖于ActiveMQ
我开始玩JNDI,但我卡住了...我尝试了很多选择,但没有一个是可行的。 现在,我的Spring配置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添加它。我不知道如何添加它,因为这不是一个web应用程序,所以没有context.xml。
有人可以帮助我在正确的方向吗?
谢谢,我会看看你给我的链接!我不受限于依赖级别。所以我可以添加依赖到ActiveMQ。例如,当我使用“本地”配置文件构建时,我需要将消息发送到ActiveMQ。如果未使用“本地”配置文件构建,请将消息发送到JNDI配置队列(公司weblogic队列)。 –