Conexão com uma base de dados via RMI

3 respostas
R

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?

3 Respostas

devel.andrerocha

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.

R

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)

devel.andrerocha

Você ta gerando os stubs na mao como no java 5 ou Implementou na classe no esquema do java6?

Criado 29 de setembro de 2008
Ultima resposta 30 de set. de 2008
Respostas 3
Participantes 2