Pessoal,
Desenvolvi uma aplicação applet, aqual roda perfeitamente no Windows 98.
Mas, no Windows xp, não consigo me conectar ao servidor.
A configuração é a seguinte:
? MySQL 3.2
? J2sdk1.4.1_03
? (Admin. de fonte de dados / Drivers):
MySQL 2.50.39.00 MySQL AB
MySQL ODBC 3.51 Driver MySQL AB
? O meu %CLASSPATH% está corretamente configurado:
C:\j2sdk1.4.1_03\bin;c:\mysql\mysql-connector-java-3.0.8-stable\mysql-connector-java-3.0.8-stable-bin.jar;c:\mysql\mysql.jar
? Dentro da pasta c:\mysql, está localizado cortamente o arquivo mysql-conector Java, como indicado na Classpath.
Agora, não sei porque diabos toda vez em que o usuário digita a senha e ID, sempre dá este erro:
Error
java.sql.SQLException: Unable to connect to any hosts due to exception: java.security.AccessControlException: access denied (java.util.PropertyPermission file.encoding read)
Error
java.sql.SQLException: Unable to connect to any hosts due to exception: java.security.AccessControlException: access denied (java.util.PropertyPermission file.encoding read)
java.security.AccessControlException: access denied (java.lang.RuntimePermission
exitVM)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:270)
at java.security.AccessController.checkPermission(AccessController.java:401)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:542)
at java.lang.SecurityManager.checkExit(SecurityManager.java:762)
at java.lang.Runtime.exit(Runtime.java:88)
at java.lang.System.exit(System.java:713)
at MyApplet.init(MyApplet.java:56)
at sun.applet.AppletPanel.run(AppletPanel.java:348)
at java.lang.Thread.run(Thread.java:536)
Já estou quase cortando os pulsos.
Tem alguém que pode me ajudar neste dilema?
Obs.: Tenho nesta máquina o MySQLFRONT o qual funciona belezinha…
Muito obrigado.
veja o seguinte codigo, nas strings serverName, username e password estou recuperando os dados atraves de um arquivo de configuracao. Mas vc pode atribuir valores como os que estao nos comentarios. Esses seriam localhost, root e daf respectivamente.
try {
// Carregando o JDBC Driver
String driverName = "com.mysql.jdbc.Driver";
Class.forName(driverName);
// Criando a conexão com o Banco de Dados
//String serverName = "salademedicamen";
String serverName = maquina;//"localhost";
String mydatabase = "Processo";
String url = "jdbc:mysql://" + serverName + ":3306/" + mydatabase;
String username = usuario;//"root";
String password = senha;//"daf";
connection = DriverManager.getConnection(url, username, password);
stmPrincipal = connection.createStatement();
} // fim do try
catch (ClassNotFoundException e) {
//Driver não encontrado
JOptionPane.showMessageDialog(this,"O driver do banco não foi encontrado !\n" +
e.getMessage());
System.out.println("O driver expecificado não foi encontrado.");
} catch (SQLException e) {
//Não está conseguindo se conectar ao banco
JOptionPane.showMessageDialog(this,"Não foi possível conectar ao banco !\n" +
e.getMessage());
System.out.println("Não foi possível conectar ao Banco de Dados");
} catch (Exception e) {
//Não está conseguindo se conectar ao banco
JOptionPane.showMessageDialog(this,"Ocorreu um problema !\n" +
e.getMessage());
System.out.println(e.getMessage());
}
Qto ao drive faça o seguinte :
@echo off
c:\jdk1.5.0_02\bin\java.exe -classpath “C:\jdk1.5.0_02\jre\lib\rt.jar;C:\Wallace\Documentos\Java\Processo\classes” PrincipalFrame
Sempre executo assim meus programas. A classe PrincipalFrame como o nome diz é a principal. Ponha o comando acima num arquivo .bat e execute-o. Va no fonte do drive e copie a pasta chamada “com” pra dentro do diretorio classes. Estou executando o aruivo .bat do diretorio Processo. E as classes compiladas estao no diretorio classes.
Espero que ajude.
Wallace
[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos para ficarem mais legíveis - Reifel[/color][/size] :joia:
Wallace,
Muito obrigado, vou testar e já te retorno.
Mesmo ainda sem saber do resultado, ainda me parece extranho que exista alguma diferênçã (na passagem de parâmetros na conexão no windos98 e XP)
Valeu!
Wallace,
Este é o meu bloco de código, acredito que no fundo é como o teu, pode ser alguma cnfiguração do MySQL?
.Qual é a tua versão do MySQL?
.Quando é carregado na memória, quais são os drivers de MyODBC que aparecem detro do Environmet?
.Quais são as vesões de teus drivers?
Obrigado pela aujuda.
private boolean validateUser(String usr, String pwd){
try
{
Class.forName("org.gjt.mm.mysql.Driver");
String serverName = "localhost:3306";
String myDataBase = "banco";
String url = "jdbc:mysql://"+serverName+"/"+myDataBase;
Connection con = DriverManager.getConnection(url,usr,pwd);
Statement stmt = con.createStatement();
return true;
}
catch (ClassNotFoundException e){
System.out.println ("O driver expecificado não foi encontrado.");
e.printStackTrace();
return false;
}
catch(SQLException e){
JOptionPane.showMessageDialog(null,"ACESSO NEGADO!!!","ERRO:",0);
System.out.println("Error");
System.out.println(e);
return false;
}
}
Opa,
cara com localhost na máquina do cliente usando apples não funciona nem um pouquinho :lol:
ao invés de localhost, coloque o ip ou o host do servidor, porque utilizando localhost ele vai tentar achar o banco na máquina na qual está executando a aplicação.
:okok:
E ai, ja conseguiu resolver.
Tambem ja tive problemas com o drive, consegui da maneira q descrevi acima. Realmente o codigo parece o mesmo, mas a forma como o drive é carregado é diferente. Copiei a pasta “com” para dentro da pasta indicada no meu classpath. Esta pasta “com” esta nos fontes do drive q vem em um arquivo .jar .
Depois teste somente a conexão pra ver se gera alguma excessao, veja como utilizei o meu classapth no exemplo q dei inicialmente. Coloquei os caminhos no arquivo .bat q executa o sistema.
String driverName = “com.mysql.jdbc.Driver”;
Class.forName(driverName);
Wallace