0

我有一个 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 加载的任何输入都将不胜感激。

谢谢!

4

1 回答 1

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>
于 2012-05-29T06:17:17.233 回答