| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2012 15:25:04
|
billrt
HelloWorld
Membro desde: 31/01/2012 15:01:56
Mensagens: 14
Offline
|
Olá pessoal, Estou com um problema, peço por gentileza auxilio.. tenho um projeto em java onde utilizo o eclipse 3.6 (hélios) com MVC para acessar o banco postgresql 8.4 no servidor..
e esta aplicação está quase pronta então gerei jar para efetuar testes. Ai surgiu um problema.. os formulários jinternalframes que possuem acesso ao banco de dados não abrem, nem exibe mensagem de erro. O jar carrega o jframe principal normalmente se for em menu informações (about) abre normalmente... Olhando o pacote jar consta suas class e o diretorio lib que está fora do src porem pertence ao projeto e na lib contem os jars como o driver do postgresql para efetuar a conexao com banco de dados e o ireport para emitir os relatorios, verifiquei e o driver do postgresql é chamado diretamente desta lib. O estranho que com o eclipse funciona normalmente.
Utilizo Linux como ambiente padrão e o jdk 1.6.
Como faço para que ao gerar um jar ele inclua o pacote corretamente para que ao ser executado ele abre e efetua a conexao com o postgresql?
Desde já agradeço
Atenciosamente
BillRT
This message was edited 1 time. Last update was at 01/03/2012 05:46:16
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2012 15:42:30
|
avsouza
Virtual Machine Man
![[Avatar]](/images/avatar/752a6fc94c80ba4f8b2dc8506fcc87f3.jpg)
Membro desde: 03/08/2007 13:04:42
Mensagens: 660
Localização: Florianópolis/SC
Offline
|
Coloca os jar do externos ao seu projeto no classpath
|
Alexandre Vieira de Souza
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2012 16:47:16
|
billrt
HelloWorld
Membro desde: 31/01/2012 15:01:56
Mensagens: 14
Offline
|
Olá colega já fiz isso e mesmo assim nao funciona, na pasta final do projeto tem o meu jar e uma pasta lib contendo os jar do postgreesql e do ireport e ao executar o meu jar da na mesma nao abre o formulario do cliente
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/02/2012 06:56:32
|
avsouza
Virtual Machine Man
![[Avatar]](/images/avatar/752a6fc94c80ba4f8b2dc8506fcc87f3.jpg)
Membro desde: 03/08/2007 13:04:42
Mensagens: 660
Localização: Florianópolis/SC
Offline
|
Executa seu jar por linha de comando "java -jar seuJar.jar" e veja se tem alguma mensagem.
Normalmente quando esse tipo de problema ocorre, roda na IDE e não roda o jar é problema de biblioteca que não no classpath.
|
Alexandre Vieira de Souza
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/02/2012 08:27:52
|
billrt
HelloWorld
Membro desde: 31/01/2012 15:01:56
Mensagens: 14
Offline
|
olá caro colega avsouza
Testei como vc sugeriu e realmente exibe erro no terminal.. erro que nunca tinha visto antes
[codigo]
Connection Started
org.postgresql.Driver
java.lang.NullPointerException
at formularios.frmCadClientes.getCboEcivil(frmCadClientes.java:556)
at formularios.frmCadClientes.getPCliePF(frmCadClientes.java:339)
at formularios.frmCadClientes.getJContentPane(frmCadClientes.java:286)
at formularios.frmCadClientes.initialize(frmCadClientes.java:202)
at formularios.frmCadClientes.<init>(frmCadClientes.java:192)
at formularios.frmPrincipal$1.actionPerformed(frmPrincipal.java:164)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012)
[/codigo]
o estranho que exibe connection started ou seja a conexao é efetuada, como consigo pegar esses erros para corrigir com o eclipse ide que não exibe
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/02/2012 12:07:34
|
avsouza
Virtual Machine Man
![[Avatar]](/images/avatar/752a6fc94c80ba4f8b2dc8506fcc87f3.jpg)
Membro desde: 03/08/2007 13:04:42
Mensagens: 660
Localização: Florianópolis/SC
Offline
|
o problema é um java.lang.NullPointerException.
|
Alexandre Vieira de Souza
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/02/2012 12:10:19
|
Artur Drummond
Debugger
Membro desde: 13/09/2006 20:58:58
Mensagens: 66
Offline
|
Coloca o código de algumas linhas da classe "frmCadClientes.java" pra gente poder te ajudar e ter uma idéia do que pode estar ocorrendo.
|
SCJP 5.0 (2009)
SCWCD 5.0 (2010) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/02/2012 14:49:34
|
billrt
HelloWorld
Membro desde: 31/01/2012 15:01:56
Mensagens: 14
Offline
|
Olá coro colegas, o problema que venho tendo ocorre nao só no cliente, mas bem como em todo o projeto, nao posto o codigo do cliente aqui porque é complexo e extenso, mais de 1000 linhas de codigos em diversas classes, ja o erro é identificado; ele não encontra o driver do postgresql.. como havia mencionado, coloquei o driver dentro de uma pasta lib que está dentro a pasta do projeto porem ao lado da src e importei a no eclipse, verifiquei se havia colocado corretamente no seu java builder path e consta tb para exportação entao logo entendo que o driver deveria encontrar dentro de seu jar, o qual não está ocorrendo.
O mesmo la no classpath consta: postgresql-8.4-703.jdbc4.jar - esisloja/lib utilizado pelo eclipse ide para rodar o projeto o qual roda normalmente sem erro. Esse erro ocorreria se eu removesse o driver do postgresql da pasta lib
segue abaixo parte do erro listado no terminal
[codigo]
Session Started
Erro class path org.postgresql.Driver: não encontrado
Erro ao persistir query. Motivo:null
java.lang.NullPointerException
at dao.ecivil_dao.ListEcivil(ecivil_dao.java:35)
at formularios.frmCadClientes.getCboEcivil(frmCadClientes.java:556)
at formularios.frmCadClientes.getPCliePF(frmCadClientes.java:339)
at formularios.frmCadClientes.getJContentPane(frmCadClientes.java:286)
at formularios.frmCadClientes.initialize(frmCadClientes.java:202)
at formularios.frmCadClientes.<init>(frmCadClientes.java:192)
at formularios.frmPrincipal$1.actionPerformed(frmPrincipal.java:164)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.AbstractButton.doClick(AbstractButton.java:374)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:829)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.menuDragMouseReleased(BasicMenuItemUI.java:939)
at javax.swing.JMenuItem.fireMenuDragMouseReleased(JMenuItem.java:585)
at javax.swing.JMenuItem.processMenuDragMouseEvent(JMenuItem.java:482)
at javax.swing.JMenuItem.processMouseEvent(JMenuItem.java:42
at javax.swing.MenuSelectionManager.processMouseEvent(MenuSelectionManager.java:320)
at javax.swing.plaf.basic.BasicPopupMenuUI$MouseGrabber.eventDispatched(BasicPopupMenuUI.java:860)
at java.awt.Toolkit$SelectiveAWTEventListener.eventDispatched(Toolkit.java:237
at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2270)
[/codigo]
O erro listado acima mostra que java.lang.NullPointerException é que contem item null (nulo) claro como ha o Erro ao persistir consulta . Motivo:null poisi nao consegue efetuar a conenxao e retonar null
se nao encontra o driver nao efutaa connexao
Ai pergunto, como posso fazer para que o java encontra o driver dentro da pasta dele pois se descompactar o jar consta o src, bin, lib?
Segue trecho de codigo
Como trabalho com MVC tenho 1 classe central que processa os dados q é a connection
tenho as daos e as entidades e isso opera no formato de 3 camadas.. o frmcadcliente tem combos que dependem de informações tais como o estado civil que é carregado pelo seu metodo
o metodo lista ecivil do dao é
[codigo]
sql="select * from ecivil order by ecivil";
ArrayList<ecivil_ent>ecivil = new ArrayList<ecivil_ent>();
rs=con.getinstancia().consulta(sql); //onde con verifica a conexao retorna a instancia da mesma pega a sql e manda para ser consutlado
while(rs.next()){
ecivil e = new ecivil();
e.setDescricao(rs.getString("descricao"));
ecivil.add(e);
}
listaecivil = dao.ecivil.listaecivil();
qecivil = listaecivil.size();
if(ecivil>0){
for(int i=0; i< qecivil; i++){
cboecvil.additem(listaecivil);
}
}
[/codigo]
Desde já agradeço a colaboração dos colegas
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/02/2012 17:30:38
|
Artur Drummond
Debugger
Membro desde: 13/09/2006 20:58:58
Mensagens: 66
Offline
|
Hum... vc montou um jar com tudo dentro ou vc montou um war/ear com os jars necessários?
Como vc fez o deploy da sua aplicação?
Em qual servidor de aplicação vc está fazendo os testes (JBoss/WebLogic/WebSphere)?
|
SCJP 5.0 (2009)
SCWCD 5.0 (2010) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/02/2012 13:31:50
|
billrt
HelloWorld
Membro desde: 31/01/2012 15:01:56
Mensagens: 14
Offline
|
Olá caro colega Artur Drummond, sim eu gerei um jar e incluir a pasta src e a lib.. tanto que se extrair os arquivos do jar terá 2 pasta principais sendo elas:
- src
- lib
E se olhar o conteudo da src contem todo o projeto .class tais como formularios/clientes.class entre outros e em lib o driver utilizado para acessar o postgresql.
Desde já, agradeço
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/02/2012 11:20:20
|
billrt
HelloWorld
Membro desde: 31/01/2012 15:01:56
Mensagens: 14
Offline
|
Olá caro colegas..
Fiz testes e mesmo utilizando driver externo a aplicação ele não efetua a conexão com o postgre, porém agora abre os formulários internalframes como o frmcadclientes, porém ele vem sem dados de apoio tais como combo de estados e cidades ficam vazias.
Se rodar o jar no terminal ele continua exibindo erro de classpath mesmo o driver estando no diretorio e no classpath do eclipse.. se abrir o jar como gerenciador de pacotes consigo visualizar o driver do postgre dentro da pasta do projeto junto com a classe man.
Com o eclipse 3.6 funciona normalmente..
Por favor, alguém pode me ajudar??
This message was edited 1 time. Last update was at 13/02/2012 11:59:40
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/02/2012 12:14:18
|
maior_abandonado
JWizard
![[Avatar]](/images/avatar/0d7c463832b871c20405a6c9296b5517.jpg)
Membro desde: 03/09/2007 11:30:08
Mensagens: 2694
Localização: sp
Offline
|
na execução do seu jar acredito que não tenha encontrado o jar do seu banco de dados. Opções:
* no manifest.mf do seu jar, apontar o endereço dos .jar das libs e onde for colocar o jar colocar as libs tb na máquina;
* adicionar a execução do seu jar via linha de comando o argumento -cp e o endereço de cada lib separados por separador do seu so (; no windows e : no linux se bem me lembro)
* quando você exportar o seu jar pelo eclipse, clica com o direito no projeto, vai em export, na janela que abre vai em "runnable jar file" em java e na tela seguinte você marca o radiobutton "extract required libraries into generated jar". Neste caso você pode estar violando algumas licenças então eu não posso te recomendar esse, mas funciona se você quiser usar para testar...
|
espero ter ajudado...
falando nisso, caso seu problema tenha sido resolvido, edite o seu primeiro post e coloque um [RESOLVIDO] no titulo do tópico.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/02/2012 07:11:52
|
billrt
HelloWorld
Membro desde: 31/01/2012 15:01:56
Mensagens: 14
Offline
|
Olá caro colega
testei exportar o jar pelo runnable jar file porém o eclipse hélios não permitiu finalizar, segui os passo da tela indiquei onde gerar o jar, porem a combo launch confifuration permanece bloqueado e o botão finish também fica bloqueado.. dessa forma o meu projeto só exporta pelo método exportar jar file
Toda vez que quero exportar sigo os passo..
como eu utilizo a lib que permanece dentro da pasta do projeto e como eclipse funciona, verifico se está está para ser exportado e seleciono export > jar file e depois seleciono xclasspath, project do projeto e em seguida seleciono os 2 diretórios: src e lib. Um detalhe curioso é q se seleciona o src ele exibe os arquivos dele ja a lib fica em branco e se gerar esse jar e abrir pelo gerenciador de pacotes não consta um diretório lib porém se incluir uma lib externa do projeto definir para ser exportado junto e fazer todo o processo de exportação jar file e abrir o jar como gerenciador de pacotes a lib existe so que fica com um unico endereço ou seja se endereço fixo do usuario 1 porém se usar no usuario 2 nao abre o jar devido dentro do classpath estar procurando uma lib no caminho /home/usuario1/projeto/meujar.jar
Nesse usuario1 com o jar gerado dessa forma ele executa porém não acessa o banco de dados..
Não sei mesmo porque, pois fiz tudo possível e o jar gerado abre mas não efetua conexao..
Testei com o Eclipse Builder tester ele informa que o codigo java do projeto não consta erro e deveria gerar o jar e funcionar normalmente..
Por favor peço ajuda..
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/02/2012 08:18:07
|
maior_abandonado
JWizard
![[Avatar]](/images/avatar/0d7c463832b871c20405a6c9296b5517.jpg)
Membro desde: 03/09/2007 11:30:08
Mensagens: 2694
Localização: sp
Offline
|
billrt wrote:Olá caro colega
testei exportar o jar pelo runnable jar file porém o eclipse hélios não permitiu finalizar, segui os passo da tela indiquei onde gerar o jar, porem a combo launch confifuration permanece bloqueado e o botão finish também fica bloqueado.. dessa forma o meu projeto só exporta pelo método exportar jar file
Toda vez que quero exportar sigo os passo..
como eu utilizo a lib que permanece dentro da pasta do projeto e como eclipse funciona, verifico se está está para ser exportado e seleciono export > jar file e depois seleciono xclasspath, project do projeto e em seguida seleciono os 2 diretórios: src e lib. Um detalhe curioso é q se seleciona o src ele exibe os arquivos dele ja a lib fica em branco e se gerar esse jar e abrir pelo gerenciador de pacotes não consta um diretório lib porém se incluir uma lib externa do projeto definir para ser exportado junto e fazer todo o processo de exportação jar file e abrir o jar como gerenciador de pacotes a lib existe so que fica com um unico endereço ou seja se endereço fixo do usuario 1 porém se usar no usuario 2 nao abre o jar devido dentro do classpath estar procurando uma lib no caminho /home/usuario1/projeto/meujar.jar
Nesse usuario1 com o jar gerado dessa forma ele executa porém não acessa o banco de dados..
Não sei mesmo porque, pois fiz tudo possível e o jar gerado abre mas não efetua conexao..
Testei com o Eclipse Builder tester ele informa que o codigo java do projeto não consta erro e deveria gerar o jar e funcionar normalmente..
Por favor peço ajuda..
para configurar o que aparecerá no launch configuration você deve ir no menu run -> run configuration, na tela que abre você vai em java aplication no lado esquerdo (clique duplo para criar um novo), marca la o seu projeto e a classe com o método main e clica em apply e depois close.
ai você volta la no export, runnable jar file...
|
espero ter ajudado...
falando nisso, caso seu problema tenha sido resolvido, edite o seu primeiro post e coloque um [RESOLVIDO] no titulo do tópico.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/02/2012 06:45:07
|
billrt
HelloWorld
Membro desde: 31/01/2012 15:01:56
Mensagens: 14
Offline
|
Olá colega maior_abandonado
segui conforme você comentou e testei o rum, e logo apareceu a classe man no launch configurantion
e em seguida olhei o java path nas guias, precebi que havia uma pasta da lib do postgre no source o qual impedia o jar gerado ter acesso..
removendo ela e na pasta de library deixei que acesse o postgresql de dentro do proejto.. e em segui gerei o jar pelo java runtable file
e pronto funciona..
Inacreditável pois o erro tão esdruxulo impedia o aplicativo ter acesso ao postgre no servidor e agora funciona
Obrigado
|
|
|
 |
|
|