2011-08-01 29 views
2

我嘗試使用Spring連接到Tibco Ems主題,當我收到此錯誤時。有誰知道到底是什麼javax.jms.InvalidDestinationException:不允許創建目標意味着什麼?

下面是配置:

<jms:listener-container connection-factory="Tcf" acknowledge="auto" > 
    <jms:listener id="ListenerContainer" destination="######" ref="MessageListener" /> 
</jms:listener-container> 

<bean id="MessageListener" class="com.dcc.jms.listeners.TestListener"></bean> 


<!-- JNDI Template --> 
<bean id="JndiTemplate" class="org.springframework.jndi.JndiTemplate"> 
    <property name="environment"> 
     <props> 
      <prop key="java.naming.provider.url">#</prop> 
      <prop key="java.naming.factory.url.pkgs">com.sun.jndi.ldap </prop> 
      <prop key="java.naming.factory.initial">com.sun.jndi.ldap.LdapCtxFactory</prop> 
     </props> 
    </property> 
</bean> 

<!-- CONNECTION FACTORY --> 
<bean id="Tcf" 
    class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter"> 
    <property name="username" value="" /> 
    <property name="password" value="" /> 
    <property name="targetConnectionFactory"> 
     <bean class="org.springframework.jndi.JndiObjectFactoryBean"> 
      <property name="jndiTemplate" ref="JndiTemplate" /> 
      <property name="jndiName" value="#" /> 
     </bean> 
    </property> 
</bean> 

究竟是什麼意思?我的細節或我的配置是否錯誤?

回答

4

JMS規範將其定義爲

當目的地或者不是由提供者理解或不再有效此異常必須被拋出。

通常意味着目的地的名稱無效,例如,參數傳遞給

Session.createQueue(String qName) 

(編輯:或者在JNDI定義)不符合供應商的命名約定或不存在,偶爾也可以用於其他原因(例如嘗試使用已關閉了一個TemporaryQueue )。我會仔細檢查你的配置,以確保你已經指定了正確的名稱,很可能在某處存在錯誤,或者你嘗試的東西與EMS慣例不符。

1

看來你正在引用一個不存在的目的地。那是一個名字錯誤。也許錯誤的JNDI名稱前綴?或者使用JNDI名稱而不是EMS隊列名稱?或相反亦然。對不起,我從事EMS工作已有一段時間了。

2

我也在尋找解決方案,因爲我面臨同樣的問題。

我的EMS環境出現問題,我的EMS環境沒有一個主題。

我搜索了很多答案,下面是我得到的步驟。

下面是步驟:

  1. 啓動TIBCO EMS服務器。

  2. 使用admin用戶登錄到TIBCO EMS管理員工具。

  3. 一旦連接,然後運行下面的命令來檢查可用的主題。

    顯示主題

  4. 你可以看到,有沒有可用的名爲「>」話題

  5. 下面的命令創建一個話題。

    製造話題>

  6. 現在試着用你的代碼,你應該能夠連接到EMS環境,可以創建動態主題,以連接您的動態話題。

也許這可以幫助你。

來源的信息: http://aajsearch.com/556/connecting-environment-allowed-destination-anyone-please?show=557#a557

+3

Panky嗨!感謝您發佈答案並幫助使StackOverflow變得更好。只是提高答案質量的一種快速方法,您能否快速預覽鏈接中的相關信息?有可能會有一天,404鏈接,然後你的答案變得不那麼有用。 – OldTinfoil

+0

嗨邁克!好建議:) – Panky