| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/12/2008 15:42:08
|
rico700
Thread.start()
Membro desde: 12/06/2008 14:07:41
Mensagens: 30
Offline
|
Ola amigos,
eu botei um init() em um servlet e mandei ele executar quando inicia o tomcat, nesse init() eu coloquei a chamada do método que envia emails.
O problema é que quando o método executa, ou seja, quando inicio o tomcat ele envia só uma vez o email e depois não envia mais os emails quando eu solicito o envio. Tirando essa chamada no init() ele envia emails normalmente mas quando eu coloco essa função para iniciar com o tomcat, não funciona mais.
Função init() que está no servlet é assim
E a função que envia emails é essa:
Se algue puder me dá uma luz,
valeu.
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/12/2008 16:07:36
|
ramilani12
GUJ Master
![[Avatar]](/images/avatar/b597460c506e8e35fb0cc1c1905dd3bc.png)
Membro desde: 11/03/2005 01:23:30
Mensagens: 1944
Localização: Curitiba-PR
Offline
|
Prq o metodo init é chamado uma unica vez pelo ServletContainer, seu problema seria resolvido se colocasse esse envio de e-mails nos metodos service , doGet ou doPost
|
my delicious| follow me| linkedin |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/12/2008 16:34:51
|
pimenta
Java Ninja
![[Avatar]](/images/avatar/4275b1d43051976dd4242f746ee4e6db.jpg)
Membro desde: 14/04/2008 15:33:08
Mensagens: 293
Localização: Niterói/RJ
Offline
|
Procura saber sobre o ciclo de vida do Servlet, pode ser que isso te explique o porque de ser executado somente uma vez.
ramilani12, para fazer isso no método service() ele não teria que reescrevê-lo? Caso a resposta seja afirmativa, isso não é nem um pouco indicado. O melhor mesmo é fazer como você mesmo disse, utilizar no doGet() ou no doPost().
Abraços,
|
--------------------------------------------
PIMENTA
-------------------------------------------- |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/12/2008 17:26:17
|
rico700
Thread.start()
Membro desde: 12/06/2008 14:07:41
Mensagens: 30
Offline
|
amigos, obrigado pela resposta.
Mas o problema é que está executando uma vez nessa classe, tudo bem é pra iniciar uma vez mesmo pois coloquei só para executar no inicio do tomcat.
Mas na minha aplicação eu chamo esse metodo de email outras vezes depois dessa classe que tem o init(), e não funciona.
Ele já está em outro servlet e não funciona entenderam?
obrigado
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/12/2008 18:21:01
|
furutani
JWizard
![[Avatar]](/images/avatar/c864aef53fe27a83053cf.jpg)
Membro desde: 11/10/2003 23:58:51
Mensagens: 2995
Localização: Iacri-SP e São Paulo-SP
Offline
|
Já experimentou jogar o conteudo do método init() dentro do método doGet() ou doPost()?
|
Até mais,
Roberto Jundi Furutani
Sun Certified Business Component Developer 1.3
Sun Certified Web Component Developer
Sun Certified Java Programmer
SAP Certified Development Associate - ABAP with SAP NetWeaver 7.0
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/12/2008 08:14:07
|
ramilani12
GUJ Master
![[Avatar]](/images/avatar/b597460c506e8e35fb0cc1c1905dd3bc.png)
Membro desde: 11/03/2005 01:23:30
Mensagens: 1944
Localização: Curitiba-PR
Offline
|
pimenta wrote:Procura saber sobre o ciclo de vida do Servlet, pode ser que isso te explique o porque de ser executado somente uma vez.
ramilani12, para fazer isso no método service() ele não teria que reescrevê-lo? Caso a resposta seja afirmativa, isso não é nem um pouco indicado. O melhor mesmo é fazer como você mesmo disse, utilizar no doGet() ou no doPost().
Abraços,
E qndo vc herda da HttpServlet vc não reescreve tbm os métodos doGet e doPost ?
|
my delicious| follow me| linkedin |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/12/2008 08:57:52
|
pimenta
Java Ninja
![[Avatar]](/images/avatar/4275b1d43051976dd4242f746ee4e6db.jpg)
Membro desde: 14/04/2008 15:33:08
Mensagens: 293
Localização: Niterói/RJ
Offline
|
ramilani12 wrote:
E qndo vc herda da HttpServlet vc não reescreve tbm os métodos doGet e doPost ?
Mas o service() não é exatamente a mesma coisa que o doGet() e o doPost().
O service() é executado logo após o init() ser terminado com sucesso e é responsável em chamar doGet() ou doPost(). Além disso, pelo que já li reescrever o service() não é indicado.
Em relação a reescrever os métodos doGet() e doPost() eles estão lá para serem reescritos mesmo, diferentemente do service().
|
--------------------------------------------
PIMENTA
-------------------------------------------- |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/12/2008 13:00:00
|
rico700
Thread.start()
Membro desde: 12/06/2008 14:07:41
Mensagens: 30
Offline
|
oi amigos, eu botei no método get() e não funcionou.
Será que fiz alguma coisa errada?
Não executou o que eu queria fazer.
Sem o init() ele executa?
att,
This message was edited 1 time. Last update was at 05/12/2008 13:01:07
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/12/2008 13:03:16
|
ramilani12
GUJ Master
![[Avatar]](/images/avatar/b597460c506e8e35fb0cc1c1905dd3bc.png)
Membro desde: 11/03/2005 01:23:30
Mensagens: 1944
Localização: Curitiba-PR
Offline
|
lançou alguma exceção?
|
my delicious| follow me| linkedin |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/12/2008 13:21:15
|
rico700
Thread.start()
Membro desde: 12/06/2008 14:07:41
Mensagens: 30
Offline
|
Não apenas não enviou o email.
Fica assim a classe doGet()?
This message was edited 1 time. Last update was at 05/12/2008 13:21:41
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/12/2008 13:59:48
|
ramilani12
GUJ Master
![[Avatar]](/images/avatar/b597460c506e8e35fb0cc1c1905dd3bc.png)
Membro desde: 11/03/2005 01:23:30
Mensagens: 1944
Localização: Curitiba-PR
Offline
|
rico700 wrote:Não apenas não enviou o email.
Fica assim a classe doGet()?
....
Obviamente vc não sobrescreveu o metodo doGet() veja a sintaxe:
|
my delicious| follow me| linkedin |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/12/2008 14:11:59
|
rico700
Thread.start()
Membro desde: 12/06/2008 14:07:41
Mensagens: 30
Offline
|
Desculpa a minha ignorancia
mas como assim sobrescrever o método doGet()?
valeu pela ajuda
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/12/2008 14:43:46
|
ramilani12
GUJ Master
![[Avatar]](/images/avatar/b597460c506e8e35fb0cc1c1905dd3bc.png)
Membro desde: 11/03/2005 01:23:30
Mensagens: 1944
Localização: Curitiba-PR
Offline
|
Vc não está herdando da Classe HttpServlet?
os metodos doGet , doPost , service , doPut, doDelete e etc, vc os implementa conforme a sua necessidade , se vc não os implementou o ServletContainer invoca a implementação default.
veja o javadoc da classe HttpServlet:
http://java.sun.com/javaee/5/docs/api/javax/servlet/http/HttpServlet.html
|
my delicious| follow me| linkedin |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/12/2008 15:47:30
|
rico700
Thread.start()
Membro desde: 12/06/2008 14:07:41
Mensagens: 30
Offline
|
resolvi o problema, tentei com a classe listener e deu certo.
valeu ai pela atenção.
|
|
|
 |
|
|