PDA

View Full Version : [Java] JMS su eclipse con Java Application Server


Lupoje
10-04-2008, 20:21
Ciao a tutti. Sto cercando di imparare ad usare JMS per un progetto che devo fare per l'università. Ho scelto di usare eclipse su windows con java EE 5 SDK e Java Application Server 9.1 che ho configurato seguendo il tutorial di J2EE scarcabile qui (http://java.sun.com/j2ee/1.4/docs/tutorial/doc/). Dopo aver quindi configurato la ConnectionFactory e la destination Queue sull'application server ho scritto questo Server JMS:
import javax.jms.*;
import javax.naming.*;

public class JMSServer {
static Context ictx = null;
public static void main(String[] args) throws Exception {
ictx = new InitialContext();
Queue queue = (Queue) ictx.lookup("jms/Queue");
QueueConnectionFactory qcf = (QueueConnectionFactory) ictx.lookup("jms/ConnectionFactory");
ictx.close();

QueueConnection qc = qcf.createQueueConnection();
QueueSession qs = qc.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
QueueReceiver qrec = qs.createReceiver(queue);

QueueSender qsend = qs.createSender(null);
TextMessage reply = qs.createTextMessage();


qc.start();
System.out.println("Posso ricevere");

TextMessage msg;
while(true) {
msg = (TextMessage) qrec.receive();
System.out.println("Msg received: " +
msg.getText());
Queue replyTo = (Queue) msg.getJMSReplyTo();
reply.setText("Re: "+msg.getText());
qsend.send(replyTo, reply);
}

}
}
Ho quindi compilato (senza errori) il programma con il compilatore java (su un tutorial parlava di usare asac per compilare, ma a me non funziona) e l'ho eseguito. Dopo qualche secondo dall'avvio dell'esecuzione mi ha dato i seguenti errori:

Apr 9, 2008 6:34:09 PM com.sun.enterprise.connectors.ActiveRAFactory createActiveResourceAdapter

SEVERE: RAR6001 : Class Not found : com.sun.messaging.jms.ra.ResourceAdapter

Apr 9, 2008 6:34:09 PM com.sun.enterprise.connectors.ActiveRAFactory createActiveResourceAdapter

SEVERE:

com.sun.enterprise.connectors.ConnectorRuntimeException

: Error in creating active RAR
at com.sun.enterprise.connectors.ActiveRAFactory.createActiveResourceAdapter(

ActiveRAFactory.java:118)
at com.sun.enterprise.connectors.ResourceAdapterAdminServiceImpl.createActiveResourceAdapter(

ResourceAdapterAdminServiceImpl.java:300)
at com.sun.enterprise.connectors.ConnectorRuntime.createActiveResourceAdapter(

ConnectorRuntime.java:207)
at com.sun.enterprise.naming.factory.AdministeredObjectFactory.getObjectInstance(

AdministeredObjectFactory.java:102)
at javax.naming.spi.NamingManager.getObjectInstance(

NamingManager.java:304)
at com.sun.enterprise.naming.SerialContext.lookup(

SerialContext.java:403)
at javax.naming.InitialContext.lookup(

InitialContext.java:392)
at JMSClient.main(

JMSClient.java:8)
Caused by:

java.lang.ClassNotFoundException: com.sun.messaging.jms.ra.ResourceAdapter
at java.net.URLClassLoader$1.run(

URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(

Native Method)
at java.net.URLClassLoader.findClass(

URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(

ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(

Launcher.java:276)
at java.lang.ClassLoader.loadClass(

ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(

ClassLoader.java:319)
at java.lang.Class.forName0(

Native Method)
at java.lang.Class.forName(

Class.java:169)
at com.sun.enterprise.connectors.ActiveRAFactory.createActiveResourceAdapter(

ActiveRAFactory.java:82)
... 7 more

Apr 9, 2008 6:34:09 PM com.sun.enterprise.naming.SerialContext lookup

SEVERE: NAM0004: Exception during name lookup : {0}

com.sun.enterprise.connectors.ConnectorRuntimeException

: Error in creating active RAR
at com.sun.enterprise.connectors.ActiveRAFactory.createActiveResourceAdapter(

ActiveRAFactory.java:118)
at com.sun.enterprise.connectors.ResourceAdapterAdminServiceImpl.createActiveResourceAdapter(

ResourceAdapterAdminServiceImpl.java:300)
at com.sun.enterprise.connectors.ConnectorRuntime.createActiveResourceAdapter(

ConnectorRuntime.java:207)
at com.sun.enterprise.naming.factory.AdministeredObjectFactory.getObjectInstance(

AdministeredObjectFactory.java:102)
at javax.naming.spi.NamingManager.getObjectInstance(

NamingManager.java:304)
at com.sun.enterprise.naming.SerialContext.lookup(

SerialContext.java:403)
at javax.naming.InitialContext.lookup(

InitialContext.java:392)
at JMSClient.main(

JMSClient.java:8)
Caused by:

java.lang.ClassNotFoundException: com.sun.messaging.jms.ra.ResourceAdapter
at java.net.URLClassLoader$1.run(

URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(

Native Method)
at java.net.URLClassLoader.findClass(

URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(

ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(

Launcher.java:276)
at java.lang.ClassLoader.loadClass(

ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(

ClassLoader.java:319)
at java.lang.Class.forName0(

Native Method)
at java.lang.Class.forName(

Class.java:169)
at com.sun.enterprise.connectors.ActiveRAFactory.createActiveResourceAdapter(

ActiveRAFactory.java:82)
... 7 more

Exception in thread "main"

javax.naming.CommunicationException: serial context communication ex [Root exception is com.sun.enterprise.connectors.ConnectorRuntimeException: Error in creating active RAR]
at com.sun.enterprise.naming.SerialContext.lookup(

SerialContext.java:427)
at javax.naming.InitialContext.lookup(

InitialContext.java:392)
at JMSClient.main(

JMSClient.java:8)
Caused by:

com.sun.enterprise.connectors.ConnectorRuntimeException: Error in creating active RAR
at com.sun.enterprise.connectors.ActiveRAFactory.createActiveResourceAdapter(

ActiveRAFactory.java:118)
at com.sun.enterprise.connectors.ResourceAdapterAdminServiceImpl.createActiveResourceAdapter(

ResourceAdapterAdminServiceImpl.java:300)
at com.sun.enterprise.connectors.ConnectorRuntime.createActiveResourceAdapter(

ConnectorRuntime.java:207)
at com.sun.enterprise.naming.factory.AdministeredObjectFactory.getObjectInstance(

AdministeredObjectFactory.java:102)
at javax.naming.spi.NamingManager.getObjectInstance(

NamingManager.java:304)
at com.sun.enterprise.naming.SerialContext.lookup(

SerialContext.java:403)
... 2 more

Caused by:

java.lang.ClassNotFoundException: com.sun.messaging.jms.ra.ResourceAdapter
at java.net.URLClassLoader$1.run(

URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(

Native Method)
at java.net.URLClassLoader.findClass(

URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(

ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(

Launcher.java:276)
at java.lang.ClassLoader.loadClass(

ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(

ClassLoader.java:319)
at java.lang.Class.forName0(

Native Method)
at java.lang.Class.forName(

Class.java:169)
at com.sun.enterprise.connectors.ActiveRAFactory.createActiveResourceAdapter(

ActiveRAFactory.java:82)
... 7 more

Per tentare di risolvere il problema ho provato a scaricare la Web Tools Platform per eclipse, senza però ottenere niente. Spero che qualcuno riesca a spiegarmi come fare per uscire da questa impasse: io immagino che mi manchi qualcosa per connettere l'applicazione al Java Application Server, ma su internet non sono riuscito a trovare niente (quasi tutti i tutorial sono su Jboss). Grazie.