Hallo allerseits
Ich schreibe derzeit eine Client/Server-Datenbankapplikation, welche verschiedene Entitäten verwaltet. Der Client greift auf die Entitäts-Implementierungen jeweils mit dem folgenden Interface zu:
Die Implementierung dieses Interfaces erweitert "UnicastRemoteObject", wie es sich für Objekte gehört, welche entfernt verwendet werden dürfen.
Beim ausführen meines JUnit-Tests (der nur lokal, nicht über RMI agiert), erhalte ich immer folgende Exception:
Irgend ein Argument scheint er also nicht zu vertragen. Woran könnte das liegen?
Ich bin auf Hilfe angewiesen, am Freitag soll diese Applikation laufen und von 16 Entitäten habe ich bisher erst zwei ausprogrammiert (wenn das mit RMI nicht geht, ist das Projekt gescheitert).
Besten Dank für die Hilfe!
Gruss,
paedubucher
Ich schreibe derzeit eine Client/Server-Datenbankapplikation, welche verschiedene Entitäten verwaltet. Der Client greift auf die Entitäts-Implementierungen jeweils mit dem folgenden Interface zu:
Code:
package net.sourceforge.customercare.server.entities;
import java.rmi.Remote;
import java.util.Iterator;
import net.sourceforge.customercare.server.exceptions.CustomerCareException;
/**
* the business logic for an entity
*/
public interface EntityLogic extends Remote
{
/**
* creates an entry
* @return a new entry
* @throws CustomerCareException
*/
public Entry create() throws CustomerCareException;
/**
* saves an entry
* @param entry
* @throws CustomerCareException
*/
public void save(Entry entry) throws CustomerCareException;
/**
* removes an entry
* @param id
*/
public void remove(Integer id) throws CustomerCareException;
/**
* gets an entry by its id
* @param id
* @return an entry
* @throws CustomerCareException
*/
public Entry get(Integer id) throws CustomerCareException;
/**
* gets all entries
* @return all entries
* @throws CustomerCareException
*/
public Iterator<Entry> getAll() throws CustomerCareException;
}
Die Implementierung dieses Interfaces erweitert "UnicastRemoteObject", wie es sich für Objekte gehört, welche entfernt verwendet werden dürfen.
Beim ausführen meines JUnit-Tests (der nur lokal, nicht über RMI agiert), erhalte ich immer folgende Exception:
Code:
java.rmi.server.ExportException: remote object implements illegal remote interface; nested exception is:
java.lang.IllegalArgumentException: illegal remote method encountered:
public abstract net.sourceforge.customercare.server.entities.Entry
net.sourceforge.customercare.server.entities.EntityLogic.get(java.lang.Integer) throws
net.sourceforge.customercare.server.exceptions.CustomerCareException
at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:171)
at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.java:293)
at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.java:235)
at java.rmi.server.UnicastRemoteObject.<init>(UnicastRemoteObject.java:133)
at java.rmi.server.UnicastRemoteObject.<init>(UnicastRemoteObject.java:119)
at net.sourceforge.customercare.server.entities.supportlevel.SupportlevelLogic.<init>(SupportlevelLogic.java:44)
at net.sourceforge.customercare.server.testing.SupportlevelLogicTest.setUp(SupportlevelLogicTest.java:46)
at junit.framework.TestCase.runBare(TestCase.java:125)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: java.lang.IllegalArgumentException: illegal remote method encountered: public abstract
net.sourceforge.customercare.server.entities.Entry
net.sourceforge.customercare.server.entities.EntityLogic.get(java.lang.Integer) throws
net.sourceforge.customercare.server.exceptions.CustomerCareException
at sun.rmi.server.Util.checkMethod(Util.java:244)
at sun.rmi.server.Util.getRemoteInterfaces(Util.java:223)
at sun.rmi.server.Util.getRemoteInterfaces(Util.java:193)
at sun.rmi.server.Util.createProxy(Util.java:126)
at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:169)
... 16 more
Irgend ein Argument scheint er also nicht zu vertragen. Woran könnte das liegen?
Ich bin auf Hilfe angewiesen, am Freitag soll diese Applikation laufen und von 16 Entitäten habe ich bisher erst zwei ausprogrammiert (wenn das mit RMI nicht geht, ist das Projekt gescheitert).
Besten Dank für die Hilfe!
Gruss,
paedubucher