Implementando Aplicativos da Web com Aplicativos da Web Remotos ou de Portlet Utilizando RRD

O RRD (Remote Request Dispatcher) é uma extensão plugável ao contêiner da Web que permite às estruturas de aplicativo, aos servlets e às JavaServer Pages (JSP) incluírem conteúdo externo da Java™ Virtual Machine (JVM) do recurso executando no momento como parte da resposta enviada ao cliente.

Antes de Iniciar

Você deve ter o WebSphere Application Server, Network Deployment instalado para utilizar a função RRD (Remote Request Dispatcher). Você deve também se familiarizar com as limitações do dispatcher de pedido remoto. Consulte o artigo Considerações sobre o Dispatcher de Pedidos Remotos para obter detalhes.

Procedimento

  1. Instale arquivos de aplicativo corporativo com o console.
  2. Configure o envio de pedidos de inclusão entre os recursos de aplicativo e remotos.
    • Configure aplicativos da Web para inclusões de despacho remoto.
    • Configure aplicativos da Web para inclusões de serviço remoto.
  3. Opcional: Modifique seu aplicativo para localizar recursos localizados em dois contextos diferentes usando o modelo de programação de servlet.

    O Modelo de Programação de Servlet para incluir recursos remotamente não requer que você use nenhuma das Interfaces de Programação de Aplicativos (APIs) de Servlet não Java Platform Enterprise Edition (Java EE). O componente RRD (Remote Request Dispatcher) segue as mesmas regras para obter um ServletContext e um recurso remoto. Usando a JavaServer Pages standard tag library (JSTL), seu aplicativo é adicionalmente removido da obtenção de um objeto ServletContext ou RequestDispatcher que é necessário no exemplo de estrutura na etapa a seguir, porque a tag customizada JSTL faz isso implicitamente. Estude o exemplo a seguir de um aplicativo JSP (JavaServer Pages) de amostra para aprender a como localizar os recursos que estão em dois contextos diferentes, investimentos e finanças.

    <HEAD>
    <%@ page
    language="java"
    contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8059-1"
    isELIgnored="false"
    %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" $>
    </HEAD>
    <BODY>
    
    <%--
    
    Exemplo de Programação Utilizando JavaServer Pages e JavaServer Pages
    Standard Tag Library (JSTL).
    A JSTL fornece uma tag customizada para importar conteúdos (inclusão de termos do servlet
    e das JSP) no escopo do mesmo pedido do lado de fora do
    contexto do módulo da Web atual especificando um parâmetro de contexto.
    
    Restrições JSTL: o módulo da Web importado 
    deve executar dentro da mesma
    JVM do que o recurso de chamada
    se a URL importada não estiver completa.
    
    O RRD estende essa funcionalidade permitindo que o módulo da Web 
    esteja localizado dentro do escopo do grupo principal do WebSphere Application Server
    atual versus o escopo da JVM.
    --%>
    
    
    <hr size="5"/>
    <%--		Incluir recurso investmentSummary.jsp localizado no 
    		aplicativo da Web com raiz de contexto de /investments. --%>
    
    <c:import url="investmentSummary.jsp" context="/investments"/>
    
    <hr size="5"/>
    <%--		Incluir recurso accountSummary.jsp localizado no 
    		aplicativo da Web com raiz de contexto de /banking. --%>
    
    <c:import url="accountSummary.jsp" context="/banking"/>
    
    <hr size="5"/>
    
    </BODY>
    </HTML>
  4. Opcional: Modifique seu aplicativo para localizar recursos localizados em dois contextos diferentes usando o modelo de programação de estrutura.

    O Modelo de Programação de Estrutura para inclusão de recursos remotamente não requer que você use nenhuma das Interfaces de Programação de Aplicativos (APIs) de Servlet não-Java Platform, Enterprise Edition (Java EE). Quando uma solicitação é iniciada para um nome ServletContext que não está executando no momento dentro do contêiner da Web atual, o componente do RRD (Remote Request Dispatcher) retorna um objeto ServletContext que pode localizar um recurso que exoste em qualquer local dentro de um ambiente do WebSphere Application Server WebSphere Application Server, Network Deployment desde que o recurso exista e o RRD esteja ativada para esse objeto ServletContext. Estude o snippet de estrutura de amostra a seguir que demonstra como localizar os recursos localizados em dois contextos diferentes, investimentos e finanças.

    /*
    Exemplo de Programação Utilizando uma Estrutura Genérica.
    A especificação de servlet fornece uma API para obter 
    um contexto de servlet no escopo do mesmo pedido
    diferente do contexto do módulo da Web
    especificando um parâmetro de contexto.
    
    Restrição de Especificação do Servlet: O módulo da Web que obtém
    deve
    executar dentro da mesma JVM que o recurso de chamada.
    
    O RRD estende essa funcionalidade permitindo que o módulo da Web esteja localizado
    dentro do escopo do grupo principal do WebSphere Application
    Server atual 
    versus o escopo da JVM.
    
    */
    
    protected void frameworkCall (ServletContext context, HttpServletRequest request, HttpServletResponse response) 
    							throws ServletException, IOException(
    
    			PrintWriter writer = response.getWriter();
    
    			writer.write("<HTML>");
    			writer.write("<HEAD>");
    			writer.write("</HEAD>");
    			writer.write("<BODY>");
    			writer.write("<hr size=\"5/">);
    
    			//Inclui o recurso investmentSummary.jsp localizado no aplicativo da Web
    			//com a raiz de contexto de /investments.
    			RequestDispatcher rd = getRequestDispatcher ( context, "/investments", "/investmentSummary.jsp");
    			rd.include(request, response);
    
    			writer.write("<hr size=\"5/">);
    
    			//Inclui o recurso accountSummary.jsp localizado no aplicativo da Web
    			//com o raiz de contexto de /banking.
    			rd = getRequestDispatcher ( context, "/banking", "/accountSummary.jsp");
    			rd.include(request, response);
    
    			writer.write("</BODY>");
    			writer.write("</HTML>");
    }
    private RequestDispatcher getRequestDispatcher (ServletContext context, String contextName, String resource) {
    			return context.getContext(contexName).getRequestDispatcher(resource);
    }

Resultados

Após ativar pelo menos um aplicativo corporativo para efetuar dispatch de inclusões remotas e pelo menos um aplicativo corporativo para atender inclusões remotas, o RRD é ativado.

O que Fazer Depois

Reinicie os aplicativos modificados se já estiverem instalados ou inicie aplicativos instalados recentemente para ativar o RRD em cada aplicativo.

Ícone que indica o tipo de tópico Tópico de Tarefa



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