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
- Installa i file delle applicazioni aziendali con la console.
- 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.
- 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>
- 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.