3 Replies Latest reply on Aug 12, 2008 1:01 AM by jferraro1

    Configuring a non-JBoss JMS Provider (Weblogic) in JBoss?

    jferraro1

      I am trying to configure access to a non-JBoss remote JMS Provider that I have to consume from JBoss. The JMS Provider is Weblogic and I am trying to subscribe to a JMS topic. On the JBoss side, I am using an EJB3 - MDB as the subscriber to the remote Weblogic topic. I am having difficulty configuring the Weblogic JMS Provider in JBoss. The JBoss configuration manual 7.4.3 Integrating non-JBoss JMS Providers is not very clear. I think my problem is around the QueueFactoryRef definition as I am trying to subscribe to a topic. I have tried to follow the Websphere JMS Provider example to some extent but that does not seem to work. I get the following error message (below) at JBoss startup. Under the error message are my configuration scripts. Might anyone have any ideas - I was directed to this forum from the JBoss Messaging forum as they believe this to be an integration issue?

      
      Console Error Message
      ---------------------------
      adapter.jms.inflow.JmsActivationSpec@a50a00(ra=org.jboss.resource.adapter.jms.Jm
      sResourceAdapter@1fc7299 destination=foresight/ForeSightJMSTextReportsTopic isTo
      pic=true tx=true durable=false reconnect=10 provider=java:/ForeSightJMSProvider
      user=null maxMessages=1 minSession=1 maxSession=15 keepAlive=60000 useDLQ=true D
      LQHandler=org.jboss.resource.adapter.jms.inflow.dlq.GenericDLQHandler DLQJndiNam
      e=queue/DLQ DLQUser=null DLQMaxResent=5)
      java.lang.ClassCastException: Object at 'foresight' in context {java.naming.fact
      ory.initial=org.jnp.interfaces.NamingContextFactory, java.naming.factory.url.pkg
      s=org.jboss.naming:org.jnp.interfaces:org.jboss.naming:org.jnp.interfaces} is no
      t an instance of [class=javax.jms.QueueConnectionFactory classloader=org.jboss.m
      x.loading.UnifiedClassLoader3@11ff436{ url=null ,addedOrder=2} interfaces={inter
      face=javax.jms.ConnectionFactory classloader=org.jboss.mx.loading.UnifiedClassLo
      ader3@11ff436{ url=null ,addedOrder=2}}] object class is [class=$Proxy13 classlo
      ader=org.jboss.mx.loading.UnifiedClassLoader3@11ff436{ url=null ,addedOrder=2} i
      nterfaces={interface=javax.naming.Context classloader=null}]
      at org.jboss.util.naming.Util.checkObject(Util.java:329)
      at org.jboss.util.naming.Util.lookup(Util.java:216)
      
      
      
      
      Configuration Scripts (Running jboss-4.2.2.GA)
      -------------------------------------------------
      
      jboss-service.xml
      ------------------------
       <mbean code="org.jboss.naming.ExternalContext"
       name="DefaultDomain:service=ExternalContext,jndiName=foresight">
       <attribute name="JndiName">foresight</attribute>
       <attribute name="Properties">
       java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
       java.naming.provider.url=t3://foresight-prod.co.ihc.com:7001
       java.naming.security.authentication=none
       </attribute>
       <attribute name="InitialContext">javax.naming.InitialContext</attribute>
       </mbean>
      
      
      jms-ds.xml
      ------------------------
      
      <connection-factories>
       <mbean code="org.jboss.jms.jndi.JMSProviderLoader"
       name="jboss.mq:service=JMSProviderLoader,name=ForeSightJMSProvider">
       <attribute name="ProviderName">ForeSightJMSProvider</attribute>
       <attribute name="ProviderAdapterClass">org.jboss.jms.jndi.JNDIProviderAdapter</attribute>
       <attribute name="QueueFactoryRef">foresight</attribute>
       <attribute name="TopicFactoryRef">foresight</attribute>
       </mbean>
      
       <no-tx-connection-factory>
       <jndi-name>ForeSightJms</jndi-name>
       <rar-name>jms-ra.rar</rar-name>
       <connection-definition>org.jboss.resource.adapter.jms.JmsConnectionFactory</connection-definition>
       <config-property name="SessionDefaultType" type="java.lang.String">javax.jms.Topic</config-property>
       <config-property name="JmsProviderAdapterJNDI" type="java.lang.String">java:/ForeSightJMSProvider</config-property>
       <max-pool-size>20</max-pool-size>
       </no-tx-connection-factory>
      </connection-factories>