Una forma para bajarse los jars y las dependecias de ellos nada mas hay un comando que se debe de utlilizar estos comoandaso
mvn initialize -P dependencies
mvn initialize -P dependencies
<JMSManagerImpl>
<ctx>jms.sender.context.test.xml</ctx> //nombre del fichero
<JMSMessageTypeTest>weblogicCola</JMSMessageTypeTest> //nombre de la propiedad
</JMSManagerImpl>
el fichero que voy a configurar ahora mismo es jms.sender.context.test.xml
<?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:context="http://www.springframework.org/schema/context"
xmlns:amq="http://activemq.apache.org/schema/core" xmlns:jms="http://www.springframework.org/schema/jms"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://activemq.apache.org/schema/core
http://activemq.apache.org/schema/core/activemq-core-5.5.0.xsd
http://www.springframework.org/schema/jms
http://www.springframework.org/schema/jms/spring-jms-3.0.xsd">
<context:annotation-config />
y terminar con la etiqueta </beans> <bean id="weblogicCola" class="isf.domain.gcjms.DefaultProductorImpl">
<property name="template">
<ref bean="weblogicJmsTemplate" />
</property>
<property name="destination" ref="colaTEST"/>
</bean>
<bean id="weblogicJmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory">
<ref bean="weblogicConnectionFactory" />
</property>
<property name="destinationResolver">
<ref bean="weblogicDestinationResolver" />
</property>
</bean>
<bean id="colaTEST" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="jms/micola" /> //nombre JNDI
<property name="jndiTemplate" ref="weblogicJndiTemplate" />
</bean>
<bean id="weblogicJndiTemplate" class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop>
<prop key="java.naming.provider.url">t3://localhost:7010,localhost:7011,localhost:7012</prop>
</props>
</property>
</bean>
<?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:context="http://www.springframework.org/schema/context"
xmlns:amq="http://activemq.apache.org/schema/core" xmlns:jms="http://www.springframework.org/schema/jms"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://activemq.apache.org/schema/core
http://activemq.apache.org/schema/core/activemq-core-5.5.0.xsd
http://www.springframework.org/schema/jms
http://www.springframework.org/schema/jms/spring-jms-3.0.xsd">
<context:annotation-config />
y terminar con la etiqueta </beans>
<bean id="weblogicJndiTemplate" class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop>
<prop key="java.naming.provider.url">t3://localhost:7010,localhost:7011,localhost:7012
</prop>
</props>
</property>
</bean>
<bean id="weblogicDestinationResolver"
class="org.springframework.jms.support.destination.JndiDestinationResolver">
<property name="jndiTemplate">
<ref bean="weblogicJndiTemplate" />
</property>
<property name="cache">
<value>true</value>
</property>
</bean>
<bean id="weblogicConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate">
<ref bean="weblogicJndiTemplate" />
</property>
<property name="jndiName"> // nombre que tiene las colas JMS por defectgo
<value>weblogic/jms/ConnectionFactory</value>
</property>
</bean>
<bean id="weblogicJmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory">
<ref bean="weblogicConnectionFactory" />
</property>
<property name="destinationResolver">
<ref bean="weblogicDestinationResolver" />
</property>
</bean>
<jms:listener-container container-type="default" connection-factory="weblogicConnectionFactory" acknowledge="transacted" concurrency="10" destination-resolver="weblogicDestinationResolver">
<jms:listener id="listener" destination="jms/micola" ref="testMessageListener" method="onMessage" />
</jms:listener-container>
<bean id="testMessageListener" class="isf.domain.gcjms.JMSSessionAwareMessageListenerImpl">
<property name="consumerAsyncronous">
<bean class="isf.domain.gccmq.core.listener.ConsumerWLSTest"></bean> //nombre y paquete de la clase lisener
</property>
</bean>
</beans>
public class JMSManualTest {
public static void main(String[] args) throws IOException {
System.out.println("Arrancando Spring Context...");
//levanto el contexto de spring para que la parte de lisener este activa cuando yo mando.
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:jms.listener.context.test.xml");
System.out.println("Spring Context OK");
do{
System.out.println("Mensaje a enviar:");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String mensaje = "";
boolean finComando = false;
while(!finComando){
String line = br.readLine();
if(line.endsWith(";")){
if(line.length() > 1){
mensaje += line.substring(0, line.length()-1);
}
finComando = true;
}else{
mensaje += line;
}
}
System.out.println("Enviando mensaje...");
sendJMSMessage(mensaje);
System.out.println("Mensaje enviado");
}while(true);
}
public static void sendJMSMessage(String message){
JMSMessage mensaje = new JMSMessage(message, "");
mensaje.setJmsMessageType("JMSMessageTypeTest");
mensaje.setJmsPriority(1);
//Especifica la fecha de expiraci�n del mensaje
mensaje.setJmsExpiration(3000);
//Identificador de correlaci�n, usado para asociar un mensaje con otro mensaje
//mensaje.setJmsCorrelationId(Long.toString(System.currentTimeMillis()));
//Permite uno de los dos modos de entrega permitidos,persistente o no persistente
mensaje.setJmsDeliveryMode(1);
//Usado para identificar la prioridad del mensaje
mensaje.setJmsPriority(1);
//Propiedades del mensaje
// Properties prueba = new Properties();
// prueba.put("Rango", 7);
// mensaje.setJmsProperties(prueba);
//Indica si un mensaje ha sido entregado
mensaje.setJmsRedelivered(true);
try {
JMSFactory.getInstance().producer(mensaje);
} catch (JMSInvalidDefinitionBeanException e) {
e.printStackTrace();
} catch (JMSMessageWrapperException e) {
e.printStackTrace();
} catch (Exception e){
e.printStackTrace();
}
}
en la parte de recivir
public class ConsumerWLSTest implements IConsumerAsynchronous {
@Override
public JMSMessage onMessageJms(JMSMessage _jmsmessage) {
return onMessageJms(_jmsmessage, null);
}
@Override
public JMSMessage onMessageJms(JMSMessage _jmsmessage, Session _session) {
try{
System.out.println("Mensaje Recibido: [" + _jmsmessage.getJmsBody() + "]");
return null;
}finally{
try {
_session.commit();
} catch (JMSException e) {
e.printStackTrace();
}
}
}
}