我試圖在WebLogic 10.3.5上創建一個MDB(EJB 3.0)。在外部AMQ服務器上收聽隊列。經過許多工作和教程的組合,我在webLogic上部署時遇到以下錯誤。將WebLogic MDB配置爲偵聽外部AMQ服務器
[EJB:015027]消息驅動的EJB是事務性的,但JNDI名稱引用了JMS連接工廠:ActiveMQXAConnectionFactory不是JMS XA連接工廠。
這裏是工作的簡要我做:
我已經加入到我的WLS類路徑相應的庫(以下這個tuturial http://amadei.com.br/blog/index.php/connecting-weblogic-and-activemq),我創建了相應的JMS模塊,在本教程中指出。我最初使用ActiveMQConnectionFactory和ActiveMQXAConnectionFactory後,我也忽略了jms。記法只是簡單地將名稱命名爲testQueue。
然後用下面的結構創建一個簡單的MDB。 我明確定義了「connectionFactoryJndiName」屬性,因爲否則它會假定未找到WebLogic連接工廠,然後引發錯誤。
@MessageDriven(
activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "testQueue"),
@ActivationConfigProperty(propertyName = "connectionFactoryJndiName", propertyValue = "ActiveMQXAConnectionFactory")
},
mappedName = "testQueue")
public class ROMELReceiver implements MessageListener {
/**
* Default constructor.
*/
public ROMELReceiver() {
// TODO Auto-generated constructor stub
}
/**
* @see MessageListener#onMessage(Message)
*/
public void onMessage(Message message) {
System.out.println("Message received");
}
}
在這一點上,我堅持上面提到的錯誤。儘管我使用ActiveMQXAConnectionFactory而不是簡單的ActiveMQConnectionFactory,但Web邏輯服務器中的JNDI資源樹顯示org.apache.activemq.ActiveMQConnectionFactory作爲我配置的連接工廠的類。
我錯過了什麼?或者這是連接WebLogic與AMQ的完全錯誤的方式?
在此先感謝。
您使用的是什麼版本的ActiveMQ? –
我正在使用ActiveMQ 5.8 –