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!!!!