2011-04-13 29 views
1

我試圖在war中部署weblogic 10.3上的Spring 3.0.5 messageListener,並且無法使其工作。Spring 3.0在weblogic 10.3上的messageListener - 錯誤「原因:[JMSClientExceptions:055142]外部目標」

我已經在weblogic上創建了一個簡單的jms quque,但它看起來像weblogic認爲我試圖連接作爲外部客戶端,即使一切都是本地的?

[WARN] JMS消息偵聽器調用程序的設置失敗,目標爲'System Module!Test Queue' - 嘗試恢復。原因:JMSClientExceptions:055142]國外目的地,系統模塊測試隊列

這裏的

<!-- connection factory --> 
    <jee:jndi-lookup id="jmsConnectionFactory" jndi-name="weblogic.jms.ConnectionFactory" 
    expose-access-context="true" /> 

    <!-- weblogic jms queue -->  
    <jee:jndi-lookup id="testQueue" jndi-name="jms.testQueue" expose-access-context="true"/> 

    <!-- my onMessage listener bean -->  
    <bean id="jobNotificationQueueListener" class="com.xxx.component.jms.JobNotificationQueueListener" /> 

    <!-- spring container --> 
    <bean id="jobNotificationQueueContainer" 
    class="org.springframework.jms.listener.DefaultMessageListenerContainer"> 
     <property name="connectionFactory" ref="jmsConnectionFactory" /> 
     <property name="destination" ref="testQueue" /> 
     <property name="messageListener" ref="jobNotificationQueueListener" /> 
     <property name="sessionAcknowledgeModeName" value="AUTO_ACKNOWLEDGE" /> 
     <property name="sessionTransacted" value="true" /> 
    </bean> 

有人見過這個我的Spring XML!?

回答

1

此錯誤消息並不表示您嘗試連接爲「外部客戶端」。 WebLogic認爲您正在嘗試連接到不同的外部目標。

你試圖設置什麼類型的隊列?有些事情可以嘗試: 1)嘗試瀏覽JNDI樹到目的地以確認其存在並確認類型正確 2)確認您已創建JMS服務器並將其作爲目標服務器 3)確認您擁有正確的隊列定位

UPDATE:我能夠重現和解決這個問題。在我的ApplicationContext的文件我曾經有過這樣的配置:

<jee:jndi-lookup id="eventQueue" jndi-name="${jms.event.queue.name}" expose-access-context="true"/> 

我把它改爲:

<jee:jndi-lookup id="eventQueue" jndi-name="${jms.event.queue.name}"/> 

,它是工作的罰款,而不是現在不斷拋出的錯誤。

+0

它只是一個標準隊列,最初我試圖連接到一個外部隊列,但沒有工作,所以我設置了一個本地隊列,這是我現在被卡住的地方。 – alanl 2011-04-13 15:14:34

+0

我還構建了一個簡單的ejb mdb偵聽器,並在本地和遠程隊列上測試它,並且它工作正常。 – alanl 2011-04-13 15:27:04

+0

我查找了JNDI樹,隊列(對我來說看起來OK)。 綁定名稱:\t jms.testQueue Class:\t weblogic.jms.common.DestinationImpl – alanl 2011-04-13 15:29:26

0

外部JMS在類路徑中需要它們的客戶端庫(即Websphere MQ需要mq.jar和兩個以上),那麼應該配置連接工廠類(否則將使用默認的Weblogic)等等。

換句話說,這可能是一個配置問題,而不是編程。

+0

但它不是外國人。隊列和監聽器在一個weblogic實例上。 – alanl 2011-04-13 15:37:38

相關問題