Dicas de Resolução de Problemas JSP (JavaServer Pages)
Utilize estas dicas para resolver problemas com páginas JSP (JavaServer Pages).
Código de Origem JavaServer Pages Mostrado pelo Servidor da Web
Se você compartilhar a raiz de documento do WebSphere Application Server com a raiz de documento do servidor da Web, uma exposição de segurança poderá fazer com que o servidor da Web exiba o arquivo de origem JavaServer Pages (JSP) como texto simples.
- Problema
- É possível usar o conjunto de regras do plug-in de servidor da Web do WebSphere para determinar se um pedido especificado será tratado pelo WebSphere Application Server. Quando uma solicitação recebida falha ao corresponder a essas regras, o plug-in do servidor da Web retornará o controle para o servidor da Web para que o servidor da Web possa preencher a solicitação. Nesse caso, o cabeçalho do host desconhecido faz com que o plug-in do servidor da Web retorne o controle para o servidor da Web porque as regras não indicam que o WebSphere Application Server deva mainpulá-lo. Portanto, o servidor da Web procurará pela solicitação na raiz do documento do servidor da Web. Como o arquivo de origem JSP é armazenado na raiz do documento do servidor da Web, o servidor da Web localiza o arquivo e exibe como texto simples.
- Solução Sugerida
- Mova o arquivo de origem JSP do WebSphere Application Server para fora da raiz do documento do servidor da Web. Em seguida, quando essa solicitação vier com o cabeçalho de host desconhecido, o plug-in retornará o controle para o servidor da Web e o arquivo de origem JSP não será localizado na raiz do documento. Portanto, o servidor da Web retorna um erro 404 Arquivo Não Localizado em vez do arquivo de origem JSP.
Problemas ao exibir os caracteres DBCS (Double-Byte Character Set) ao usar a diretiva @include
Os arquivos JSP (JavaServer Pages) que utilizam a diretiva @include podem apresentar problemas ao exibir caracteres DBCS. Alguns aplicativos que são migrados para o WebSphere Application Server Versão 6.0 e posteriores podem precisar ser modificados de acordo com a especificação JSP 2.0, como resultado dos problemas de compatibilidade com versões anteriores. A especificação JSP 2.0 requer que cada recurso incluído estatisticamente configure um código de página ou tipo de conteúdo porque a codificação dos caracteres de cada arquivo é determinada separadamente, mesmo se um arquivo incluir outro utilização a diretiva include.
Problemas ao usar o mecanismo JSP (JavaServer Pages)
- Determine se outros recursos, como arquivos .html ou servlets, estão sendo solicitados e exibidos corretamente. Se não estiverem, o problema provavelmente se encontra em um nível mais profundo, como no servidor HTTP.
- Se outros recursos estiverem sendo exibidos corretamente, determine se o
processador JSP foi iniciado normalmente:
Procure os logs da JVM do servidor que hospeda os arquivos JSP que você está tentando acessar. As mensagens a seguir indicam que o processador JSP foi iniciado normalmente:
Se o processador JSP falhar ao carregar, você verá uma mensagem comoProcessador de Extensão [classe com.ibm.ws.jsp.webcontainerext.JSPExtensionProcessor] inicializado com êxito. Processador de Extensão [classe com.ibm.ws.jsp.webcontainerext.JSPExtensionProcessor] associado a padrões [*.jsp *.jspx *.jsw *.jsv ].
no arquivo root_dir/logs/server_name/SystemOut.logNenhum Processador de Extensão localizado para manipular JSPs. O Processador de JSP não foi definido. Ignorando: jspfilename.
Procure os logs do servidor que hospeda os arquivos JSP que você está tentando acessar. As mensagens a seguir indicam que o processador JSP foi iniciado normalmente:
Se o processador JSP falhar ao carregar, você verá uma mensagem comoProcessador de Extensão [classe com.ibm.ws.jsp.webcontainerext.JSPExtensionProcessor] inicializado com êxito. Processador de Extensão [classe com.ibm.ws.jsp.webcontainerext.JSPExtensionProcessor] associado a padrões [*.jsp *.jspx *.jsw *.jsv ].
nos arquivos de log do servidor.Nenhum Processador de Extensão localizado para manipular JSPs. O Processador de JSP não foi definido. Ignorando: jspfilename.
- Se o mecanismo JSP tiver sido iniciado normalmente, o problema pode estar no arquivo JSP em si.
A JSP pode ter uma sintaxe JSP inválida e não pôde ser processada pelo Processador de JSP. Examine o arquivo root_dir/logs/server_name/SystemOut.log do aplicativo de destino para as mensagens de sintaxe de diretiva JSP inválida. Erros semelhantes ao seguinte em um navegador indicam esse tipo de problema:
Esse exemplo indica que na linha 2, coluna 1 do arquivo JavaServer Pages denominado está faltando um atributo obrigatório para a ação jsp:include. Mensagens semelhantes são exibidas para outros erros de sintaxe.Mensagem: /filename.jsp(2,1)JSPG0076E: Faltando página de atributo requerida para elemento jsp, jsp:include
A JSP pode ter uma sintaxe JSP inválida e não pôde ser processada pelo Processador de JSP. Examine os arquivos de log do servidor do aplicativo de destino para as mensagens de sintaxe de diretiva JSP inválida. Erros semelhantes ao seguinte em um navegador indicam esse tipo de problema:
Esse exemplo indica que na linha 2, coluna 1 do arquivo JavaServer Pages denominado está faltando um atributo obrigatório para a ação jsp:include. Mensagens semelhantes são exibidas para outros erros de sintaxe.Mensagem: /filename.jsp(2,1)JSPG0076E: Faltando página de atributo requerida para elemento jsp, jsp:include
- Examine os arquivos SystemErr.log do servidor de aplicativos de destino para
conhecer os problemas com sintaxe inválida de Java™.
Erros semelhantes a Mensagem: Não foi possível compilar a classe para
JSP em um navegador indicam este tipo de problema. A saída da mensagem de erro do compilador Javadoc será localizada no SystemErr.log. Pode parecer:
JSPG0091E: Ocorreu um erro na linha: 2 no arquivo: /myJsp.jsp JSPG0093E: Erro de servlet gerado: c:\WASROOT\temp\ ... test.war\_myJsp.java:16: myInt já está definido em com.ibm.ws.jsp20._myJsp int myInt = 122; String myString = "number is 122"; static int myStaticInt=22; int myInt=121; ^ 1 erro
Corrija o erro no arquivo JSP e tente o arquivo novamente.
- Examine os arquivos de log para o aplicativo de destino para obter os problemas
com a sintaxe Java inválida. Erros semelhantes a Mensagem: Não foi possível compilar a classe para
JSP em um navegador indicam esse tipo de problema.
A saída da mensagem de erro do compilador Javadoc será localizada no SystemErr.log. Pode parecer:
JSPG0091E: Ocorreu um erro na linha: 2 no arquivo: /myJsp.jsp JSPG0093E: Erro de servlet gerado: c:\WASROOT\temp\ ... test.war\_myJsp.java:16: myInt já está definido em com.ibm.ws.jsp20._myJsp int myInt = 122; String myString = "number is 122"; static int myStaticInt=22; int myInt=121; ^ 1 erro
A saída da mensagem de erro do compilador Javadoc será localizada nos arquivos de log do servidor. Pode parecer:
JSPG0091E: Ocorreu um erro na linha: 2 no arquivo: /myJsp.jsp JSPG0093E: Erro de servlet gerado: c:\WASROOT\temp\ ... test.war\_myJsp.java:16: myInt já está definido em com.ibm.ws.jsp20._myJsp int myInt = 122; String myString = "number is 122"; static int myStaticInt=22; int myInt=121; ^ 1 erro
Corrija o erro no arquivo JSP e tente o arquivo novamente.
As páginas JSP (JavaServer Pages) falham ao serem compiladas durante o uso da pré-compilação
Sintoma | Problema | Solução Sugerida |
---|---|---|
As páginas JSP (JavaServer Pages) falham ao compilar durante a
implementação por meio do console administrativo quando a pré-compilação
está selecionada.
|
As JavaServer Pages não são compiladas durante a implementação por meio do console administrativo quando a pré-compilação é selecionada quando há dependência em outro arquivo JAR (Java Archive) que não está disponível em nenhum caminho de classe. | É possível usar o script wsadmin para pré-compilar arquivos
JSP durante a implementação do aplicativo corporativo. Contudo, se quiser
utilizar o console administrativo, compile todos os arquivos JSP antes de
empacotar o aplicativo.
|
JSPG0089E: incompatibilidade localizada entre a codificação da diretiva de página Shift_JIS e a codificação do prólogo xml em UTF-8
Sintoma | Problema | Solução Sugerida |
---|---|---|
O seguinte erro aparece:
|
O atributo pageEncoding no elemento jsp:directive.page não é UTF-8. | As páginas JSP (JavaServer Pages) devem especificar um prólogo
que corresponda à codificação especificada na diretiva de página. Por exemplo,
Para obter informações adicionais, consulte a seção JSP.4.1, Codificação do Caractere da Página, na especificação das páginas JSP (JavaServer Pages), seção 4.3.3 e apêndice F.1 da especificação XML (Markup Language) |
Se nenhuma destas etapas resolver o problema, verifique se o problema foi identificado e documentado utilizando os links em Diagnosticando e corrigindo problemas: Recursos para aprendizagem. Se você não encontrar um problema semelhante ao seu ou se as informações fornecidas não resolverem seu problema, entre em contato com o suporte IBM para obter assistência adicional.
Para obter as informações atuais disponíveis no IBM Support sobre problemas conhecidos e sua resolução, consulte a página do IBM Support. A página IBM Support contém documentos que podem economizar seu tempo ao reunir as informações necessárias para resolver esse problema.