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)

Se estiver tendo dificuldades para usar o mecanismo JSP (JavaServer Pages), tente estas etapas:
  1. 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.
  2. Se outros recursos estiverem sendo exibidos corretamente, determine se o processador JSP foi iniciado normalmente:
    • [AIX Solaris HP-UX Linux Windows][IBM i]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:
      Processador 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 ].
      Se o processador JSP falhar ao carregar, você verá uma mensagem como
      Nenhum Processador de Extensão localizado para manipular JSPs.
      O Processador de JSP não foi definido. Ignorando: jspfilename.
      no arquivo root_dir/logs/server_name/SystemOut.log
    • [z/OS]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:
      Processador 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 ].
      Se o processador JSP falhar ao carregar, você verá uma mensagem como
      Nenhum Processador de Extensão localizado para manipular JSPs.
      O Processador de JSP não foi definido. Ignorando: jspfilename.
      nos arquivos de log do servidor.
  3. Se o mecanismo JSP tiver sido iniciado normalmente, o problema pode estar no arquivo JSP em si.
    • [AIX Solaris HP-UX Linux Windows][IBM i]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:
      Mensagem: /filename.jsp(2,1)JSPG0076E: Faltando página de atributo requerida para elemento jsp, 
                   jsp:include 
      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.
    • [z/OS]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:
      Mensagem: /filename.jsp(2,1)JSPG0076E: Faltando página de atributo requerida para elemento jsp, 
                  jsp:include 
      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.
    • 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.
      [AIX Solaris HP-UX Linux Windows][IBM i]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
      [z/OS]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.

Nota: Esse tópico faz referência a um ou mais arquivos de log do servidor de aplicativos. Como uma recomendação alternativa, é possível configurar o servidor para usar a infraestrutura de log e rastreio do High Performance Extensible Logging (HPEL) em vez de usar os arquivos SystemOut.log , SystemErr.log, trace.log e activity.log em sistemas distribuídos e IBM® i. Também é possível usar HPEL em conjunção com os recursos de criação de log z/OS nativos. Se você estiver usando HPEL, será possível acessar todas as informações de log e rastreio usando a ferramenta de linha de comandos LogViewer a partir do diretório bin do perfil do servidor. Consulte as informações sobre a utilização do HPEL para resolução de problemas dos aplicativos para obter mais informações sobre o uso do HPEL.

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.
SystemErr R com.ibm.websphere.management.exception.AdminException: 
ADMA0021E: Error in compiling jsps - xyz.war (rc=1)
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.
  1. Inclua o JAR dependente no gerenciador de implementação num ambiente de célula.
    1. Clique em Administração do Sistema > Gerenciador de Implementação > Java e Gerenciamento de Processo > Definição de Processo > Java Virtual Machine na navegação do console.
    2. Inclua JAR dependente completamente qualificado no campo do caminho de classe.
    3. Clique em OK.
    4. Reinicie o gerenciador de implementação.

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:
Erro de Processamento da JSP

Código de Erro HTTP: 500

Mensagem de erro: /test.jsp(2,1) 
	/test.jsp(2,1) JSPG0089E: 
	Incompatibilidade localizada entre 
	a codificação de diretiva Shift_JIS da página 
	e a codificação de prólogo xml UTF-8
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,
<?xml version="1.0" encoding="Shift_JIS"?>
<jsp:root xmlns:jsp="http://java.sun.com/
 JSP/Page" version="2.0">
<jsp:directive.page language="java" 
 contentType="text/html";
	charset=Shift_JIS pageEncoding=
	 "Shift_JIS"/>
<jsp:text>XXXXXjsp:text>XXXXX>
</jsp:root>

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.


Ícone que indica o tipo de tópico Tópico de Referência



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rtrb_jspcomp
Nome do arquivo: rtrb_jspcomp.html