Foros del Web » Programación para mayores de 30 ;) » Java »

Consumir mensajes con MDB en jms

Estas en el tema de Consumir mensajes con MDB en jms en el foro de Java en Foros del Web. Buenas noches queridos amigos, Tengo un problema con un mdb. Tengo el cliente que envía los mensajes a una cola creada en el servidor weblogic ...
  #1 (permalink)  
Antiguo 08/03/2011, 19:57
 
Fecha de Ingreso: octubre-2006
Ubicación: manizales
Mensajes: 23
Antigüedad: 17 años, 6 meses
Puntos: 0
Consumir mensajes con MDB en jms

Buenas noches queridos amigos,

Tengo un problema con un mdb. Tengo el cliente que envía los mensajes a una cola creada en el servidor weblogic 10.3, efectivamente los envía, pero debo consumirlo por medio del mdb y no me lo consume, el código del mdb es el siguiente:


package sv.com.tigo.suscripcion.ejb;

import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.ejb.MessageDrivenBean;
import javax.ejb.MessageDrivenContext;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;

/**
* @author fmarin
*
*/
@MessageDriven(mappedName = "queue/SuscriptionQueue",activationConfig = {
@ActivationConfigProperty(propertyName="destinatio nType", propertyValue="javax.jms.Queue"),
@ActivationConfigProperty(propertyName="destinatio n", propertyValue="queue/SuscriptionQueue")
}
)
public class MotorPeticionesPruebaMDB implements MessageDrivenBean, MessageListener {
/**
*
*/
private static final long serialVersionUID = 1L;

public void setMessageDrivenContext(MessageDrivenContext aContext) {
}

public void ejbCreate() { }
public void ejbRemove() { }

public void onMessage(Message aMessage) {
try {
TextMessage txtMessage = (TextMessage) aMessage;
String mensaje;
mensaje = txtMessage.getText();
System.out.println(mensaje);
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}


el cliente es:

package sv.com.tigo.suscripcion.ejb;

import java.util.Hashtable;

import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.jms.Queue;

import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueSender;
import javax.jms.QueueSession;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.naming.Context;
import javax.naming.InitialContext;

/**
* @author fmarin
*
*/
@Stateless (mappedName="SuscriptionRequest")
public class SuscriptionRequestEJB implements SuscriptionRequestEJBLocal, SuscriptionRequestEJBRemote{

public final static String JNDI_FACTORY="weblogic.jndi.WLInitialContextFactor y";
public final static String PROVIDER_URL_URL="t3://localhost:7001";

public final static String JMS_FACTORY="suscriptionRequestConection";
public final static String QUEUE="SuscriptionQueue";

public void SolicitudSuscripcion(String campo) {

try{

System.out.println(JMS_FACTORY+""+QUEUE);
//Obtenemos el InitialContext
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);
env.put(Context.PROVIDER_URL, PROVIDER_URL_URL);
InitialContext ctx = new InitialContext(env);

//Buscamos el factory y la conexion a la cola
QueueConnectionFactory qconFactory = (QueueConnectionFactory) ctx.lookup(JMS_FACTORY);
QueueConnection qcon = qconFactory.createQueueConnection();

//Buscamos la cola
QueueSession qsession = qcon.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
Queue queue = (Queue) ctx.lookup(QUEUE);

//Creamos el mensaje
TextMessage msg = qsession.createTextMessage();
msg.setText(campo);

//Enviamos el mensaje
QueueSender qsender = qsession.createSender(queue);
qsender.send(msg);

//cerramos todo
qsender.close();
qsession.close();
qcon.close();

}catch (Exception e) {
System.out.println("Error haciendo la prueba de inserción a la cola"+e);
}

}

}


SOLICITO SU AYUDA!!!!!!!

GRACIAS!!!!

Etiquetas: consumir, jms, mdb, mensajes
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:08.