
如果是用的jboss:
那么jboss中可以配置jboss自己的jms。
在有些应用中,我们不需要在程序启动的时候就启动JMS服务;而且,我们每次访问的JMS服务器有可能都不一样,这个时候就需要一个可动态配置JMS ConnectionFactory 。
<!-- JMS -->
<!-- JNDI Template -->
<bean id="jndiTemplate" class="orgspringframeworkjndiJndiTemplate" lazy-init="true">
<property name="environment">
<props>
<prop key="javanamingfactoryinitial">orgjnpinterfacesNamingContextFactory</prop>
<prop key="javanamingfactoryurlpkgs">orgjbossnaming:orgjnpinterfaces</prop>
<prop key="javanamingproviderurl">localhost:1099</prop>
</props>
</property>
</bean>
<!-- JMS Connection --> <bean id="jmsConnectionFactory" lazy-init="true" class="orgspringframeworkjndiJndiObjectFactoryBean">
<property name="proxyInterfaces" value="javaxjmsConnectionFactory" />
<property name="lookupOnStartup" value="false" />
<property name="jndiTemplate" ref="jndiTemplate" />
<property name="jndiName" value
tyle="color: rgb(0, 0, 255);">="ConnectionFactory" />
</bean>
<!-- userCredentialsConnection For JmsSecurity -->
<bean id="myConnectionFactory" lazy-init="true"
class="orgspringframeworkjmsconnectionUserCredentialsConnectionFactoryAdapter">
<property name="targetConnectionFactory" ref="jmsConnectionFactory" />
</bean>
我们可以通过代码来重新配置JMS服务器的IP和Security的用户名和密码
if (StringUtilsisNotEmpty(hostName)) {
JndiTemplate jndiTemplate = (JndiTemplate) thisfactorygetBean("jndiTemplate");
Properties props = jndiTemplategetEnvironment();
propssetProperty("javanamingproviderurl", hostName + ":1099");
}
UserCredentialsConnectionFactoryAdapter jmsUserAdapter = (UserCredentialsConnectionFactoryAdapter)
thisfactorygetBean("myConnectionFactory");
jmsUserAdaptersetUsername(jmsUserName);
jmsUserAdaptersetPassword(jmsPassword);
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)