我有一个jms连接设置,它在我的类路径上的jndi.properties文件中定义,我在本地开发环境中用它连接到ActiveMQ。我想将此文件重命名为“activemq.jndi.properties”,因为我计划为WebsphereMQ设置另一个jms连接设置(比如webshperemq.jndi.properties)。但是到目前为止,我在applicationContext.xml中告诉spring以查看activemq.jndi.properties并没有成功。
以下是我的applicationContext.xml的片段,适用于jndi.properties
<!-- Define how to connect to the Message Queueing system -->
<bean id="connectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="${jms.connectionFactory}" />
<property name="resourceRef" value="true" />
</bean>
<bean id="defaultDestination" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="${jms.topic}" />
<property name="resourceRef" value="true" />
</bean>
<!-- Define a connection template that links to the factory -->
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="connectionFactory" />
<property name="defaultDestination" ref="defaultDestination" />
<property name="receiveTimeout" value="6000" />
</bean>
$ {jms.connectionFactory}和$ {jms.topic}都是从maven过滤掉的。关于需要在applicationContext.xml中更改哪些内容以使其从activemq.jndi.properties加载的任何输入将非常感激。
谢谢!
答案 0 :(得分:0)
好吧,我想你应该配置maven资源,所以根据配置文件使用另一个配置文件而不是更改Spring配置文件中的任何内容。
例如:
<profiles>
<profile>
<id>local</id>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>jndi.properties</exclude>
</excludes>
</resource>
</resources>
</build>
</profile>
<profile>
<id>webshpere</id>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>webshperemq.jndi.properties</exclude>
</excludes>
</resource>
</resources>
</build>
</profile>
</profiles>