# JMS Remote Client



## Chrissy09 (19. Jan 2011)

Hallo zusammen,

ich habe ein Problem damit von einem Remote Client auf JMS Resourcen zuzugreifen.
Genauer gesagt habe ich schon ein Problem damit den Client überhaupt auszuführen.
Wenn ich GlassFish starte und in Netbeans meinen Client ausführe, funktioniert alles wunderbar.
Wenn ich allerdings den Client per Kommandozeile starten will oder auf einem anderen Rechner, dann funktioniert dies nicht. 
Ich bekomme folgende Exception: Cannot instantiate class: com.sun.enterprise.naming.SerialnitContextFactory ...(ClassNotFoundException)

Versuche ich die Jar-Datei mittels des appclient-Skriptes von GlassFish zu starten, kriege ich folgende Exception: java.lang.ClassNotFoundException: org.glassfish.appclient.client.acc.UserError

Was mache ich falsch?
Kann mir jemand helfen?

In den Properties für den InitialContext habe ich folgendes gesetzt:

```
Hashtable env = new Hashtable();
            env.put(Context.INITIAL_CONTEXT_FACTORY,
                    "com.sun.enterprise.naming.SerialInitContextFactory");
            env.put(Context.PROVIDER_URL,
                    "192.168.1.5:8080");

            Context ctx = new InitialContext(env);
```


----------



## FArt (19. Jan 2011)

Du musst alle benötigten Libraries (JAR-Files) in den Klassenpfad des Clients legen bzw. den Klassenpfad beim Start des Clients entsprechend konfigurieren.


----------



## Chrissy09 (19. Jan 2011)

Das habe ich gemacht. Geht trotzdem nicht.


----------



## FArt (19. Jan 2011)

Chrissy09 hat gesagt.:


> Das habe ich gemacht. Geht trotzdem nicht.



Wenn du mit "geht nicht" immer noch ClassNotFoundExceptions meinst, dann hast du es nicht richtig gemacht.

Wenn es in der IDE funktioniert, kannst du ja nachsehen, welche JARs benötigt werden. Sonst suche mal im Anfänger- und allgemeinen Forum bzw. im Internet nach dem Fehler... oder schnapp dir ein Anfängertutorial von Sun (Oracle) bzgl. Starten eines Java-Programms und setzen des Klassenpfades.


----------



## Chrissy09 (21. Jan 2011)

Ich hab jetzt eben auf dem 2. Rechner meinen Client in Netbeans gestartet. Ich kriege keine Exception.
Trotzdem wird die Nachricht nicht an den entfernten Rechner geschickt.

Dies sind meine Properties:

```
Properties env = new Properties();
            env.setProperty("java.naming.factory.initial", "com.sun.enterprise.naming.SerialInitContextFactory");
            env.setProperty("java.naming.factory.url.pkgs", "com.sun.enterprise.naming");
            env.setProperty("java.naming.factory.state", "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
            env.setProperty("org.omg.CORBA.ORBInitialHost", "89.232.124.6");
            env.setProperty("org.omg.CORBA.ORBInitialPort", "3700");
            InitialContext ctx = new InitialContext(env);
```

Alle Firewalls sind ausgeschaltet.
Muss ich beim GlassFish noch irgendwas einstellen, dass ich von einem entfernten Client Nachrichten schicken kann? Ich habe auch probiert vor die IP-Adresse "iiop://" oder "http://" zu setzen, hat aber nichts gebracht.


----------



## FArt (21. Jan 2011)

Prüfe das Log deines Servers.


----------

