Servlet-RMI Kommunikation

Status
Nicht offen für weitere Antworten.

ne0n

Mitglied
Hallo,

ich habe ein Problemchem mit dem Servlet, das mit einem RMI-Server kommunizieren muss. Das problem trifft schon beim compilieren auf. In einem Ordner liegen alle JAVA-Klassen und die Bibliotheken. Nun wenn ich die kompilieren möchte, mit
Code:
rmic -classpath ..\class -d ..\class test.MyServlet
, (nur ein Ausschnitt... Alle anderen Klassen werden genauso korrekt kompiliert) bekomme ich die folgende Fehlermeldunug: Class javax.servlet.http.HttpServlet not found in class test.MyServlet. Wobei ich die Pfade zu allen Libs richtig gesetzt habe.
Und die Servlet-api.jar ist natürlich auch vorhanden.

Hoffe jemand könnte mir dabei helfen.
Danke!


ne0n
 
Gleich vorne weg: Mit welcher Java-Version programmierst du?
Dann gehen wir gleich ein paar Irrtümern und Fehlerquellen aus dem Weg.
 
Ich programmiere mit jdk1.6.0 unter Eclipse. Da erstelle ich ein Tomcat-Project. (Weil ich kein Plugin für RMI für eclipse habe, kompiliere ich den Code per Hand).
 
OK, dann brauchst du den rmic gar nicht mehr anzufassen. Seit Java 1.5 werden die Stub- und Skeleton-Klassen automatisch zur Laufzeit aufgebaut. Du kompilerst einfach nur mit javac und fertig.
 
Danke für die schnelle Antwort.

Wenn ich das ganze ohne rmic mache, dann werden bei mir keine Stub-dateien erzeugt. Den Server kann ich dann starten, aber wenn Servlet sich mit dem Server zu verbinden versucht, bekomme ich den Fehler von Tomcat dass die Stub-dateien nicht gefunden wurden und es läuft nicht weiter.
Kompiliere ich mit
Code:
javac -classpath ..;.;..\class;intdt.jar;servlet-api.jar -d ..\class -Xlint:unchecked *.java
 
OK. Danke, ich schaue mal nach und probiere es weiter. Ich poste dann mal später ob es geklappt hat.

mfg
ne0n
 
Hallo, bei mir klappt es immernoch nicht.
Vielleicht mache ich was komplett falsch, und bevor wir versuchen irgendwelche Probleme zu lösen versuche ich zu beschreiben was ich im Endeffekt haben möchte.

Also jetzt habe ich einen Applet und einen RMI-Server. Die kommunizieren über RMI. Klappt hervorragend. Ich starte den Server, der Wartet bis ich den Applet starte. Sobald ich das tue läuft alles.

Nun zu dem was ich haben möchte. Man schickt eine Anfrage an Servlet welches ein Interface Renderer mit Methode notifyCompletion(Response resp) implementiert.
Code:
public interface Renderer extends Remote{
    /** 
	method to be notified of requests completion
    **/
    public void notifyCompletion(Response resp) throws RemoteException;
}
Code:
public class MyServlet extends HttpServlet implements Renderer...
Servlet nimmt diese an, liest die nötigen Parameter aus und dann verbindet er sich mit dem RMI-Server und schickt an den die Daten. Der RMI-Server macht seine Arbeit (holt die Daten aus einem USB-Token) und dann gibt die Daten an Servlet zurück.
Code:
renderer.notifyCompletion(resp);

Ist das realisierbar? Kann das Servlet solange warten bis RMI-Server die Daten an ihn sendet?

Hoffentlich habe ich alles verständlich dargestellt und man versteht was ich da geschrieben habe.


mfg
 
Kann mir schon vorstellen ,dass es funktionieren kann. Sicher bin ich mir da aber nicht.
Im Prinzip ist ja ein Remote-Methodenaufruf unter RMI so, als würdest du die Methode lokal aufrufen. Von daher, glaube ich schon, dass es funktioniert.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben