Results 1 to 1 of 1

Thread: JMS error: can not send into foreign destinations

  1. #1
    Join Date
    May 2010
    Posts
    1

    Default JMS error: can not send into foreign destinations

    Hi, I use Spring-configured jms template with tibco jms library. I get jms connection factory and topic with JNDI and these objects are not null. But when I try to send message or add listener I get this exception:

    For listener:

    Code:
    Exception in thread "main" org.springframework.jms.InvalidDestinationException: Can not send into foreign destinations; nested exception is javax.jms.InvalidDestinationException: Can not send into foreign destinations
        at org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:277)
        at org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:168)
        at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:474)
        at org.springframework.jms.core.JmsTemplate.receiveSelected(JmsTemplate.java:700)
        at org.springframework.jms.core.JmsTemplate.receive(JmsTemplate.java:682)
        at org.springframework.jms.core.JmsTemplate.receive(JmsTemplate.java:674)
    For sender:

    Code:
    Exception in thread "main" org.springframework.jms.InvalidDestinationException: Invalid or foreigndestination; nested exception is javax.jms.InvalidDestinationException: Invalid or foreigndestination
        at org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:277)
        at org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:168)
        at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:474)
        at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:539)
        at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:531)
        at com.company.test.Test.main(Test.java:60)
    Caused by: javax.jms.InvalidDestinationException: Invalid or foreigndestination
        at com.tibco.tibjms.TibjmsxSessionImp.createProducer(TibjmsxSessionImp.java:4275)
        at org.springframework.jms.core.JmsTemplate.doCreateProducer(JmsTemplate.java:968)
        at org.springframework.jms.core.JmsTemplate.createProducer(JmsTemplate.java:949)
        at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:568)
        at org.springframework.jms.core.JmsTemplate$3.doInJms(JmsTemplate.java:541)
        at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:471)
        ... 3 more
    Client app is working with the same topic without problems (so jms server is running). Do you have any ideas? I read about this exception in javadoc, but can't find how to understand the root issue and fix it. Thanks

    JMS-related part of config:

    Code:
    <bean id="JmsFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
              <property name="jndiName" value="${jms.factory}"/>
              <property name="proxyInterface" value="javax.jms.TopicConnectionFactory" />
              <property name="lookupOnStartup" value="false" />
              <property name="jndiEnvironment">
                <props>
                  <prop key="java.naming.provider.url">${jms.namingProvider}</prop>
                  <prop key="java.naming.factory.initial">${jms.namingFactory}</prop>
                  <prop key="java.naming.referral">${jms.namingReferral}</prop>
                  <prop key="java.naming.security.credentials">${jms.securityCredentials}</prop>
                  <prop key="java.naming.security.principal">${jms.securityPrincipal}</prop>
                </props>
              </property>
          </bean>
    
            <bean id="JmsTopic" class="org.springframework.jndi.JndiObjectFactoryBean">
              <property name="jndiName" value="${jms.topic}"/>
              <property name="proxyInterface" value="javax.jms.Topic" />
              <property name="lookupOnStartup" value="false" />
              <property name="jndiEnvironment">
                <props>
                  <prop key="java.naming.provider.url">${jms.namingProvider}</prop>
                  <prop key="java.naming.factory.initial">${jms.namingFactory}</prop>
                  <prop key="java.naming.referral">${jms.namingReferral}</prop>
                  <prop key="java.naming.security.credentials">${jms.securityCredentials}</prop>
                  <prop key="java.naming.security.principal">${jms.securityPrincipal}</prop>
                </props>
              </property>
          </bean>
    
          <bean id="UserCredentialsConnectionFactory"
            class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">
            <property name="targetConnectionFactory">
              <ref bean="JmsFactory" />
            </property>
            <property name="username" value="${jms.user}" />
            <property name="password" value="${jms.password}" />
          </bean>
    
          <bean id="JmsTemplate"
            class="org.springframework.jms.core.JmsTemplate">
            <property name="connectionFactory"
              ref="UserCredentialsConnectionFactory" />
            <property name="defaultDestination">
                <ref bean="JmsTopic"/>
    I don't have a problem with connection to this jms topic with standard jms procedure like this: http://onjava.com/pub/a/onjava/excer...ex.html?page=2
    Do you have any ideas? Thanks!
    Last edited by lololo; May 24th, 2010 at 02:42 PM.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •