If you are using an external web server
to route requests
to an SCA service that is exposed over the SCA web services, Atom
or
HTTP binding, you must define the endpoints of the SCA service to
the Web Server HTTP plug-in.
About this task
Requests to services
that are exposed over the SCA binding
that use the proxy server type that is provided with WebSphere® Application Server are routed
over the specified proxy by default.
However, if your configuration
uses an external web server with the HTTP plug-in for WebSphere Application Server and you want
requests to services that are exposed over the SCA binding to route
through the external web server, you must define the endpoints for
the SCA service by adding the service URL patterns to the plugin-cfg.xml file
for the Application Server.
Procedure
- Obtain
the URL patterns for each service.
You
can obtain the URL patterns in one of the following ways:
Use the message, which is located in the server
log file,
that indicates the web application is successfully created.
During
service startup, for each service that is exposed over an SCA binding,
a dynamic web application is created and configured with the URI of
the service. This process is described as an informational message
within the server log file as shown in the following example.
In
the following example message, the helloworldws composition unit contains
the AsyncTranslatorService service, which is exposed over the SCA
web service binding. This message provides the necessary context root
and URL pattern for the service, which you must add to the
plugin-cfg.xml file.
/AsynchTranslatorComponent/AsynchTranslatorService/*
[[11/18/08 10:10:52:156 EST] 00000070 servlet I com.ibm.ws.webcontainer.servlet.ServletWrapper init
SRVE0242I: [helloworldws]
[/AsynchTranslatorComponent/AsynchTranslatorService]
[SCA_WS_BINDING_IMPL_CLASS_PLACEHOLDER]: Initialization successful.
[11/18/08 10:10:52:156 EST] 00000070 WASAxis2Exten I
WSWS7037I: The /* URL pattern was configured for the SCA_WS_BINDING_IMPL_CLASS_PLACEHOLDER servlet located
in the SCAWSBindSERV_AsynchTranslatorComponent_AsynchTranslatorService.war web module.
Use the warinfo.props WebSphere configuration repository file.
For
each composition unit that has at least one service or reference exposed
over the binding, a single warinfo.props file
is generated during deployment. This file contains configuration information
for each dynamic web application that starts during the server startup
process.
The warinfo.props file is located
in, for example, the profile_root\SOAAppSrv01\config\cells\
cell1\cus\helloworldws\cver\BASE\meta\warinfo.props directory.
The
file contains an entry for each dynamic web application. For example:
#
#Tue Nov 18 10:10:37 EST 2008
SCAWSBindSERV_AsynchTranslatorComponent_
AsynchTranslatorService.war=AsynchTranslatorComponent/
AsynchTranslatorService\:default_host\:false\:false\:false
The
value immediately following the
war= and ending prior
to the
\: is the context root for the web application.
In this example, the context root is
AsynchTranslatorComponent/AsynchTranslatorService.
- Add the values for each dynamic web application
to the plugin-cfg.xml file.
After
obtaining all of the entries from each of the services
that you want to define to the proxy server, add the values to the plugin-cfg.xml file.
It is important that you add the URI to the specific UriGroup that
contains a server and hosts the proxied service because multiple UriGroups
might exist. If this process is not done correctly, an HTTP 404 message
results.
In the following example, see the
AsynchTranslatorComponent/AsynchTranslatorService entry
that has been added to the list of URI patterns:
<UriGroup Name="default_host_Cluster2_URIs">
? <Uri AffinityCookie="JSESSIONID"
AffinityURLIdentifier="jsessionid"
Name="/IBM_WS_SYS_RESPONSESERVLET/*" />
? <Uri AffinityCookie="JSESSIONID"
AffinityURLIdentifier="jsessionid"
Name="/IBM_WS_SYS_RESPONSESERVLET/*.jsp" />
? <Uri AffinityCookie="JSESSIONID"
AffinityURLIdentifier="jsessionid"
Name="/IBM_WS_SYS_RESPONSESERVLET/*.jsv" />
? <Uri AffinityCookie="JSESSIONID"
AffinityURLIdentifier="jsessionid"
Name="/IBM_WS_SYS_RESPONSESERVLET/*.jsw" />
? <Uri AffinityCookie="JSESSIONID"
AffinityURLIdentifier="jsessionid"
Name="/IBM_WS_SYS_RESPONSESERVLET/j_security_check" />
? <Uri AffinityCookie="JSESSIONID"
AffinityURLIdentifier="jsessionid"
Name="/IBM_WS_SYS_RESPONSESERVLET/ibm_security_logout" />
? <Uri AffinityCookie="JSESSIONID"
AffinityURLIdentifier="jsessionid"
Name="/AsynchTranslatorComponent/AsynchTranslatorService/*" /> </UriGroup>
Results
You have configured the endpoints for SCA
services to route
requests through an external web server configured with the HTTP plug-in
for WebSphere Application
Server