Ai galera, alguem teria um tutorial de JMS usando o JBOSS 4.2.x???
Eu ate tentei usar o exemplo deles mais achei meio confuso…
Vlw!!!
Ai galera, alguem teria um tutorial de JMS usando o JBOSS 4.2.x???
Eu ate tentei usar o exemplo deles mais achei meio confuso…
Vlw!!!
ai cara vlw!!!
Ja to conseguindo enfileirar as mensagens no JBoss
so que para ler as mensagens ainda to tento problema…
O pior e que não da erro e nem entra no metodo onMessage…
vou postar o codigo ai, se alguem poder ajudar vlw!!!
import java.util.Properties;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueReceiver;
import javax.jms.QueueSession;
import javax.jms.TextMessage;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class Teste {
public static void main(String[] args) {
ReceiverMessage receiverMessage = new ReceiverMessage();
try {
receiverMessage.connect();
} catch (NamingException e) {
e.printStackTrace();
} catch (JMSException e) {
e.printStackTrace();
}
while(true) {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
class ReceiverMessage implements MessageListener {
private QueueConnection queueConnection;
private QueueSession queueSession;
private Queue queue;
private String queueName = "OutputMessageQueue";
public void connect() throws NamingException, JMSException {
InitialContext initialContext;
Properties properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
properties.put(Context.URL_PKG_PREFIXES, "jboss.naming:org.jnp.interfaces");
//properties.put(Context.PROVIDER_URL, "");
initialContext = new InitialContext(properties);
QueueConnectionFactory queueConnectionFactory = (QueueConnectionFactory) initialContext.lookup("ConnectionFactory");
queueConnection = queueConnectionFactory.createQueueConnection();
queue = (Queue) initialContext.lookup("queue/" + queueName);
queueSession = queueConnection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
QueueReceiver queueReceiver = queueSession.createReceiver(queue);
queueReceiver.setMessageListener(this);
}
public void onMessage(Message message) {
System.out.println("****************** Mensagem Recebida ******************");
if(message instanceof TextMessage) {
TextMessage textMessage = (TextMessage) message;
try {
System.out.println("Mensagem " + textMessage.getStringProperty("ID") + " recebida com sucesso.");
System.out.println("Corpo da mensagem = " + textMessage.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
System.out.println("*******************************************************");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
Altere duas coisinhas no seu teste:
public class Teste {
public static void main(String[] args) {
ReceiverMessage receiverMessage = new ReceiverMessage();
try {
receiverMessage.connect();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
reader.readLine();
} catch (NamingException e) {
e.printStackTrace();
} catch (JMSException e) {
e.printStackTrace();
} catch(IOException e) {}
}
}
não da erro, mas tambêm não está entrando no metodo onMessage()…
Daniel poderia me explicar oq essas 2 linhas estão fazendo???
Pode ser tambêm que eu nãoe esteja conseguindo enfileirar as mensagens corretamento…
Contudo, estou assumindo que a parte de enfileiramento esta funcionando, pois, no aplicativo de administração do JBoss, está dissendo que na fila possui 4 mensagens…
Ae galera resolvi o problema…
faltou um queueConnection.start(), no final do metodo que realização a conexão…
Vlw pela ajuda…
Alguem sabe se tem com fazer um client que envie mensagens jms para uma fila num servidor fora da rede local?