在JavaEE环境下,如何通过JNDI获得JMS管理对象ConnectionFactory和Destination?急急急急!!!!

在JavaEE环境下,如何通过JNDI获得JMS管理对象ConnectionFactory和Destination?急急急急!!!!,第1张

你说的javaee环境还真抽象。
如果是用的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);


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10792871.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-11
下一篇2023-05-11

发表评论

登录后才能评论

评论列表(0条)

    保存