Pessoal, eu to fazendo um servidor RMI, mas tah dando um erro na hora de executar o servidor.
eu criei um arquivo chamado run.sh, que eh um shellscript que configura o classpath e chama a classe do servidor, segue o arquivo:
[code]CLASSPATH=$CLASSPATH:…/SisGPPrototipo/target
CLASSPATH=$CLASSPATH:./target/
CLASSPATH=$CLASSPATH:./lib/JOmegaConnection.jar
CLASSPATH=$CLASSPATH:./lib/JOmegaReg.jar
CLASSPATH=$CLASSPATH:./lib/mysql-connector-java-5.0.4-bin.jar
#Executa o programa
java -cp $CLASSPATH servidor.Server[/code]
e o codigo do programa servidor (soh a funcao main, o resto eh soh lixo)
public static void main(String[] args) {
MysqlServer myServer = new MysqlServer("localhost", "sisGP", "root", "");
DBInterface db = new DBInterface(myServer);
try {
db.conecta();
Usuario u = new Usuario();
interfaces.BairroManager bm = new servidor.BairroManager(db, u);
Naming.rebind("rmi://localhost/BairroManager", bm);
}catch (Exception ee){
ee.printStackTrace();
}
}
bom, o problema eh o seguinte, na linha:
Naming.rebind("rmi://localhost/BairroManager", bm);
Dah erro, se eu comenta-la, nao dah nenhum erro, o processo inicia e finaliza, sem nenhuma mensagem…
segue aqui o erro:
java.rmi.ServerError: Error occurred in server thread; nested exception is:
java.lang.NoClassDefFoundError: interfaces/BairroManager
at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:382)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:240)
at sun.rmi.transport.Transport$1.run(Transport.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
at java.lang.Thread.run(Thread.java:595)
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:247)
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:343)
at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
at java.rmi.Naming.rebind(Naming.java:160)
at servidor.Server.main(Server.java:22)
Caused by: java.lang.NoClassDefFoundError: interfaces/BairroManager
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
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:242)
at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:430)
at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:165)
at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:620)
at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:247)
at sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:197)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1544)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1699)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
at sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknown Source)
at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:375)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:240)
at sun.rmi.transport.Transport$1.run(Transport.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
at java.lang.Thread.run(Thread.java:595)
Ele tah alegando que o arquivo [u]interfaces/BairroManager[/u] não existe (ClassNotFound), mas se eu comento o codigo do rebind, lah do rmi, nao dah classNotFound, nao to entendo isso!!!