oi galera,
estou tentando implementar uma fila onde vou guardar uns XMLs.
Eu tenho uma aplicação web que recebe um xml e terá que adicionar na fila...até ser processada.
jms/NFConnectionFactory
jms/NFQueue
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app error-url="">
<resource-ref>
<res-ref-name>jms/NFConnectionFactory</res-ref-name>
<jndi-name>jms/NFConnectionFactory</jndi-name>
</resource-ref>
<message-destination-ref>
<message-destination-ref-name>jms/NFQueue</message-destination-ref-name>
<jndi-name>jms/NFQueue</jndi-name>
</message-destination-ref>
<class-loader delegate="true"/>
<jsp-config>
<property name="keepgenerated" value="true">
<description>Keep a copy of the generated servlet class' java code.</description>
</property>
</jsp-config>
<parameter-encoding default-charset="UTF-8"/>
</glassfish-web-app>
E a minha classe:
@Stateless
public class SenderQueue implements Serializable
{
@Resource(mappedName = "jms/NFConnectionFactory")
private static ConnectionFactory connectionFactory;
@Resource(mappedName = "jms/NFQueue")
private static Queue queue;
public void produceMessages(byte[] xml)
{
MessageProducer messageProducer;
ObjectMessage objectMessage;
try
{
Connection connection = connectionFactory.createConnection(); //aqui estoura NULLPOINTEREXCEPTION porque a conexão não foi criada
Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
messageProducer = session.createProducer(queue);
objectMessage = session.createObjectMessage();
objectMessage.setObject(xml);
messageProducer.send(objectMessage);
messageProducer.close();
session.close();
connection.close();
}
catch (JMSException e)
{
e.printStackTrace();
}
}
Mas ao chamar o método createConnection ele estoura NullPointerException. Ta faltando alguma coisa pra conseguir buscar essa conexao? :shock: :?: