Pessoal trabalhava com o Resin e passei a utilizar o Tomcat. Tenho uma servlet que faz um forward para uma pagina .jsp. No Resin funcionava, agora no Tomcat está dando erro. O código está aí abaixo:
Como disse no Resin funciona, no Tomcat não. O erro ocorre na última instrução, ou seja, no nextView.forward(req,res);
Alguém já viu alguma coisa assim e sabe onde pode estar o erro e como posso resolvê-lo?
A sintaxe está certa, qual a mensagem de erro?
Talvez ele não tenha conseguido encontrar esse “…/contra/opcoes.jsp”, já tentou fazer por URL absoluta (começando na raiz da aplicação e com /)?
Deu NullPointerException porque o objeto nextView está null, o que significa que a causa do erro está na linha de cima.
Ainda acho que o problema está na sua URL. Tente, apenas para testar, informar qualquer outra coisa que você tenha certeza que ele vai encontrar.
Porém não acesso, pois tenho que passar pelo login primeiro. Se eu tentar acessá-la direto, serei remetido para a página de login.
Tentei colocar essa url mas deu o seguinte erro:
type Status report
message /http:/localhost:8080/contra/opcoes.jsp
description The requested resource (/http:/localhost:8080/contra/opcoes.jsp) is not available.
Quando dou o submit no meu form e chama a servlet a url fica assim: http://localhost:8080/contra/servlet/LoginServlet
Minha página opcoes.jsp está no nível de ‘contra’. Será que estou errando no níveis que devo voltar até chegar nela?
Funcionou colocando só /opcoes.jsp, a página aparece certinha porém o Internet Explores permanece carregando e no console do Tomcat agora está aparecendo a seguinte mensagem de erro. Você já viu esse erro?
java.lang.IllegalStateException: Current state = FLUSHED, new state = CODING_END
at java.nio.charset.CharsetEncoder.throwIllegalStateException(CharsetEnc
oder.java:933)
at java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:529)
at sun.nio.cs.StreamEncoder$CharsetSE.flushLeftoverChar(StreamEncoder.ja
va:356)
at sun.nio.cs.StreamEncoder$CharsetSE.implClose(StreamEncoder.java:413)
at sun.nio.cs.StreamEncoder.close(StreamEncoder.java:158)
at java.io.OutputStreamWriter.close(OutputStreamWriter.java:222)
at java.io.PrintWriter.close(PrintWriter.java:137)
at org.apache.catalina.connector.ResponseBase.finishResponse(ResponseBas
e.java:482)
at org.apache.catalina.connector.HttpResponseBase.finishResponse(HttpRes
ponseBase.java:236)
at org.apache.catalina.connector.http.HttpResponseImpl.finishResponse(Ht
tpResponseImpl.java:288)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcesso
r.java:1039)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.ja
va:1107)
at java.lang.Thread.run(Thread.java:536)
A causa desse erro basicamente é você iniciar uma “nova transmissão” quando você já mandou o header para o cliente.
Tem vários métodos que lançam essa exceção quando usados no momento errado, como por exemplo o sendRedirect.