Hallo Leute!
Ich habe ein RMI-Testprogramm, das ohne mysql wunderbar funktioniert. Folgende Dateien gehören dazu:
Server:
SampleServer.java (interface)
SampleServerImpl.java
Client:
SampleServer.java (interface)
SampleClient.java
-- So und dann habe ich das ganze um eine mysql-Anbinung mittels jdbc erweitert. Wenn ich aber auf dem Server die Implementierung compilieren möchte, bekomme ich folgende Fehlermeldung:
Und so sieht der Quelltext aus:
Die Compilierung von SampleServer.java funktioniert problemlos, nur bei die Implementierung bereitet mir Kopfschmerzen.
Was mache ich falsch?
Ich habe ein RMI-Testprogramm, das ohne mysql wunderbar funktioniert. Folgende Dateien gehören dazu:
Server:
SampleServer.java (interface)
SampleServerImpl.java
Client:
SampleServer.java (interface)
SampleClient.java
-- So und dann habe ich das ganze um eine mysql-Anbinung mittels jdbc erweitert. Wenn ich aber auf dem Server die Implementierung compilieren möchte, bekomme ich folgende Fehlermeldung:
root@vps:/home/admin/rmi# javac -classpath ./mysql-connector-java-5.1.18 SampleServerImpl.java
SampleServerImpl.java:12: cannot find symbol
symbol: class SampleServer
implements SampleServer
^
1 error
root@vps:/home/admin/rmi#
Und so sieht der Quelltext aus:
Java:
//-----------------------------------------------------------
// File: SampleServerImpl.java
//-----------------------------------------------------------
import java.rmi.*;
import java.rmi.server.*;
import java.rmi.registry.*;
import java.sql.*;
public class SampleServerImpl extends UnicastRemoteObject
implements SampleServer
{
SampleServerImpl() throws RemoteException
{
super();
}
public int sum(int a,int b) throws RemoteException
{
return a + b;
}
public String sessionid(String user, String pw) throws RemoteException
{
String Ausgabe="";
try {
Class.forName("com.mysql.jdbc.Driver").newInstance(); // Klaeren, was passiert hier?
Connection con=DriverManager.getConnection("jdbc:mysql://domain.de/database", "user", "pw");
Statement stmt = con.createStatement(); // Statement initiieren
ResultSet rs=stmt.executeQuery("Select * from benutzer"); // Statement an Tabelle "benutzer" ausgefuehrt -> Alle anzeigen/speichern in "rs"
while (rs.next())
{
Ausgabe=Ausgabe+rs.getString("email")+" "+ rs.getString(4);
}
} catch (Exception e){System.out.println("* Fehlermeldung -> "+e);}
return Ausgabe;
}
public static void main(String args[])
{
//set the security manager
try
{
System.setSecurityManager(new RMISecurityManager());
//create a local instance of the object
SampleServerImpl Server = new SampleServerImpl();
//put the local instance in the registry
Naming.rebind("SAMPLE-SERVER" , Server);
System.out.println("Server waiting.....");
}
catch (java.net.MalformedURLException me)
{
System.out.println("Malformed URL: " + me.toString());
}
catch (RemoteException re)
{
System.out.println("Remote exception: " + re.toString());
}
}
}
Java:
import java.rmi.*;
import java.sql.*;
public interface SampleServer extends Remote
{
public int sum(int a,int b) throws RemoteException;
public String sessionid(String user, String pw) throws RemoteException;
}
Die Compilierung von SampleServer.java funktioniert problemlos, nur bei die Implementierung bereitet mir Kopfschmerzen.
Was mache ich falsch?
Zuletzt bearbeitet: