1.在jboss的standalone.xml中加入activemq的资源适配器
<subsystem xmlns="urn:jboss:domain:resource-adapters:1.0">
<resource-adapters>
<resource-adapter>
<archive>
activemq-rar-5.7.0.rar
</archive>
<transaction-support>LocalTransaction</transaction-support>
<config-property name="ServerUrl">
tcp://192.168.1.116:61616
</config-property>
<connection-definitions>
<connection-definition class-name="org.apache.activemq.ra.ActiveMQManagedConnectionFactory" jndi-name="java:/ufisas/jmsf/queue/fromCedaAmqFactory" enabled="true" use-java-context="true" pool-name="ufis_amq_Pool" use-ccm="true"/>
</connection-definitions>
<admin-objects>
<admin-object class-name="org.apache.activemq.command.ActiveMQQueue" jndi-name="java:/ufisas/jms/queue/ToCedaAmq" enabled="true" use-java-context="true">
<config-property name="PhysicalName">
JCEDA_TO_CEDA
</config-property>
</admin-object>
<admin-object class-name="org.apache.activemq.command.ActiveMQQueue" jndi-name="java:/ufisas/jms/queue/FromCedaAmq" enabled="true" use-java-context="true">
<config-property name="PhysicalName">
CEDA_TO_JCEDA
</config-property>
</admin-object>
</admin-objects>
</resource-adapter>
</resource-adapters>
</subsystem>
2.编写MDB
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class BlBridgeMessageBean implements MessageListener {
private static final Logger LOG = LoggerFactory.getLogger(BlBridgeMessageBean .class);
public BlBridgeMessageBean () {
}
@Override
public void onMessage(Message inMessage) {
TextMessage msg;
try {
if (inMessage instanceof TextMessage) {
msg = (TextMessage) inMessage;
System.out.println("MESSAGE BEAN: Message received: " + msg.getText());
// _commandHandler.handleEvent(msg.getText());
} else {
LOG.warn("Message of wrong type: " + inMessage.getClass().getName());
}
} catch (JMSException e) {
LOG.error("JMSException " + e.getMessage());
} catch (Throwable te) {
LOG.error("JMSException Throwable " + te.getMessage());
}
}
}
3.将MDB配置到jboss-ejb3.xml中
<?xml version="1.1" encoding="UTF-8"?>
<jboss:ejb-jar xmlns:jboss="http://www.jboss.com/xml/ns/javaee"
xmlns:p="urn:ejb-pool:1.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee http://www.jboss.org/j2ee/schema/jboss-ejb3-2_0.xsd http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_1.xsd"
version="3.1" impl-version="2.0">
<enterprise-beans>
<message-driven>
<ejb-name>BlUfisBridgeMessageBean</ejb-name>
<ejb-class>com.ufis_as.ufisapp.server.mdb.BlUfisBridgeMessageBean</ejb-class>
<activation-config>
<activation-config-property>
<activation-config-property-name>destinationType</activation-config-property-name>
<activation-config-property-value>javax.jms.Queue</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>destination</activation-config-property-name>
<!-- activemq不支持jndi方式配置队列名 -->
<activation-config-property-value>CEDA_TO_JCEDA</activation-config-property-value>
</activation-config-property>
</activation-config>
</message-driven>
</enterprise-beans>
<interceptors>
<interceptor>
<interceptor-class>com.ufis_as.ufisapp.server.interception.HpTracingInterceptor</interceptor-class>
</interceptor>
</interceptors>
<assembly-descriptor>
<interceptor-binding>
<ejb-name>*</ejb-name>
<interceptor-class>com.ufis_as.ufisapp.server.interception.HpTracingInterceptor</interceptor-class>
</interceptor-binding>
</assembly-descriptor>
</jboss:ejb-jar>