Olá pessoal, estou tentando fazer uma conexão com uma base de dados (MySQL) via RMI.
Estou tendo dificuldade na conexão, pois não sei se a conexão com o bd fica no cliente, no servidor ou na implentação da interface?
No servidor, a ideia do rmi é que vc chame este metodo remotamente e ele rode no server, so nao esqueça de gerar os stubs das suas classes que estao servidas pelo rmi.
Ok, coloquei no servidor, fiz algumas modificações e agora o erro mudou, parede que ele agora já acessa a base de dados mas dá erro de permissão. Quando rodo o cliente aparece o seguinte erro no console do servidor:
init:
deps-jar:
compile-single:
run-single:
com.mysql.jdbc.Driver
Remote obj ready to use
Exception in thread “RMI TCP Connection(idle)” java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:3819 accept,resolve)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
at java.security.AccessController.checkPermission(AccessController.java:546)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at java.lang.SecurityManager.checkAccept(SecurityManager.java:1157)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.checkAcceptPermission(TCPTransport.java:636)
at sun.rmi.transport.tcp.TCPTransport.checkAcceptPermission(TCPTransport.java:275)
at sun.rmi.transport.Transport$1.run(Transport.java:158)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
Já no console do cliente:
init:
deps-jar:
Compiling 1 source file to C:\Documents and Settings\Raimundo\Meus documentos\NetBeansProjects\ProjectRMI\build\classes
compile-single:
run-single:
RemoteException: java.rmi.UnmarshalException: Error unmarshaling return header; nested exception is:
java.io.EOFException
BUILD SUCCESSFUL (total time: 1 second)
Você ta gerando os stubs na mao como no java 5 ou Implementou na classe no esquema do java6?