estou desenvolvendo um applet pra funcinar dentro de um servidor php e preciso fazer uma conexao com o banco de dados mysql pra baixar alguns dados sobre a pessoa que esta logada no sistema, dentro do applet.
bem, a maneira que eu descobri pra fazer essa comunicacao eh usando a biblioteca “mysql-connector-java-5.1.5-bin.jar”, disponivel pra download na pagina do proprio mysql.
pois bem, dentro do eclipse, eu consigo usar essa biblioteca perfeitamente bem usando um recurso do proprio eclipse pra importa-la. Porem, quando eu crio a pagina html que vai chamar esse applet, ele eh baixado mas nao consegue carregar essa biblioteca, dando erro no meu programa.
ja vi varios tutorias por ai e ainda nao consegui fazer esse bentido programa funcionar fora do eclipse.
A minha recomendação, que sempre repito, é: applets não devem ser usados para acessar bancos de dados. Transforme sua aplicação em uma aplicação Desktop (talvez Java Web Start).
De qualquer maneira, se você insistir (sabe como é que é, foi uma idéia maravilhosa do seu chefe e você tem de fazer funcionar mesmo que tenha de matar a mãe e os filhos dele - o que normalmente deixa de ser uma idéia maravilhosa), você tem de:
Modificar a tag < applet > para mencionar o arquivo jar do driver de banco de dados;
Assinar digitalmente tanto o jar da sua applet quanto o jar do driver;
Ter bastante paciência porque mesmo fazendo tudo certinho, muitas vezes continua dando problemas.
Sim, eu sei que nao deveria estar colcando um applet pra acessar banco de dandos. O que preciso na verdade eh que o usuario entre num sistema web feito em php e lah veja um mapa com a localizacao de onde ele esta. Os dados dessa localizacao ficam num banco de dados, pois estao sempre sendo atualizadas por um GPS. Entao o que eu preciso na verdade eh colocar um mapa dentro de uma pagina em php, soh que eu nao posso colocar o usuario pra baixar nem instalar nada que nao seja no maximo um plugin ou coisa do tipo. Ah, o mapa eh dinamico, de modo que se o usuario se mexer, o mapa tem que atualizar a sua posicao sozinho. O banco de dados ja eh atualizado sozinho.
ja estou estudando sobre como assinar digitalmente esses jars, mas se alguem tiver alguma ideia melhor sobre como posso fazer isso eu agradeço a colaboracao.
Sim, eu sei que nao deveria estar colcando um applet pra acessar banco de dandos. O que preciso na verdade eh que o usuario entre num sistema web feito em php e lah veja um mapa com a localizacao de onde ele esta. Os dados dessa localizacao ficam num banco de dados, pois estao sempre sendo atualizadas por um GPS. Entao o que eu preciso na verdade eh colocar um mapa dentro de uma pagina em php, soh que eu nao posso colocar o usuario pra baixar nem instalar nada que nao seja no maximo um plugin ou coisa do tipo. Ah, o mapa eh dinamico, de modo que se o usuario se mexer, o mapa tem que atualizar a sua posicao sozinho. O banco de dados ja eh atualizado sozinho.
ja estou estudando sobre como assinar digitalmente esses jars, mas se alguem tiver alguma ideia melhor sobre como posso fazer isso eu agradeço a colaboracao.
obrigado mais uma vez,
Augusto_[/quote]
Ja fiz isso utilizando javascript, funcionava perfeitamente bem…
mas em caso de usar applet.
Faça seu applet fazer uma chamada de serviço ao seu servidor para atualizar os dados.
[quote=Augusto_] O que preciso na verdade eh que o usuario entre num sistema web feito em php e lah veja um mapa com a localizacao de onde ele esta. Os dados dessa localizacao ficam num banco de dados, pois estao sempre sendo atualizadas por um GPS. Entao o que eu preciso na verdade eh colocar um mapa dentro de uma pagina em php, soh que eu nao posso colocar o usuario pra baixar nem instalar nada que nao seja no maximo um plugin ou coisa do tipo. Ah, o mapa eh dinamico, de modo que se o usuario se mexer, o mapa tem que atualizar a sua posicao sozinho. O banco de dados ja eh atualizado sozinho.
[/quote]
Você não pode usar mysql na sua applet porque você não vai deixar exposto um banco de dados na Internet - para começar, em muitos lugares não é possível abrir as portas que o banco de dados requer para receber requisições; só é possível fazer requisições pelo proxy (protocolo http ou https).
Sua applet deve consultar o banco de dados através de uma aplicação Web que você deve deixar em algum lugar (pode ser em PHP mesmo, já que sua aplicação PHP já tem o acesso ao banco).
A página PHP que recebe as requisições da applet (ou de um Javascript usando Ajax) pode receber dados via POST e enviar a resposta em formato texto, JSON ou XML; depende da complexidade dos seus dados.
O applet precisaria ficar solicitando periodicamente esse arquivo (na verdade uma chamada a uma página do seu sistema) para pegar as últimas modificações. Isso é relativamente fácil de fazer - use um javax.swing.Timer ou um java.util.Timer para a chamada periódica, e um java.net.URLConnection para puxar os dados.
Coloquei em pratica a sugestao do thingol de usar o objeto java.net.URLConnection, mas, assim como antes, dentro do eclipse funciona perfeitamente bem, mas fora da problema. Mais precisamente, o problema acontece quando eu tento usar praticamente qqr metodo get do urlConnection. Vou colocar aqui um trexo de codigo referente ao meu estudo:
try {
URL yahoo = new URL("http://www.yahoo.com.br/");
URLConnection yc = yahoo.openConnection();
BufferedReader in = new BufferedReader(
new InputStreamReader(
yc.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
Dados += inputLine + "\n";
in.close();
} catch (Exception e) {
System.out.println("erro!");
Dados += "erro!";
}
O erro em si acontece quando eu chamo o metodo yc.getInputStream();
como isso funciona dentro do ecplise mas nao funciona fora, pode ser que seja algum problema na java.policy.applet. Talvez tenha algum comando que eu coloque ali que ele me libere permissao pra executar esse metodo.
alguem sabe me dizer se eu estou certo? caso eu esteja, como eu posso editar essa policy pra que ela deixe eu executar esse metodo?
a aplicacao vai rodar em ambiente fechado, o que significa que eu posso alterar o policy de todas as maquinas, se for preciso.
foi soh assinar o applet e dar permissao pro pacote java.net.SocketPermission executar na java.policy
obrigado por toda a ajuda de vcs[/quote]
Boa noite!
Vc pode colocar aki como vc fez pra dar permissao no java.policy. Eu estou com o mesmo problema, porém nao sei se to configurando corretamente o arquivo java.policy, entao sempre tenho erro de socket!
Tô apanhando tentando conecetar com base de dados mysql
Galera eu tenho uma hospedagem na locaweb e nos serviços adcionais tem a opção de contratar o serviço de JVM Dedicado, mas eu tenho uma duvida, eu tenho interesse a principio de trabalhar com applets com banco de dados mysql, gostaria de saber se contratando o serviço de JVM Dedicado ainda sim é necessário ter um certificado digital ou não há necessidade.
Fiz uns applets com base de dados, na rede local funciona beleza, mas quando coloco pra uma base q tá na net não funciona.
Pelo visto precisa de assinatura digital, uma obtenção de certificado digital.
Minha duvida é se eu contratar o serviço de JVM Dedicado ainda vou precisar de certificado digital?
Vi que fazendo o contrato lá já tem várias bibliotecas padrões inclusive a do mysql.