Mensageria jBoss

1 resposta
S

olá galera, primeiramente, sou novato neste assunto. E preciso de uma ajuda daqueles que sabem orientar.
já procurei soluções no google, mas não consegui compreender o assunto. por isso, tenho muitas dúvidas, se alguém puder me ajudar, agradeço.
estou trabalhando com mensageria, E PARA ISSO ESTOU USANDO AS SEGUINTES FERRAMENTAS:
Eclipse;
jboss4.0.5

preciso trocar mensagens entre o Webphere e jboss na mesma rede. (visão de negócio que não depende de mim)
então, criei um teste:
No SourceFolder está as classes
EDBclient.java
EdbMDB.java

context/WEB-INF:
ejb-jar.xml
jboss.xml

segue os códigos:

-------------
package teste.Edb;

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;

public class EDBclient {

	public static void main(String[] args) throws Exception {
		
		Context ctx = new InitialContext(System.getProperties());
		QueueConnectionFactory factory = (QueueConnectionFactory)ctx.lookup("ConnectionFactory");
		QueueConnection connection = factory.createQueueConnection();
		QueueSession session = connection.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);
		Queue queue = (Queue) ctx.lookup("queue/TESTEQueue");
		QueueSender sender = session.createSender(queue);
		TextMessage msg = session.createTextMessage();
		msg.setText("Teste Message DriveBean .");
		sender.send(msg);
	}

}
-------------
package teste.MDB;

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

public class EdbMDB implements MessageDrivenBean, MessageListener{

	protected MessageDrivenContext ctx;
	public void setMessageDrivenContext(MessageDrivenContext ctx) {
	this.ctx = ctx;
	}    
	public void ejbRemove() throws EJBException {
		System.err.println("ejbRemove()");
		
	}
	public void onMessage(Message msg) {
		TextMessage tm = (TextMessage) msg;
		try {
		      String text = tm.getText();
		System.err.println("Received new message : " + text);
		} catch(JMSException e) {
		      e.printStackTrace();
		}	
	}
}
--------------
jboss.xml

<?xml version="1.0" encoding="UTF-8"?>
  <jboss>  
    <enterprise-beans>  
      <message-driven>  
        <ejb-name>EdbMDB</ejb-name>  
        <destination-jndi-name>queue/TESTEQueue</destination-jndi-name>  
      </message-driven>  
    </enterprise-beans>  
  </jboss>
---------------
ejb-jar.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar>
	<enterprise-beans>
		<message-driven>
			<ejb-name>EdbMDB</ejb-name>
			<ejb-class>teste.MDB.EdbMDB</ejb-class>
			<transaction-type>Container</transaction-type>
			<acknowledge-mode>AUTO_ACKNOWLEDGE</acknowledge-mode>
			<message-driven-destination>
				<destination-type>javax.jms.Queue</destination-type>
			</message-driven-destination>
		</message-driven>
	</enterprise-beans>
</ejb-jar>
-------- sei que preciso configurar o JNDI.PROPERTIES, mas pelo eclipse, coloco na pasta WEB-INF, mas na instalação do jboss já possui um arquivo desse, ou tenho que subistituir? EXEMPLO JNDI
jms.connectionfactory=???????  oq vai aki?
 jms.initialcontextfactory=?????????? oq vai aki?
 jms.resource.queue=??????????? oq vai aki?
 jms.jndi.providerurl=??????????? oq vai aki?
 security.principal=??????????? oq vai aki?
 security.credentials=??????????? oq vai aki?

ERRO no ECLIPSE é: "Exception in thread "main" javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial"

No que estou falhando e como corrigir????????
grato a todos.

1 Resposta

M

Bom dia sivolc510,

Estou procurando por uma solução para o mesmo problema que você passou. Gostaria de saber se você encontrou a solução?

Criado 6 de abril de 2010
Ultima resposta 18 de nov. de 2010
Respostas 1
Participantes 2