Pregunta

Ahora tengo java código que comienza TIBCO JMS suscripción con varios pasos:

Properties props = new Properties();
        props.put("java.naming.provider.url", namingProvider);
        props.put("java.naming.factory.initial", namingFactory);
        props.put("java.naming.referral", namingReferral);
        props.put("java.naming.security.credentials", securityCredentials);
        props.put("java.naming.security.principal", securityPrincipal);

        context = new InitialContext(props);
        TopicConnectionFactory tfactory = (TopicConnectionFactory) context
                .lookup(url + topic + ":tcf");

        topicConnection = tfactory.createTopicConnection(user, password);
        topicConnection.setExceptionListener(exceptionListener);
        topicSession = topicConnection.createTopicSession(false,
                Session.AUTO_ACKNOWLEDGE);      
        subscriber = topicSession.createSubscriber(
                (Topic) context.lookup(url + topic + ":topic"),
                SELECTOR, true); 
        subscriber.setMessageListener(messageListener);
        topicConnection.start();

Quiero usar un muelle para la inicialización, pero no puedo encontrar la manera de configurar JMS en primavera utilizando contexto inicial. ¿Me pueden ayudar con esto? Gracias!

¿Fue útil?

Solución

Se puede intentar algo como esto para conseguir TopicConnectionFactory:

<bean id="tfactory" class="org.springframework.jndi.JndiObjectFactoryBean">
  <property name="jndiName" value="url/topic:tcf"/>
  <property name="jndiEnvironment">
    <props>
      <prop key="java.naming.provider.url">...</prop>
      <prop key="java.naming.factory.initial">...</prop>
      <prop key="java.naming.referral">...</prop>
      <prop key="java.naming.security.credentials">...</prop>
      <prop key="java.naming.security.principal">...</prop>
    </props>
  </property>
</bean>

Otros consejos

Amigos buen día,

Paso 1:

Al día de hoy tienes que estar registrado para utilizar https://download.tibco.com/tibco .

Se puede descargar una prueba del SEM en http://tap.tibco.com/storefront/trialware/tibco-enterprise- mensaje de servicio / prod15032.html . Una vez que instale el juicio, los frascos estarán en el ems directorio / 8,0 / lib.

Paso 2:

archivos jar Tibco no están disponibles @ Maven repositorio.

Reunir todos los archivos JAR de TIBCO TIBCO EMS instalables.

  1. jms.jar - Disponibles @ Maven repo
  2. tibjms.jar
  3. tibcrypt.jar (Para SSL)
  4. tibemsd_sec.jar
  5. tibjms.jar
  6. tibjmsadmin.jar
  7. tibjmsapps.jar
  8. tibjmsufo.jar
  9. tibrvjms.jar
  10. primavera-jms.jar - Disponibles @ Maven repo

Ejecutar a continuación comando desde el símbolo del sistema para incluir frascos TIBCO en el repositorio Maven local.

Paso 3:

Comandos:

mvn instalar: instalar archivos -DgroupId = javax.jms -DartifactId = JMS -Dversion = 1,1 -Dpackaging = frasco -dfile = jms.jar MVN instalar: instalar archivos -DgroupId = com.tibco -DartifactId = tibcrypt -Dversion = 5.1.0 -Dpackaging = frasco -dfile = tibcrypt.jar MVN instalar: instalar archivos -DgroupId = com.tibco -DartifactId = tibemsd_sec -Dversion = 5.1.0 -Dpackaging = frasco -dfile = tibemsd_sec.jar MVN instalar: instalar archivos -DgroupId = com.tibco -DartifactId = tibjms -Dversion = 5.1.0 -Dpackaging = frasco -dfile = tibjms.jar MVN instalar: instalar archivos -DgroupId = com.tibco -DartifactId = tibjmsadmin -Dversion = 5.1.0 -Dpackaging = frasco -dfile = tibjmsadmin.jar MVN instalar: instalar archivos -DgroupId = com.tibco -DartifactId = tibjmsapps -Dversion = 5.1.0 -Dpackaging = frasco -dfile = tibjmsapps.jar MVN instalar: instalar archivos -DgroupId = com.tibco -DartifactId = tibjmsufo -Dversion = 5.1.0 -Dpackaging = frasco -dfile = tibjmsufo.jar MVN instalar: instalar archivos -DgroupId = com.tibco -DartifactId = tibrvjms -Dversion = 5.1.0 -Dpackaging = frasco -dfile = tibrvjms.jar

Maven Dependencias para TIBCO EMS. Agregarlo en que .pom dependencias de los archivos

         <!-- Tibco EMS Start -->

    <dependency>
        <groupId>javax.jms</groupId>
        <artifactId>jms</artifactId>
        <version>1.1</version>

    </dependency>
    <dependency>
        <groupId>com.tibco</groupId>
        <artifactId>tibcrypt</artifactId>
        <version>5.1.0</version>
    </dependency>
    <dependency>
        <groupId>com.tibco</groupId>
        <artifactId>tibemsd_sec</artifactId>
        <version>5.1.0</version>
    </dependency>
    <dependency>
        <groupId>com.tibco</groupId>
        <artifactId>tibjms</artifactId>
        <version>5.1.0</version>
    </dependency>
    <dependency>
        <groupId>com.tibco</groupId>
        <artifactId>tibjmsadmin</artifactId>
        <version>5.1.0</version>
    </dependency>
    <dependency>
        <groupId>com.tibco</groupId>
        <artifactId>tibjmsapps</artifactId>
        <version>5.1.0</version>
    </dependency>
    <dependency>
        <groupId>com.tibco</groupId>
        <artifactId>tibjmsufo</artifactId>
        <version>5.1.0</version>
    </dependency>
    <dependency>
        <groupId>com.tibco</groupId>
        <artifactId>tibrvjms</artifactId>
        <version>5.1.0</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jms</artifactId>
        <version>3.2.4.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>2.6</version>
    </dependency>

    <!-- Tibco EMS End -->

Se muestra el archivo de configuración de la primavera de TIBCO.


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:task="http://www.springframework.org/schema/task"
    xsi:schemaLocation="
   http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
   http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
   http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
   http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.1.xsd
   http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
   http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.1.xsd">

<context:annotation-config />

<context:property-placeholder
    location="file:${user.home}/config.properties"
    ignore-resource-not-found="true" system-properties-mode="OVERRIDE" />

<context:component-scan base-package="com.mycompany.ems" />

<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
    <property name="environment">
        <props>
            <prop key="java.naming.factory.initial">com.tibco.tibjms.naming.TibjmsInitialContextFactory</prop>
            <prop key="java.naming.provider.url">tcp://xx.xx.xx.xx:xxxx</prop> <!--dynamic depending on your project-->
        </props>
    </property>
</bean>

<bean id="jmsConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiTemplate" ref="jndiTemplate" />
    <property name="jndiName" value="QueueConnectionFactory" />
</bean>

<bean id="jmsDestinationResolver"
    class="org.springframework.jms.support.destination.JndiDestinationResolver">
    <property name="jndiTemplate" ref="jndiTemplate" />
    <property name="cache" value="true" />
</bean>

<bean id="destination" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiTemplate" ref="jndiTemplate" />
    <property name="jndiName" value="xxxxxx" />  <!--dynamic depending on your project-->
</bean>

<bean id="authenticationConnectionFactory"
    class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">
    <property name="targetConnectionFactory" ref="jmsConnectionFactory" />
    <property name="username" value="xxxxxx" /> <!--dynamic depending on your project-->
    <property name="password" value="xxxxxx" /> <!--dynamic depending on your project-->
</bean>

<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
    <property name="connectionFactory" ref="authenticationConnectionFactory" />
    <property name="destinationResolver" ref="jmsDestinationResolver" />
    <property name="defaultDestination" ref="destination" />
</bean>

<bean id="logger" class="com.mycompany.ems.Logger" />

Java Implementación del archivo

package com.mycompany.ems;

import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import org.springframework.stereotype.Component;


/**
 * @author Parthasarathy Balakrishnan
 * @description sends tibco queue message from this class
 *
 */
@Component
public class Logger{

private final static Logger logger = Logger
        .getLogger(Logger .class);


private static JmsTemplate jmsTemplate;


/**
 * 
 */
public Logger() {
}

/**
 * @param <T>
 * @param args
 * @author Parthasarathy Balakrishnan
 * 
 */
public static <T> void log(Class<T> clazz, Object message, Throwable t) {

    try {

        JMSSend("PROJECT_QUEUE_NAME", clazz, message, t);
        logger.debug("Message Sent...");

    } catch (Exception e) {
        e.printStackTrace();

    }

}

/**
 * @param Queue
 * @param clazz
 * @param message
 * @param t
 * @Description It uses org.springframework.jms.core.JmsTemplate to send JMS message to tibco Queue.
 * @author Parthasarathy Balakrishnan
 */
static <T> void JMSSend(String Queue, final Class<T> clazz, final Object message,
        final Throwable t) {
    jmsTemplate.send(Queue, new MessageCreator() {
        public Message createMessage(Session session) throws JMSException {
            TextMessage sendMessage = session
                    .createTextMessage("<xml>send message</xml>");
            return sendMessage;
        }
    });
}


/**
 * @return
 */
public JmsTemplate getJmsTemplate() {
    return jmsTemplate;
}

/**
 * @param jmsTemplate
 */
@Autowired
public void setJmsTemplate(JmsTemplate jmsTemplate) {
    BsfLogger.jmsTemplate = jmsTemplate;
    }

}

Se está trabajando para mí, por favor de ping mí en caso de cualquier excepción.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top