Olá galera, beleza?
Estou seguindo a apostila da K19 sobre Integração de Sistemas com Webservices e JMS e estou com um problema.
Estou criando uma classe que envia uma mensagem para uma fila cadastrada no Glassfish, segundo a apostila seria apenas:
Criar a ConnectionFactory e a Fila no console de administração do Glassfish. OK
Criar um Java Project adicionado em Libraries o gf-client.jar que vem dentro da pasta modules do Glassfish. OK, adicionei o jar com o nome gf-client-module.jar
Porém ao executar a classe ocorre algumas exceptions.
Código da classe:
[code]package br.com.jms.emissores;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.naming.InitialContext;
/**
-
Classe para enviar mensagens para uma Fila
-
@author carlos.pomari
*/
public class EnviaNovoPedido {
public static void main(String[] args) throws Exception {
// Serviço de nomes - JNDI
InitialContext ic = new InitialContext();// Fábrica de conexões JMS ConnectionFactory factory = (ConnectionFactory) ic.lookup("jms/K19Factory"); // Fila Queue queue = (Queue) ic.lookup("jms/pedidos"); // Conexão JMS Connection connection = factory.createConnection(); // Sessão JMS Session session = connection.createSession(false, Session.CLIENT_ACKNOWLEDGE); // Emissor de mensagens MessageProducer sender = session.createProducer(queue); // Mensagem TextMessage message = session.createTextMessage(); message.setText("Uma pizza de 4 queijos e uma coca-cola 2L - " + System.currentTimeMillis()); // Enviando sender.send(message); // Fechando sender.close(); session.close(); connection.close(); System.out.println("Mensagem Enviada"); System.exit(0);
}
}[/code]
Erro na console:
15/07/2011 14:32:17 com.sun.enterprise.v3.server.CommonClassLoaderServiceImpl findDerbyClient
INFO: Cannot find javadb client jar file, derby jdbc driver will not be available by default.
15/07/2011 14:32:24 com.sun.enterprise.connectors.ActiveRAFactory createActiveResourceAdapter
GRAVE: RAR6001 : Class Not found : com.sun.messaging.jms.ra.ResourceAdapter
15/07/2011 14:32:24 com.sun.enterprise.connectors.ActiveRAFactory createActiveResourceAdapter
GRAVE:
com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: Error in creating active RAR
at com.sun.enterprise.connectors.ActiveRAFactory.createActiveResourceAdapter(ActiveRAFactory.java:109)
at com.sun.enterprise.connectors.service.ResourceAdapterAdminServiceImpl.createActiveResourceAdapter(ResourceAdapterAdminServiceImpl.java:212)
at com.sun.enterprise.connectors.ConnectorRuntime.createActiveResourceAdapter(ConnectorRuntime.java:378)
at com.sun.enterprise.resource.naming.ConnectorObjectFactory.getObjectInstance(ConnectorObjectFactory.java:108)
at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
at com.sun.enterprise.naming.impl.SerialContext.getObjectInstance(SerialContext.java:556)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:514)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at br.com.jms.emissores.EnviaNovoPedido.main(EnviaNovoPedido.java:24)
Caused by: java.lang.ClassNotFoundException: com.sun.messaging.jms.ra.ResourceAdapter
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at com.sun.enterprise.connectors.ActiveRAFactory.createActiveResourceAdapter(ActiveRAFactory.java:101)
… 9 more
Exception in thread “main” javax.naming.NamingException: Lookup failed for ‘jms/K19Factory’ in SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.url.pkgs=com.sun.enterprise.naming, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl} [Root exception is javax.naming.NamingException: Failed to look up ConnectorDescriptor from JNDI [Root exception is com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: Error in creating active RAR]]
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:518)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at br.com.jms.emissores.EnviaNovoPedido.main(EnviaNovoPedido.java:24)
Caused by: javax.naming.NamingException: Failed to look up ConnectorDescriptor from JNDI [Root exception is com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: Error in creating active RAR]
at com.sun.enterprise.resource.naming.ConnectorObjectFactory.getObjectInstance(ConnectorObjectFactory.java:115)
at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
at com.sun.enterprise.naming.impl.SerialContext.getObjectInstance(SerialContext.java:556)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:514)
… 3 more
Caused by: com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: Error in creating active RAR
at com.sun.enterprise.connectors.ActiveRAFactory.createActiveResourceAdapter(ActiveRAFactory.java:109)
at com.sun.enterprise.connectors.service.ResourceAdapterAdminServiceImpl.createActiveResourceAdapter(ResourceAdapterAdminServiceImpl.java:212)
at com.sun.enterprise.connectors.ConnectorRuntime.createActiveResourceAdapter(ConnectorRuntime.java:378)
at com.sun.enterprise.resource.naming.ConnectorObjectFactory.getObjectInstance(ConnectorObjectFactory.java:108)
… 6 more
Caused by: java.lang.ClassNotFoundException: com.sun.messaging.jms.ra.ResourceAdapter
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at com.sun.enterprise.connectors.ActiveRAFactory.createActiveResourceAdapter(ActiveRAFactory.java:101)
… 9 more
Informações adicionais.
IDE: Eclipse Helios
ServerWeb: Glassfish 3.1
Alguém poderia me ajudar? E, pergunta, existe alguma diferença entre “gf-client.jar” e “gf-client-module.jar”?