| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/12/2006 01:06:01
|
gbazilio
Thread.start()
Membro desde: 05/04/2006 21:08:36
Mensagens: 27
Offline
|
Boa noite,
Tenho um applet que acessa banco de dados firebird.
Consigo rodar ele na mesma máquina que estou rodando o firebird. Mas quero que ele rode em qualquer máquina q tenha acesso a web. O que preciso fazer para isso acontecer?
Qdo rodo a partir de outra máquina, aparece o seguinte erro:
Como faço para o applet ficar disponível na web, sem esse problema?
O que a máquina cliente precisa ter para acessar o applet?
Preciso instalar o firebird na máquina de quem for usar o applet?
Se precisar, tem como colocar os driver direto dentro do .jar?
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/12/2006 02:36:41
|
seufagner
JavaEvangelist
![[Avatar]](/images/avatar/5fd0245f6c9ddbdf3eff0f505975b6a7.jpg)
Membro desde: 06/05/2005 16:33:09
Mensagens: 447
Localização: Rio de Janeiro - RJ
Offline
|
Cara.. voce precisa empacotar o driver e todas as dependencias do applet em um arquivo .jar.. este que corresponderá a distribuição do applet.
Se tua view for html ou utilize esta linguagem, voce adiciona uma tag <applet> o atributo "archive" com o valor correspondente ao URL do jar que contem o applet, e o "code" indicando a classe que estende Applet..
lembre que os novos padroes estabelecidos pelo w3c depreciaram esta tag.. eles indicam o uso de <object>
|
@seufagner
seufagner.com.br
"Simplicidade é a maior forma de sofisticação"
Leonardo Da vinci
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/12/2006 02:44:25
|
gbazilio
Thread.start()
Membro desde: 05/04/2006 21:08:36
Mensagens: 27
Offline
|
eu fiz isso, mas ñ deu certo...
coloquei todos os arquivos .jar do firebird dentro da pasta junto com os arquivos .class e empacotei td...
e essa tag applet eu fiz extamente do jeito q vc falou...
mas ñ sei aonde está o problema...
oq pode ser?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/12/2006 10:16:05
|
afura
Debugger
Membro desde: 30/10/2004 18:53:48
Mensagens: 62
Offline
|
Cara!
Você precisa fazer o seguinte
lib3.jar" code="applet1.class" height="400" width="400"></applet>
codebase é a pasta onde se encontram os .class e os .jar utilizados pelo seu applet.
archive são os .jar que você deseja adicionar ao classpath deste applet em específico
e code vc já manja né!
Espero ter ajudado!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/12/2006 12:03:30
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Não use applets para acessar diretamente bancos de dados. Deixe essa função com um web container (ex. Tomcat).
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/12/2006 14:52:59
|
gbazilio
Thread.start()
Membro desde: 05/04/2006 21:08:36
Mensagens: 27
Offline
|
pq ñ usar applet para acessar banco de dados diretamente?
Se eu usar um servlet para fazer o seviço de comunicação com o banco de dados, acho q cairia no mesmo problema...
como ele acessaria o banco de dados firebird na web?
o servidor de hospedagem deve ter suporte a banco de dados firebird?? como funciona isso?
Como que o servlet ia acessar um banco de dados na web, onde ñ instalamos nda, já que os drivers do firebird precisam ser instalados na máquina (localhost) para que o acesso funcione?
Essas perguntas devem ser simples de responder, mas eu estou realmente comçando nessa área de web e java em geral!!
Abraços
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/12/2006 15:26:47
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
gbazilio wrote:pq ñ usar applet para acessar banco de dados diretamente?
Você tem problemas com deployment (como o tal jar que deve ser distribuído e posto em um lugar especial, e o applet que deve ser assinado etc.).
Além disso você pode ter um problema de acabar esgotando as conexões com o banco de dados (por exemplo, se a conexão é aberta no "start" do applet mas não é fechada por algum motivo, então a conexão acaba ficando "pendurada").
Outro problema é se você estiver hospedando o applet e o banco de dados em lugares diferentes, aí você teria de abrir portas no firewall, o que não é recomendado quando se usa bancos de dados.
Se eu usar um servlet para fazer o seviço de comunicação com o banco de dados, acho q cairia no mesmo problema...
Não porque
- servlets não precisam ser assinados
- é só um lugar para você fazer a tal configuração, não em N lugares
- você pode usar um connection pool no seu web container, que economiza conexões do banco e deixa o processo mais rápido
como ele acessaria o banco de dados firebird na web?
Você teria de fazer suas transações (não usar ResultSet; talvez no máximo WebRowSet que é uma forma serializada em XML do resultset)
o servidor de hospedagem deve ter suporte a banco de dados firebird?? como funciona isso?
Nesse caso seu servidor de hospedagem deveria hospedar o banco também.
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/12/2006 15:44:38
|
gbazilio
Thread.start()
Membro desde: 05/04/2006 21:08:36
Mensagens: 27
Offline
|
Aco q vou dar uma olhada em servlets entaum, mas enquanto ñ olho...
voltando ao problema do applet...
acho q consegui fazer o cliente achar os drivers, mas agora o problema é o seguinte...qdo o clietne tenta acessar o applet ( no acaso o applet acessaria o bd nesse momento) uma exceção de segurança é disparada...
- access denied -
Porém o applet já está assinado...tanto que o qdo abro ele a partir da máquina do cliente, ele pergunta se quero mesmo rodar o applet que é assinado por tal pessoa (no caso eu).
Usei os seguintes passos para assinar o applet:
1. jar cvf Teste.jar *.class - crie o jar aki
2. keytool -genkey -alias assinar -keystore chave - criei a chave aki
3. jarsigner -keystore chave -signedjar sTeste.jar Teste.jar assinar - assinei o jar aki
oq deve estar acontecendo??? pode me ajudar?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/12/2006 17:18:33
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Todos os jars que sua aplicação usa (mesmo os do driver) devem estar assinados. (Não tem problema se você mesmo assinar o jar do driver).
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/12/2006 02:46:58
|
gbazilio
Thread.start()
Membro desde: 05/04/2006 21:08:36
Mensagens: 27
Offline
|
thingol....
vc resolveu meu problema kra....
brigadão mesmo....até agora tava travado nisso, pelo menos disso passou, vamos ver quais serão os próximos problemas...uahuhauha
mas tive akele problema com o firewall que vc citou em uma das mensagens...tive q desabilitar o firewall pra poder rodar o applet.
kra....agora voltando a falar de servlet...surgiram varias duvidas
pq servlet ñ teria q desabilitar o firewall? e pq no servlet a conexão ñ fica "pendura" se eu ñ fecha-la por algum motivo?
Um kra falou q se eu fizer essa conexão applet-database, eu deixo a porta do banco aperta pra qualquer um, mas se eu fizer applet-servlet-database, ñ tem esse problema...pq isso??
outra coisa...eu de qualquer maneira teria de assinar os drivers do firebird pra poder rodar o servlet, certo? pq o servlet e os drivers ficariam no endereço de hospedagem...ta certo??
se fosse um banco de dados grande, como eu faria para poder, de qualquer lugar, ter acesso a ele através de um servlet? nesse caso o banco de dados ñ iria para o servidor de hospedagem da página, certo?? entaum como funciona??
Abraços
|
|
|
 |
|
|