2

当我收到此错误时,我正在尝试使用 Spring 连接到 Tibco Ems 主题。

这是配置:

    <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

4 回答 4

5

JMS 规范将其定义为

当提供者不理解目标或不再有效时,必须引发此异常。

通常这意味着目标的名称无效,例如传递给的参数

Session.createQueue(String qName)

(编辑:或在 JNDI 中定义)不符合提供者命名约定或不存在,偶尔它可以用于其他原因(例如,尝试使用已关闭的 TemporaryQueue)。我会仔细检查您的配置以确保您指定了正确的名称,很可能在某处存在错误和/或您正在尝试与 EMS 约定不匹配的东西。

于 2011-08-01T16:54:53.957 回答
2

我也在寻找解决方案,因为我面临同样的问题。

我的 EMS 环境有问题,我的 EMS 环境没有一个主题。

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

以下是步骤:

  1. 启动 TIBCO EMS 服务器。

  2. 使用管理员用户登录 TIBCO EMS 管理员工具。

  3. 连接后,运行以下命令以检查可用主题。

    显示主题

  4. 您可以看到名称为“>”的主题不存在

  5. 使用以下命令创建一个主题。

    创建主题 >

  6. 现在尝试使用您的代码连接您的动态主题,您应该能够连接到 EMS 环境并可以创建动态主题。

可能这也可以帮助你。

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

于 2014-08-25T15:13:41.357 回答
1

似乎您正在引用一个不存在的目标。也就是说,名称错误。也许是错误的 JNDI 名称前缀?或者使用 JNDI 名称而不是 EMS 队列名称?或相反亦然。抱歉,我已经有一段时间没有与 EMS 合作了。

于 2011-08-01T16:38:09.683 回答
0

在 tibco 下的 ems 文件夹中查找 queues.conf 文件,并使用“>”启用动态队列创建。这为我解决了错误。

于 2018-08-08T04:59:30.360 回答