estou utilizando a mesma aplicação em computadores.. onde uma aplicação eh o servidor e irá fazer a conexão com o banco localhost..
outro pc irá fazer toda parte te conexão la no servidor...
meu codigo:
publicclassConexaoimplementsSerializable{// private static Connection conn1;privatestaticStringdriver;privatestaticStringurl;privatestaticStringuser;privatestaticStringpassword;publicstaticConnectiongetConnection(){Connectionconn1=null;try{// Informa qual o driver jdbcClass.forName("org.postgresql.Driver");// Cria uma conexão com o banco de dadosconn1=DriverManager.getConnection("jdbc:postgresql://189.65.192.168:5432/pfc","postgres","jhonatan");}catch(Exceptione){System.out.println("Ocorreu um erro no metodo Util.getConexao(): "+e.getMessage());}return(conn1);}}
publicclassServidor{publicServidor(DomainObjectdomainObject){try{IFachadafachada=newFachada(domainObject);Naming.rebind("rmi://189.65.192.168:1099/ServicesServer",fachada);}catch(Exceptione){System.out.println("Trouble: "+e);}}publicstaticvoidmain(String[]args){System.out.println("Servidro de inciado!!!");// new Servidor(domainObject);}}
Primeiro de tudo nunca irá conectar com o banco, já que eu não vejo niguém instanciando a classe Conexão.
Segundo a sua classe Servidor não esta servindo de nada com o trecho // new Servidor(domainObject); comentado, fora que a mensagem de conexão com sucesso deve estar depois hehe
Terceiro, você iniciou o rmiregistry?
Quarto, você criou o Stub?
Quinto, onde em qual parte da aplicação esta ocorrendo o NullPointer???
Até mais.
Obs: O que uma classe chamada Fachada esta fazendo como serviço remoto e recebendo um objeto de dominio? Explique isso.
S
souzajhonatan
Minha Fachada, la do controle, faz todas as chamadas dos metodos e validações... instanciando os daos..
O DomainObject é um entidade onde todas minhas classes por exemplo, ocorrencia,veiculo, cliente etc... herdam dessa classe DomainObject...
Na minha maquina que será o servidor eu criei o stub da Fachada.... inicicei o RMIregistry
Quando rodo a aplicação localhost a camada de persistencia funciona normal... agora colocando o ip de outra maquina ele da nullpointerexception nesse codigo:
coloquei o ip da maquina dele... rodei o meu servidor
coloquei no lookup da outra maquina o meu ip e rodei no outro pc a visão para um cadastro... e da o nullpointer citado acima
L
Laubstein_M_cio
O objeto sql e o conn foram instanciados ou estão nulos?
Debuga quando chegar na linha, só coloque o mouse em cima da palavra que vc logo vai notar a cagada.
S
souzajhonatan
ele eh um objecto que criei
Connectionconn=Conexao.getConnection();
quando debuguei o conn fiik null.
e dps ele nem passa pelo sql… cai direto no catch… sera que o problema esta na conexão com o banco de um pc para o outro?
L
Laubstein_M_cio
#publicstaticConnectiongetConnection()#{#Connectionconn1=null;##try{#// Informa qual o driver jdbc #Class.forName("org.postgresql.Driver");##// Cria uma conexão com o banco de dados #conn1=DriverManager.getConnection#("jdbc:postgresql://189.65.192.168:5432/pfc","postgres","jhonatan");#}#catch(Exceptione)#{#System.out.println("Ocorreu um erro no metodo Util.getConexao(): "+e.getMessage());#}
Poe um BreakPoint no catch acima e veja a exceção que esta lançando, e mais uma coisa, você não esta tratando a exceção aí acima, se uma exceção ocorre e a sua aplicação não pode prosseguir você deve lançar um RuntimeException, okk???
Falow
S
souzajhonatan
cara fiz o debug na classe de conexão… a zica esta la na conexão… ele não passa por essa linha
Uh,mas você não fez o que eu pedi… qual a mensagem do problema filho?
S
souzajhonatan
bom rsrs como faço um runtimeException?
eu fiz um printStackTrace pra exibir o erro… mais ele fik null
L
Laubstein_M_cio
# catch (Exception e)
# {
# System.out.println("Ocorreu um erro no metodo Util.getConexao(): " + e.getMessage()); // Poe um BreakPoint nessa linha e me diz o que o e.getMessage() fala
# }
O Runtime é assim
# catch (Exception e)
# {
# new RuntimeException(“Puta que o pariu fudeu de vezz”, e); // Nunca esqueça de passar o e, se não você perderá o Stack Trace do erro inicial
# }
Falow
S
souzajhonatan
Debuguei e o “e” diz que a tentiva de conexão falhou.
Usando RMI, tem que fazer alguma outra configuração?
L
Laubstein_M_cio
Então Megafit, o problema não tem nada a ver com o RMI, o problema de conexão você pode perguntar pra Cláudia que ela vai te passar tudo certo, ou tenta pegar um tutorial JDBC com conexão com o POSTGRE.
S
souzajhonatan
Então alemão… mais pq fazendo localhost ele funfa?
L
Laubstein_M_cio
Novamente, isto não tem nada a ver com o RMI, por um acaso você tem o banco instalado e acessivel aqui 89.65.192.168:5432:5432 , com as configurações corretas?