Tche
Maio 6, 2008, 10:16am
#1
Galera, urgente!!!
Tenho um aplicativo que utiliza Conexao com MySql 5.0 e está rodando local na máquina.
O meu aplicativo libera o acesso via usuário e senha, que seriam os mesmos do banco de dados.
Porém, quando tento fazer a conexão, me retorna uma Exception Estranha.
O nome dela? Não sei! Tentei utilizar este código para pegá-la mas não retorna linha nenhuma!
}(Exception e){
JOptionPane.showMessageDialog(null,e.getMessage());
}
Tentei utilizar ele em diversos lugares como demonstrá-lo num label qualquer, porém, ele não retorna linha alguma!
quando rodo na minha máquina, onde utilizo um e.printStackTrace(), ele roda normal.
porém, depois de eu compilar um arquivo JAR e enviá-lo à máquina do usuário, acontece isso!
Alguém poderia me ajudar com alguma idéia doque seria???
Agradeço desde já!!!
Acho que vc não está colocando o try-catch no lugar correto, ou seja, a exception está sendo gerada em algum lugar em que seu try-catch não está!!!
jopss
Maio 6, 2008, 10:29am
#3
Como está fazendo isso? ele instala o mysql tbm nao? Carrega o banco?
jopss
Tche
Maio 6, 2008, 10:33am
#4
positivo, esta máquina é o servidor de banco de dados, e estou instalando o aplicativo local por necessidades do usuário.
vou tentar ver o detalhe do try…
já agradeço a ajuda
jopss
Maio 6, 2008, 10:36am
#5
Se o JOptionPane abre e nao mostra nada dentro, entao o erro ocorrido está sim dentro do try…
se nem abre o JOptionPane, entao está ocorrendo fora mesmo…
jopss
Experimenta adicionar um try provisório englobando o método que faz a conexão ou os métodos prováveis que estejam ocorrendo o erro. Assim vc pode achar a linha que está dando o problema.
Tche
Maio 6, 2008, 10:41am
#7
é estranho isso…
porém, antes do meu try eu verifico o sistema operacional do usuário e atribuo uns valores a umas Strings.
Vou colocar o try englobando tudo e fazer um teste…
mas o engraçado, como disse o jopss é que o JOptionPane aparece…
se o erro estivesse fora do try, dentro de uma lógica, não apareceria o JOptionPane…
jopss
Maio 6, 2008, 10:42am
#8
ah outra coisa… se quando vc diz…
significa que vc acessa a base e tal, sem erros, entao e erro está na sua implementacao no cliente e nao no codigo em si… reveja como está fazendo isso… tente tbm rodar fora de uma IDE, na sua propria maquina, como se estivesse instalando no cliente para ver oq acontece… e programe pensando fora da IDE… já tive alguns problemas nisso e era algo assim.
e
}(Exception e){
JOptionPane.showMessageDialog(null,e.getMessage());
}
na verdade deve estar assim nao?:
}catch(Exception e){
JOptionPane.showMessageDialog(null,e.getMessage());
}
jopss
Tche
Maio 6, 2008, 10:46am
#9
Nada… englobei tudo pelo try mas ainda sim ocorre a mesma situação…
Tche
Maio 6, 2008, 10:49am
#11
sim sim o catch existe, só esqueci do coitado pra colocar aki! =)!
Eu rodo o JAR na minha máquina e rola… tanto com o host de Banco de Dados apontando para o meu quanto para o dele…
Tentei reinstalar a JVM na máquina do usuário mas persistiu o erro…
Tche
Maio 6, 2008, 10:54am
#12
try{
//Variáveis
ResultSet vResultado = null;
String vComando = null;
String vArquivoConfig = null;
vUsuario = oUsuario.getText();
vSenha = String.valueOf(oSenha.getPassword());
//Identifica qual sistema operacional utilizado
String vSistemaOperacional = System.getProperty("os.name");
if ( vSistemaOperacional.equals("Linux") ){
//System.out.println("Você está usando o sistema operacional : "+ vSistemaOperacional);
vArquivoConfig = "/Config.ini";
}
else if ( vSistemaOperacional.equals("Windows") ){
//System.out.println("Você está usando o sistema operacional : "+ vSistemaOperacional);
vArquivoConfig = "\\Config.ini";
}
else{
//System.out.println("Sistema operacional não localizado!");
}
//Identifica o diretório da aplicação
String vDiretorio = System.getProperty("user.dir");
//System.out.println("Diretório da aplicação : " + vDiretorio);
cConexao = new Conexao();
cConexao.mConexaoAbrir(vUsuario, vSenha);
FPrincipal cPrincipal = new FPrincipal();
cPrincipal.setVisible(true);
cPrincipal.mLogin(vUsuario, vSenha);
//Carrega informações do usuário
Sql cSql = new Sql();
vComando =
" select filial_nid "+
" from usuarios "+
" where usuario = '"+vUsuario+"'";
//System.out.println(vComando);
vResultado = cSql.mSqlSelect(vComando);
while (vResultado.next()){
vFilial = vResultado.getString("filial_nid");
cPrincipal.mLoginFilial(vFilial);
//System.out.println("Filial : "+vFilial);
}
//Fecha form
this.dispose();
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, ex.getMessage());
System.out.println("Erro " + ex.getMessage());
ex.printStackTrace();
oUsuario.setText("");
oSenha.setText("");
labelErro.setText(ex.getMessage());
} /*catch (SQLException ex) {
labelErro.setText("Usuário e Senha Inválidos!");
oUsuario.setText("");
oSenha.setText("");
}*/
}
posta o código pra gente ver se acha o problema
jopss
Maio 6, 2008, 11:22am
#15
Ou eu estou vesgo ou parece ok… a nao ser pelo fato de vc usar Sql ao inves de Statement… nao pode ser?? Sql é uma classe sua?? Se nao, nao tinha visto esta implementacao ainda… A saida output nao mostra nada??
Tente debugar ou colocar alguns System.out.println(“passou 01”) no meio do codigo… dae vc verifica depois onde parou e ocorreu a excecao…
jopss
Tche
Maio 6, 2008, 12:06pm
#16
Sql é uma classe…
Nela tenho os códigos SQL que envio e chamo as Stored Procedure que preciso…
O problema de debugar utilizando o System.out…
é que isso ocorre na máquina do cliente onde não tenho uma IDE
Roda através do console e coloque e.printStackTrace mesmo invés de apenas e.getMessage e veja o que está acontecendo.
E esssas Stored Procedures estoa no banco de dados do cliente também?
e.getMessage não retorna mensagem?
Isso tá cheirando a Exceção customizada em qualquer uma dessas classes dentro do try, as classes do Java mesmo sempre retornam uma mensagem significativa.
Sem chances de log do stacktrace?
Tche
Maio 7, 2008, 8:19am
#20
Sem chance…
Não está trazendo nada…
Rodar no Console que você diz seria rodar via área de texto???
Famoso cmd do Windows???