从Spring启动应用程序连接JBOSS EAP 7中配置为JNDI的现有JMS可以通过以下步骤实现:
<bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
<property name="targetConnectionFactory">
<bean class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate">
<bean class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop key="java.naming.factory.initial">org.jboss.naming.remote.client.InitialContextFactory</prop>
<prop key="java.naming.provider.url">http-remoting://localhost:8080</prop>
<prop key="java.naming.security.principal">username</prop>
<prop key="java.naming.security.credentials">password</prop>
</props>
</property>
</bean>
</property>
<property name="jndiName" value="java:jboss/exported/jms/ConnectionFactory"/>
</bean>
</property>
</bean>
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="connectionFactory"/>
</bean>
在上述配置中,jndiTemplate
是用于与JNDI服务进行通信的模板,通过java.naming.factory.initial
和java.naming.provider.url
指定了JNDI服务的连接信息。java.naming.security.principal
和java.naming.security.credentials
是可选的,用于进行身份验证。
jndiName
属性指定了配置在JBOSS EAP 7中的JMS连接工厂的JNDI名称。
@Autowired
private JmsTemplate jmsTemplate;
public void sendMessage() {
jmsTemplate.send("queueName", new MessageCreator() {
public Message createMessage(Session session) throws JMSException {
return session.createTextMessage("Hello, World!");
}
});
}
public String receiveMessage() {
Message message = jmsTemplate.receive("queueName");
if (message instanceof TextMessage) {
return ((TextMessage) message).getText();
}
return null;
}
在上述代码中,jmsTemplate
会自动使用配置的JMS连接工厂连接到JBOSS EAP 7,并发送/接收消息到/从指定的队列(queueName
)。
注意:以上代码仅供参考,实际情况中可能需要根据具体环境进行调整。
对于JBOSS EAP 7配置为JNDI的现有JMS的优势和应用场景,可以简单总结如下:
优势:
应用场景:
关于腾讯云相关产品和产品介绍链接地址,请参考腾讯云官方文档和网站。
领取专属 10元无门槛券
手把手带您无忧上云