Configurações de Recarregamento do Tempo de Execução do JSP (JavaServer Pages)

Os arquivos JSP (JavaServer Pages) podem ser convertidos e compilados no tempo de execução quando o arquivo JSP ou suas dependências forem modificados. Isso é conhecido como recarregamento da JSP.

Boas Práticas Boas Práticas: Use uma ferramenta de montagem, como Rational Application Developer, para modificar arquivos de ligação e extensão IBM. É possível converter arquivos de ligação e extensão nos módulos de XMI para XML usando o IBM Bindings and Extensions Conversion Tool para Multiplataformas.bprac

O recarregamento de JSP é ativado por meio do parâmetro do mecanismo reloadEnabled de JSP no arquivo WEB-INF/ibm-web-ext.xmi or WEB-INF/ibm-web-ext.xml.

Exemplo de ibm-web-ext.xmi:
<jspAttributes xmi:id="JSPAttribute_1" name="reloadEnabled" value="true"/>
Exemplo de ibm-web-ext.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-ext
   xmlns="http://websphere.ibm.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-web-ext_1_0.xsd"
      version="1.0">
	
   <jsp-attribute name="trackDependencies" value="true" />
   <jsp-attribute name="disableJspRuntimeCompilation" value="true" />
   <jsp-attribute name="reloadEnabled" value="true"/>

   <reload-interval value="5"/>
   <auto-encode-requests value="false"/>
   <auto-encode-responses value="false"/>
   <enable-directory-browsing value="false"/>
   <enable-file-serving value="false"/>
   <pre-compile-jsps value="false"/>
   <enable-reloading value="true"/>
   <enable-serving-servlets-by-class-name value="false" />	
</web-ext>
Configurações suportadas Configurações suportadas: Para arquivos de extensão e de ligação IBM®, a extensão do nome do arquivo .xmi ou .xml é diferente dependendo de você estar utilizando um aplicativo pré-Java EE 5 ou um módulo ou um aplicativo ou módulo Java™ EE 5 ou posterior. Um arquivo de extensão ou de ligação IBM é denominado ibm-*-ext.xmi ou ibm-*-bnd.xmi em que * é o tipo de arquivo de extensão ou de ligação como app, aplicativo, ejb-jar ou web. As seguintes condições se aplicam:
  • Para um aplicativo ou módulo que usa um Java EE versão anterior à versão 5, a extensão do arquivo deverá ser .xmi.
  • Para um aplicativo ou módulo que usa Java EE 5 ou posterior, a extensão do arquivo deve ser .xml. Se os arquivos .xmi forem incluídos no aplicativo ou módulo, o produto ignorará os arquivos .xmi.

No entanto, um módulo Java EE 5 ou posterior pode existir dentro de um aplicativo que inclui arquivos pré-Java EE 5 e usa a extensão do nome do arquivo .xmi.

Os arquivos ibm-webservices-ext.xmi, ibm-webservices-bnd.xmi, ibm-webservicesclient-bnd.xmi, ibm-webservicesclient-ext.xmi, e ibm-portlet-ext.xmi continuam a usar as extensões de arquivo .xmi.

sptcfg
A tabela a seguir contém configurações de recarregamento sugeridas para ambientes de produção e desenvolvimento.
Tabela 1. Configurações de recarregamento sugeridas para ambientes de produção e desenvolvimento.. Configurações de Recarregamento
Atributo de Configuração Configuração do Ambiente de Produção Configuração do Ambiente de Desenvolvimento
reloadEnabled falso(a) true
reloadInterval n/d (ignorado se reloadEnabled por false) aproximadamente 5 segundos
trackDependencies n/d (ignorado se reloadEnabled por false) true - Como alterantiva, defina para false para melhorar o tempo de resposta se as dependências não estiverem mudando
disableJspRuntimeCompilation true - Como alternativa, defina como false se os arquivos JSP não forem pré-compilados e, portanto, precisarem ser compilados no primeiro pedido. falso(a)

O padrão para o parâmetro reloadEnabled é true. Se o parâmetro reloadEnabled for configurado como true, um arquivo JSP será recarregado no tempo de execução se o arquivo JSP e seu arquivo de classe não tiverem o mesmo registro de data e hora. Além disso, se trackDependencies é configurado como true, o arquivo JSP é recarregado se o registro de data e hora de qualquer uma de suas dependências foi alterado desde que o arquivo de classe JSP foi gerado pela última vez. Se o parâmetro reloadEnabled é configurado como false, um arquivo JSP ainda é compilado, se necessário, na primeira solicitação para ele, a menos que o parâmetro disableJspRuntimeCompilation seja true. Por exemplo, quando disableJspRuntimeCompilation é false e reloadEnabled é false, um arquivo JSP é compilado na primeira solicitação se o arquivo de classe está desatualizado. Ele não seria compilado nas solicitações subsequentes, mesmo se o arquivo de origem JSP fosse modificado ou o arquivo de classe fosse excluído, a menos que reloadEnabled seja true.

Intervalo de Recarregamento

O intervalo de recarregamento é configurado por meio do parâmetro do mecanismo JSP reloadInterval.

Exemplo de ibm-web-ext.xmi:
<jspAttributes xmi:id=JSPAttribute_1 name=reloadInterval value=5/>
Exemplo de ibm-web-ext.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-ext
   xmlns="http://websphere.ibm.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-web-ext_1_0.xsd"
      version="1.0">
	
   <jsp-attribute name="trackDependencies" value="true" />
   <jsp-attribute name="disableJspRuntimeCompilation" value="true" />
   <jsp-attribute name="reloadInterval" value="5"/>

   <reload-interval value="5"/>
   <auto-encode-requests value="false"/>
   <auto-encode-responses value="false"/>
   <enable-directory-browsing value="false"/>
   <enable-file-serving value="false"/>
   <pre-compile-jsps value="false"/>
   <enable-reloading value="true"/>
   <enable-serving-servlets-by-class-name value="false" />	
</web-ext>

Se o recarregamento está ativado, o valor de parâmetro reloadInterval determina o atraso entre verificações para ver se um arquivo JSP está desatualizado. Por exemplo, se reloadInterval é 5, o mecanismo JSP verifica se um arquivo JSP está desatualizado somente quando a última verificação desse tipo foi feita mais de cinco segundos antes da solicitação atual para o arquivo JSP. Quando o reloadInterval é excedido, a verificação de recarregamento é executada e o timer do intervalo de recarregamento é reconfigurado como 0 para esse arquivo JSP. Quanto maior o reloadInterval, menor é a frequência com a qual o mecanismo JSP verifica a necessidade de recarregar um arquivo JSP.

Monitoração de Dependência

O Rastreamento de Dependência é Configurado por meio do Parâmetro do Mecanismo JSP trackDependencies.

Exemplo de ibm-web-ext.xmi:
<jspAttributes xmi:id="JSPAttribute_1" name="trackDependencies" value="true"/>
Exemplo de ibm-web-ext.xmi:
<?xml version="1.0" encoding="UTF-8"?>
<web-ext
   xmlns="http://websphere.ibm.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-web-ext_1_0.xsd"
      version="1.0">
	
   <jsp-attribute name="trackDependencies" value="true" />
   <jsp-attribute name="disableJspRuntimeCompilation" value="true" />
   <jsp-attribute name="reloadInterval" value="5"/>

   <reload-interval value="5"/>
   <auto-encode-requests value="false"/>
   <auto-encode-responses value="false"/>
   <enable-directory-browsing value="false"/>
   <enable-file-serving value="false"/>
   <pre-compile-jsps value="false"/>
   <enable-reloading value="true"/>
   <enable-serving-servlets-by-class-name value="false" />	
</web-ext>
Se o recarregamento está ativado, o valor de parâmetro trackDependencies determina se o mecanismo JSP controla modificações nas dependências do arquivo JSP solicitadas, bem como no arquivo JSP em si. Os três tipos de dependências monitoradas pelo mecanismo JSP são:
  • arquivos incluídos estaticamente no arquivo JSP
  • arquivos de tag referidos no arquivo JSP (excluindo os arquivos de tag que estão em arquivos JAR)
  • TLDs referidos no arquivo JSP (excluindo TLDs que estão em arquivos JAR)
As informações de rastreamento de dependência são sempre incluídas no arquivo de classe gerado, mesmo se trackDependencies é false. As informações não são usadas pelo mecanismo JSP ou compilador de lotes, a menos que o parâmetro trackDependencies seja true. Isso significa que é possível ativar a monitoração de dependência sem precisar recompilar arquivos JSP.

Por exemplo, o arquivo toplevel.jsp inclui estaticamente o arquivo footer.jspf. Quando o arquivo toplevel.jsp é compilado, o caminho para o arquivo footer.jspf e seu registro de data e hora são armazenados no arquivo de classe da toplevel.jsp. Como resultado, o arquivo footer.jspf é modificado e o arquivo toplevel.jsp é solicitado. Agora que o intervalo de recarregamento para o arquivo toplevel.jsp foi excedido, o mecanismo JSP compara o registro de data e hora armazenado no arquivo de classe ao registro de data e hora do arquivo footer.jspf no disco. Como os timestamps são diferentes, o arquivo toplevel.jsp é compilado, captando a modificação do arquivo footer.jspf. Para que o rastreamento de dependência funcione, o valor de trackDependencies deve ser configurado como true no momento em que um arquivo JSP é solicitado no tempo de execução ou é processado pelo compilador de lotes.

Desativando a Compilação

A desativação da compilação do tempo de execução de JavaServer Pages é configurada por meio do parâmetro disableJspRuntimeCompilation do mecanismo JSP.

Exemplo de ibm-web-ext.xmi:
<jspAttributes xmi:id="JSPAttribute_1" name="disableJspRuntimeCompilation" value="true"/>
Exemplo de ibm-web-ext.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-ext
   xmlns="http://websphere.ibm.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-web-ext_1_0.xsd"
      version=1.0>
	
   <jsp-attribute name="trackDependencies" value="true" />
   <jsp-attribute name="disableJspRuntimeCompilation" value="true" />
   <jsp-attribute name="reloadInterval" value="5"/>

   <reload-interval value="5"/>
   <auto-encode-requests value="false"/>
   <auto-encode-responses value="false"/>
   <enable-directory-browsing value="false"/>
   <enable-file-serving value="false"/>
   <pre-compile-jsps value="false"/>
   <enable-reloading value="true"/>
   <enable-serving-servlets-by-class-name value="false" />	
</web-ext>

Se o parâmetro disableJspRuntimeCompilation é configurado como true, o mecanismo JSP no tempo de execução não converte e compila arquivos JSP; o mecanismo JSP carrega somente arquivos de classe pré-compilados. Os arquivos de origem do JSP não precisam estar presentes para que os arquivos de classe sejam carregados. Com essa opção definida para true, um aplicativo pode ser instalado sem a origem da JSP, mas deve ter os arquivos de classe pré-compilados. Há uma propriedade customizada do contêiner da Web com o mesmo nome que pode ser usado para determinar o comportamento de todos os módulos da Web instalados em um servidor. Se a propriedade customizada do contêiner da Web e a opção do mecanismo JSP estiverem configurados, a opção do mecanismo JSP terá precedência. A configuração do parâmetro disableJspRuntimeCompilation como true configura automaticamente reloadEnabled como false.

Recarregar a Sequência de Processamento

A sequência de processamento pertencente ao recarregamento do arquivo JSP quando trackDependencies é false é da na Figura 1.

Figura 1. Sequência do Processamento de Recarregamento Quando trackDependencies é False.importante

Quando trackDependencies é true, o mecanismo JSP executa o processamento do sistema de arquivos adicional para determinar se qualquer uma das dependências de um arquivo JSP foi alterada desde que o arquivo JSP foi convertido e compilado pela última vez. A figura 2 mostra os processos adicionais que são executados no caminho "Não" do gráfico de fluxo intitulado "Os arquivo de classe JSP estão desatualizados?". Você pode ver que o caminho tomado quando disableJspRuntimeCompilation é true é o caminho mais eficiente.

Figura 2. Processamento de Recarregamento Adicional Executado Quando trackDependencies é True.importante

Í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=rweb_jspreloading
Nome do arquivo: rweb_jspreloading.html