Panoramica delle attività: assemblaggio di applicazioni utilizzando il dispatcher di richieste remote

Il dispatcher di richieste remote (RRD) è un'estensione collegabile al contenitore web che consente framework applicativi, servlet e JavaServer Pages (JSP) per includere contenuto esterno alla Java™ Virtual Machine (JVM) della risorsa attualmente in esecuzione come parte della risposta inviata al client.

Prima di iniziare

Tu devi avere WebSphere® Application Server Network Deployment installato per utilizzare la funzione di dispatcher di richieste remote. Dovresti anche familiarizzare con le limitazioni del dispatcher di richieste remote. Per i dettagli, vedere l'articolo Considerazioni sul dispatcher di richieste remote.

Procedura

  1. Installa i file delle applicazioni aziendali con la console.
  2. Configurare l'invio di richieste di inclusione tra l'applicazione e le risorse remote.
    • Configura le applicazioni web per inviare inclusioni remote.
    • Configurare le applicazioni Web per includere servizi remoti.
  3. Opzionale: Modifica la tua applicazione per individuare le risorse situate in due contesti diversi utilizzando il modello di programmazione servlet.

    Il modello di programmazione servlet per includere risorse in remoto non richiede l'utilizzo di strumenti nonJava Platform, Enterprise Edition (Java EE ) Interfacce di programmazione di applicazioni servlet (API). Il componente remote request dispatcher (RRD) segue le stesse regole per ottenere a ServletContext e una risorsa remota. Usando JavaServer Libreria di tag standard di Pages (JSTL), l'applicazione viene ulteriormente rimossa dall'ottenimento di un file ServletContext oggetto o RequestDispatcher ciò è richiesto nell'esempio del framework nel passaggio seguente perché il tag personalizzato JSTL lo fa implicitamente. Studia il seguente esempio di campione JavaServer Applicazione Pages per imparare a localizzare le risorse che si trovano in due contesti diversi, investimenti e bancario.

    <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>
    
    <%--
    
    Programming example using JavaServer Pages and JavaSever Pages
    Standard Tag Library (JSTL).
    JSTL provides a custom tag to import contents (in servlet and JSP
    terms include) in the scope of the same request from outside of
    the current web module context by specifying a context parameter.
    
    JSTL restriction: The web module that is imported 
    must run inside of the same JVM as the calling resource
    if imported URL is not fully qualified.
    
    RRD extends this functionality by permitting the web module to 
    be located within the scope of the current WebSphere Application Server
    core group versus the scope of the JVM.
    --%>
    
    
    <hr size="5"/>
    <%--		Include resource investmentSummary.jsp located in the 
    		web application with context root of /investments. --%>
    
    <c:import url="investmentSummary.jsp" context="/investments"/>
    
    <hr size="5"/>
    <%--		Include resource accountSummary.jsp located in the 
    		web application	with context root of /banking. --%>
    
    <c:import url="accountSummary.jsp" context="/banking"/>
    
    <hr size="5"/>
    
    </BODY>
    </HTML>
  4. Opzionale: Modifica la tua applicazione per individuare le risorse situate in due contesti diversi utilizzando il modello di programmazione del framework.

    Il Modello di Programmazione Quadro per l'inclusione di risorse in remoto non richiede l'utilizzo di strumenti non Java Platform, Enterprise Edition ( Java EE ) Interfacce di programmazione di applicazioni servlet (API). Quando viene avviata una richiesta per a ServletContext nome che non è attualmente in esecuzione all'interno del contenitore Web corrente, il componente remote request dispatcher (RRD) restituisce a ServletContext oggetto che può localizzare una risorsa che esiste ovunque all'interno di a WebSphere Server dell'applicazione WebSphere Application Server Network Deployment ambiente a condizione che la risorsa esista e che RRD sia abilitato per questo ServletContext oggetto. Studia il seguente frammento di framework di esempio che dimostra come individuare le risorse situate in due contesti diversi, investimenti e servizi bancari.

    /*
    Programming example using a generic framework.
    Servlet Specification provides an API to obtain 
    a servlet context in the scope of the same request
    different from the current web module context by
    specifying a context parameter.
    
    Servlet Specification restriction: The web module that obtain
    must run inside of the same JVM as the calling resource.
    
    RRD extends this functionality by permitting the web module to be located
    within the scope of the current WebSphere Application Server core group 
    versus the scope of the 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/">);
    
    			//Include resource investmentSummary.jsp located in web application
    			//with context root of /investments.
    			RequestDispatcher rd = getRequestDispatcher ( context, "/investments", "/investmentSummary.jsp");
    			rd.include(request, response);
    
    			writer.write("<hr size=\"5/">);
    
    			//Include resource accountSummary.jsp located in web application
    			//with context root of /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);
    }

Risultati

Dopo aver abilitato almeno un'applicazione aziendale per l'invio di inclusioni remote e almeno un'applicazione aziendale per il servizio di inclusioni remote, RRD è ora abilitato.

Operazioni successive

Riavviare le applicazioni modificate se già installate o avviare le applicazioni appena installate per abilitare RRD su ciascuna applicazione.