Ola pessoal, tudo bem??
Olha q engraçado (que ja me deu muita raiva!!), eu fiz um applet pra conectar via browser, testei ele localmente com o eclipse (applet viewer) e deu tudo certinho. Coloquei ele remotamente neste site www.comp.ufscar.br/~jordansilva/index.html (podem testar login: 1; senha:oie, se colocarem algo diferente disso ele da uma mensagem d erro…deveria dar!!!) e dai começo minha dor d cabeça!! Fiz uma assinatura como manda esse manual http://www.javafree.org/javabb/viewtopic.jbb?p=114395&page=1 e setei as configuraçoes de acesso remoto do windows XP e do MySQL mas mesmo assim ele nao conecta, diz q nao acha o drive…
Meu amigo fez um teste simples da maquina dele executando um codigo de acesso ao banco e inserçao d uma tabela via eclipse, funcionou certinho!!! Entao nao eh problema com as permissoes do firewall nem do MySQL…
Abaixo segue o codigo de acesso e o erro que eh dado…
package empresa.controle.trabalho;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class GerenteConexao
{
private Connection connection;
private Statement statement;
private String url, login, senha;
public GerenteConexao(String url, String login, String senha) {
// TODO Auto-generated constructor stub
this.url = url;
this.login = login;
this.senha = senha;
}
public boolean criaConexao()
{
try{
if (connection == null)
{
Class.forName("org.gjt.mm.mysql.Driver");
// Criando a conexão com o Banco de Dados
//String serverName = "localhost";
//String mydatabase = "mydatabase";
//String url = "jdbc:mysql://" + serverName + "/" + mydatabase; // a JDBC url
connection = DriverManager.getConnection(url, login, senha);
}
else if (connection.isClosed())
{
connection = null;
return criaConexao();
}
} catch (ClassNotFoundException e)
{
// Driver não encontrado
System.out.println("O driver expecificado não foi encontrado.");
e.printStackTrace();
return false;
} catch (SQLException e)
{
// Não está conseguindo se conectar ao banco
e.printStackTrace();
System.out.println("Não foi possível conectar ao Banco de Dados");
return false;
}
return true;
}
public boolean closeConnection()
{
try {
connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
return true;
}
public Statement obterStatement()
{
if (connection == null)
criaConexao();
if (connection != null)
{
try {
statement = connection.createStatement();
} catch (SQLException e) {
e.printStackTrace();
}
return statement;
}
return null;
}
}
JApplet
package empresa.controle.trabalho;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Vector;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JOptionPane;
@SuppressWarnings("serial")
public class ControleFuncionario extends JApplet
{
private PainelIniciaAtividadeJaInicializada painelInicialAtividadeJaInicializada;
private PainelIniciaNovaAtividade painelNovaAtividade;
private PainelIniciarAtividades painelIniciarAtividade;
private PainelInsereAtividadeRealizada painelInsereAtividadeRealizada;
private PainelLogin painelLogin;
private PainelParaAtividade painelParaAtividade;
// Container do JApplet
private Container container;
//private JScrollPane sp;
// o funcionario q logou no sistema
private Funcionario funcionario;
private RealizaTarefa rt;
// conexao com o banco
private GerenteConexao conexao;
private String login;
private String senha;
private String url;
@Override
public void init()
{
url = "jdbc:mysql://200.18.98.72:3306/GerenciamentoFuncionario";
login = "login";
senha = "senha";
conexao = new GerenteConexao(url, login, senha);
container = getContentPane();
container.setLayout(new BorderLayout());
//sp = new JScrollPane();
//container.add(sp, BorderLayout.CENTER);
this.setSize(500, 600);
login();
}
private void login()
{
painelLogin = new PainelLogin();
//sp = new JScrollPane(painelLogin);
container.removeAll();
container.add(painelLogin, BorderLayout.CENTER);
repaint();
JButton entrar = painelLogin.getJButtonLogar();
class Logar implements ActionListener
{
public void actionPerformed(ActionEvent arg0)
{
int codigo = 0;
try{
codigo = Integer.parseInt(painelLogin.getJTextFieldLogin().getText());
}catch(NumberFormatException e){
painelLogin.erro();
painelLogin.getJPasswordFieldSenha().setText("");
painelLogin.getJTextFieldLogin().setText("");
return;
}
funcionario = Funcionario.obter(codigo, conexao);
if (funcionario == null)
{
painelLogin.erro();
painelLogin.getJPasswordFieldSenha().setText("");
painelLogin.getJTextFieldLogin().setText("");
}
else{
char[] senhaAux = painelLogin.getJPasswordFieldSenha().getPassword();
String senha = "";
for (int i = 0; i < senhaAux.length; i++)
senha += senhaAux[i];
if(!funcionario.getSenha().equals(senha))
{
painelLogin.erro();
painelLogin.getJPasswordFieldSenha().setText("");
painelLogin.getJTextFieldLogin().setText("");
}
else{ // login com sucesso
//verifica se funcionario esta realizando alguma tarefa
Vector<RealizaTarefa> rtAux = RealizaTarefa.obter(funcionario, conexao);
if (rtAux == null)
{
iniciaAtividades();
return;
}
boolean realizando = false;
for (int i = 0; i < rtAux.size() && !realizando; i++)
if (rtAux.get(i).getStatus() == RealizaTarefa.OCORRENDO)
{
realizando = true;
rt = rtAux.get(i);
}
if (realizando)
pararAtividade();
else iniciaAtividades();
}
}
}
}
Logar logar = new Logar();
entrar.addActionListener(logar);
}
private void iniciaAtividades()
{
painelIniciarAtividade = new PainelIniciarAtividades();
//JScrollPane sp = new JScrollPane(painelIniciarAtividade);
container.setLayout(new BorderLayout());
container.removeAll();
container.add(painelIniciarAtividade, BorderLayout.CENTER);
repaint();
JButton novaAtividade = painelIniciarAtividade.getJButtonNovaAtividade();
novaAtividade.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0)
{
novaAtividade();
}
});
JButton AtividadeIniciada = painelIniciarAtividade.getJButtonAtividadeInicializada();
AtividadeIniciada.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent arg0)
{
atividadeInicializada();
}
});
JButton atividadeRealizada = painelIniciarAtividade.getJButtonAtividadeJaRealizada();
atividadeRealizada.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent arg0)
{
atividadeJaRealizada();
}
});
}
private void novaAtividade()
{
Vector<Fabrica> fabricas = Fabrica.obtemTodas(conexao);
Vector<Tarefa> tarefas = Tarefa.obtemTodas(conexao);
painelNovaAtividade = new PainelIniciaNovaAtividade(fabricas, tarefas);
//JScrollPane sp = new JScrollPane(painelNovaAtividade);
container.setLayout(new BorderLayout());
container.removeAll();
container.add(painelNovaAtividade, BorderLayout.CENTER);
repaint();
JButton cancelar = painelNovaAtividade.getJButtonCancelar();
cancelar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0)
{
iniciaAtividades();
}
});
JButton iniciar = painelNovaAtividade.getJButtonIniciar();
iniciar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0)
{
Date dataInicio = new Date();
Object[] nomeFabricas = painelNovaAtividade.getJListFabricas().getSelectedValues();
Vector<Fabrica> fabricas = new Vector<Fabrica>();
// pega as fabricas
for (int i = 0; i < nomeFabricas.length; i++)
fabricas.addElement((Fabrica)nomeFabricas[i]);
int natureza = 1;
if (painelNovaAtividade.getJRadioButtonNatureza1().isSelected())
natureza = 1;
else if (painelNovaAtividade.getJRadioButtonNatureza2().isSelected())
natureza = 2;
else if (painelNovaAtividade.getJRadioButtonNatureza3().isSelected())
natureza = 3;
int status = RealizaTarefa.OCORRENDO;
//pega a tarefa
Tarefa tarefa = null;
if (painelNovaAtividade.getJRadioButtonAtividadeExistente().isSelected())
tarefa = (Tarefa)painelNovaAtividade.getJComboBoxAtividades().getSelectedItem();
else if (painelNovaAtividade.getJRadioButtonNovaAtividade().isSelected())
{
String t = (String)painelNovaAtividade.getJTextFieldNovaAtividade().getText();
tarefa = new Tarefa(t, conexao);
tarefa.salva();
}
rt = new RealizaTarefa(funcionario, tarefa, fabricas, dataInicio, natureza, status, conexao );
if (!rt.salvar())
JOptionPane.showMessageDialog(null, "Erro ao salvar!", "Erro",
JOptionPane.ERROR_MESSAGE);
else pararAtividade();
}
});
}
private void pararAtividade()
{
if (rt == null)
{
Vector<RealizaTarefa> rtAux = RealizaTarefa.obter(funcionario, conexao);
for (int i = 0; i < rtAux.size(); i++)
if (rtAux.get(i).getStatus() == RealizaTarefa.OCORRENDO)
rt = rtAux.get(i);
}
painelParaAtividade = new PainelParaAtividade(rt);
//JScrollPane sp = new JScrollPane(painelParaAtividade);
container.removeAll();
container.add(painelParaAtividade, BorderLayout.CENTER);
repaint();
JButton parar = painelParaAtividade.getJButtonPararAtividade();
parar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0)
{
rt.termina();
iniciaAtividades();
}
});
}
private void atividadeInicializada()
{
Vector<Fabrica> fabricas = Fabrica.obtemTodas(conexao);
Vector<Tarefa> tarefas = Tarefa.obtemTodas(conexao);
painelInicialAtividadeJaInicializada = new PainelIniciaAtividadeJaInicializada(fabricas, tarefas);
//JScrollPane sp = new JScrollPane(painelInicialAtividadeJaInicializada);
container.removeAll();
container.add(painelInicialAtividadeJaInicializada, BorderLayout.CENTER);
repaint();
JButton cancelar = painelInicialAtividadeJaInicializada.getJButtonCancelar();
cancelar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0)
{
iniciaAtividades();
}
});
JButton iniciar = painelInicialAtividadeJaInicializada.getJButtonIniciar();
iniciar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0)
{
String data = painelInicialAtividadeJaInicializada.getJTextFieldData().getText();
String hora = painelInicialAtividadeJaInicializada.getJTextFieldHora().getText();
String dataCompleta = data + "-" + hora;
SimpleDateFormat formataData= new SimpleDateFormat("dd/MM/yyyy-HH:mm");
Date dataInicio = null;
try {
dataInicio = formataData.parse(dataCompleta);
} catch (ParseException e)
{
return;
}
Object[] nomeFabricas = painelInicialAtividadeJaInicializada.getJListFabricas().getSelectedValues();
Vector<Fabrica> fabricas = new Vector<Fabrica>();
// pega as fabricas
for (int i = 0; i < nomeFabricas.length; i++)
fabricas.addElement((Fabrica)nomeFabricas[i]);
int natureza = 1;
if (painelInicialAtividadeJaInicializada.getJRadioButtonNatureza1().isSelected())
natureza = 1;
else if (painelInicialAtividadeJaInicializada.getJRadioButtonNatureza2().isSelected())
natureza = 2;
else if (painelInicialAtividadeJaInicializada.getJRadioButtonNatureza3().isSelected())
natureza = 3;
int status = RealizaTarefa.OCORRENDO;
// pega a tarefa
Tarefa tarefa = null;
if (painelInicialAtividadeJaInicializada.getJRadioButtonAtividadeExistente().isSelected())
tarefa = (Tarefa)painelInicialAtividadeJaInicializada.getJComboBoxAtividades().getSelectedItem();
else if (painelInicialAtividadeJaInicializada.getJRadioButtonNovaAtividade().isSelected())
{
String t = (String)painelInicialAtividadeJaInicializada.getJTextFieldNovaAtividade().getText();
tarefa = new Tarefa(t, conexao);
tarefa.salva();
}
rt = new RealizaTarefa(funcionario, tarefa, fabricas, dataInicio, natureza, status, conexao );
rt.salvar();
pararAtividade();
}
});
}
private void atividadeJaRealizada()
{
Vector<Fabrica> fabricas = Fabrica.obtemTodas(conexao);
Vector<Tarefa> tarefas = Tarefa.obtemTodas(conexao);
painelInsereAtividadeRealizada = new PainelInsereAtividadeRealizada(fabricas, tarefas);
//JScrollPane sp = new JScrollPane(painelInsereAtividadeRealizada);
container.removeAll();
container.add(painelInsereAtividadeRealizada, BorderLayout.CENTER);
repaint();
JButton cancelar = painelInsereAtividadeRealizada.getJButtonCancelar();
cancelar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0)
{
iniciaAtividades();
}
});
JButton iniciar = painelInsereAtividadeRealizada.getJButtonIniciar();
iniciar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0)
{
String data = painelInsereAtividadeRealizada.getJTextFieldData().getText();
String hora = painelInsereAtividadeRealizada.getJTextFieldHora().getText();
String dataCompleta = data + "-" + hora;
String dataFimAux = painelInsereAtividadeRealizada.getJTextFieldDataFim().getText();
String horaFim = painelInsereAtividadeRealizada.getJTextFieldHoraFim().getText();
String dataCompletaFim = dataFimAux + "-" + horaFim;
SimpleDateFormat formataData= new SimpleDateFormat("dd/MM/yyyy-HH:mm");
Date dataInicio = null;
Date dataFim = null;
try {
dataInicio = formataData.parse(dataCompleta);
dataFim = formataData.parse(dataCompletaFim);
} catch (ParseException e)
{
return;
}
Object[] nomeFabricas = painelInsereAtividadeRealizada.getJListFabricas().getSelectedValues();
Vector<Fabrica> fabricas = new Vector<Fabrica>();
// pega as fabricas
for (int i = 0; i < nomeFabricas.length; i++)
fabricas.addElement((Fabrica)nomeFabricas[i]);
int natureza = 1;
if (painelInsereAtividadeRealizada.getJRadioButtonNatureza1().isSelected())
natureza = 1;
else if (painelInsereAtividadeRealizada.getJRadioButtonNatureza2().isSelected())
natureza = 2;
else if (painelInsereAtividadeRealizada.getJRadioButtonNatureza3().isSelected())
natureza = 3;
int status = RealizaTarefa.CONCLUIDO;
//pega a tarefa
Tarefa tarefa = null;
if (painelInsereAtividadeRealizada.getJRadioButtonAtividadeExistente().isSelected())
tarefa = (Tarefa)painelInsereAtividadeRealizada.getJComboBoxAtividades().getSelectedItem();
else if (painelInsereAtividadeRealizada.getJRadioButtonNovaAtividade().isSelected())
{
String t = (String)painelInsereAtividadeRealizada.getJTextFieldNovaAtividade().getText();
tarefa = new Tarefa(t, conexao);
tarefa.salva();
}
rt = new RealizaTarefa(funcionario, tarefa, fabricas, dataInicio, dataFim, natureza, status, conexao );
if (!rt.salvar())
JOptionPane.showMessageDialog(null, "Erro ao savar!", "Erro!",
JOptionPane.ERROR_MESSAGE);
else iniciaAtividades();
}
});
}
}
Mensagem de erro ao tentar conectar do applet remotamente
O driver expecificado não foi encontrado.
java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver
at sun.applet.AppletClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at empresa.controle.trabalho.GerenteConexao.criaConexao(GerenteConexao.java:26)
at empresa.controle.trabalho.GerenteConexao.obterStatement(GerenteConexao.java:71)
at empresa.controle.trabalho.Funcionario.obter(Funcionario.java:68)
at empresa.controle.trabalho.ControleFuncionario$1Logar.actionPerformed(ControleFuncionario.java:83)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener$Actions.actionPerformed(Unknown Source)
at javax.swing.SwingUtilities.notifyAction(Unknown Source)
at javax.swing.JComponent.processKeyBinding(Unknown Source)
at javax.swing.JComponent.processKeyBindings(Unknown Source)
at javax.swing.JComponent.processKeyEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.io.IOException: open HTTP connection failed.
at sun.applet.AppletClassLoader.getBytes(Unknown Source)
at sun.applet.AppletClassLoader.access$100(Unknown Source)
at sun.applet.AppletClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
... 39 more
Exception in thread "AWT-EventQueue-11" java.lang.NullPointerException
at empresa.controle.trabalho.Funcionario.obter(Funcionario.java:74)
at empresa.controle.trabalho.ControleFuncionario$1Logar.actionPerformed(ControleFuncionario.java:83)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener$Actions.actionPerformed(Unknown Source)
at javax.swing.SwingUtilities.notifyAction(Unknown Source)
at javax.swing.JComponent.processKeyBinding(Unknown Source)
at javax.swing.JComponent.processKeyBindings(Unknown Source)
at javax.swing.JComponent.processKeyEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Valeu pela ajuda,
Abraçao