Aliasing the ArcIMS Servlet Connector
ESRI Technical Paper
DRAFT
Originally posted December 20, 2001
Updated July 25, 2002
Question: Using a number of
ArcIMS clients, such as ArcMap and ArcExplorer, users can view, query, and even save features from
ArcIMS map services. I want to allow only browser
clients to access my map services, but I don't want to require browser clients
to enter a username and password in order to
access the services. How can I do this?
Answer: Deploy the ArcIMS Servlet Connector in a Web application.
A browser-based client, such as the HTML
Viewer, will be able to access map services, while other ArcXML-capable clients
(including ArcExplorer 3+, ArcMap, and ArcPad) will not.
Note: An
earlier version of this document described a less effective strategy --- creating an
alias path for the Servlet Connector using standard servlet engine
functionality. This document
describes a more effective strategy --- building a simple Web application to
redirect incoming requests to a relocated and/or renamed Servlet Connector.
While there are a variety of techniques for creating a Web
application, this document outlines only one approach for each servlet engine.
In each approach, the basic procedure is as follows:
- Deploy the ArcIMS Servlet Connector in a Web application
- Configure the new Web application for use with your Web server
- Configure your Web server to use the new Web application
- Configure your client applications to use the new Web application
- Restrict the default Servlet Connector
Instruction sets are included for the following servlet
engines and Web servers. For other servlet engines and Web servers, consult your
documentation.
- Apache with Jakarta Tomcat (Windows)
- Apache with Jakarta Tomcat (UNIX)
- Internet Information Server with Jakarta Tomcat
- Internet Information Server with JRun
- Internet Information Server with ServletExec
- iPlanet 4.1 (Windows and UNIX)
- iPlanet 6.0 (Windows)
- WebLogic 6.1 (Windows)
- WebSphere 3.5 (Windows)
Preliminary Notes
- While the technique described in this document (i.e., aliasing the Servlet Connector
using a Web application) is highly effective, it may still be possible to
customize ArcMap or other ArcXML-capable clients to gain access to map
services.In order to do this, an
individual would first need to learn the new location and/or name of the moved
Servlet Connector, and then customize their client application to use the moved
Servlet Connector.Thorough testing is recommended.
- The last step in the procedure will be to restrict access to the default ArcIMS
Servlet Connector through authentication.
Note that this will affect how ArcIMS administration takes place. In particular, you will not be able to
design Web sites using ArcIMS Designer while authentication is enabled. To use Designer, you first need to
temporarily disable authentication on the default Servlet Connector. More information is provided in the
instruction sets below.
Instruction Sets
Click on an instruction set to get more information.
Internet Information Server with Jakarta-Tomcat, and
Apache with Jakarta-Tomcat (Windows and UNIX)
The following instructions explain how to create a Web
application in Tomcat that will contain only the ArcIMS Servlet Connector. These
instructions assume you are using version 3.2.3 of Tomcat. Substitute your
version and directory names as necessary. Note: Tomcat is also known as
Apache Tomcat at version 4.0.
A. Move the Servlet Connector into a Web application
- Use a command line (UNIX) or Explorer (Windows) to navigate to your Tomcat installation. A typical Windows example is C:\Jakarta-Tomcat-3.2.3\webapps.
- Create a new directory under webapps named with the URL prefix you want to use for the ArcIMS Servlet Connector. The example used here is arcims.
- Inside the new directory, create a WEB-INF directory (case sensitive), then, inside WEB-INF, create a directory called classes. Your directory structure should look like this:
Jakarta-Tomcat-3.2.3
|
---- webapps
|
---- arcims
|
---- WEB-INF
|
---- classes
No files need exist inside the Web application
(arcims) directory at this point - just the WEB-INF and classes
subdirectories.
- Copy the Servlet Connector files from the ArcIMS install directory (on Windows,
typically at C:\Program Files\ESRI\ArcIMS3.1\Connectors\Servlet) to the
WEB-INF\classes directory you created above. The files for ArcIMS 3.1 are:
- Esrimap_prop
- jaxp.jar
- parser.jar
- ServletConnector_Res.properties
- ServletConnector_Res_en_US.properties (or equivalent)
- WMSEsrimap_prop
- the entire com directory
Note: For ArcIMS 4.0, you do not need to copy the arcimsServletConnector.war file.
B. Configure the Web Application in Jakarta-Tomcat
- In a text editor
such as Notepad or vi, create a new file called web.xml, and save it to
the WEB-INF folder within the Web application. The web.xml file is
called the deployment descriptor for the application. Within the web.xml file,
enter the lines below. Note: A sample of this file may be available at the
ArcOnline web site.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web
Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>ims</servlet-name>
<servlet-class>
com.esri.esrimap.Esrimap
</servlet-class>
</servlet>
<servlet>
<servlet-name>sorry</servlet-name>
<servlet-class>
sorryServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ims</servlet-name>
<url-pattern>
/ims
</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>sorry</servlet-name>
<url-pattern>
/servlet/com.esri.esrimap.Esrimap
</url-pattern>
</servlet-mapping>
<!--
need wildcard pattern too -->
<servlet-mapping>
<servlet-name>sorry</servlet-name>
<url-pattern>
/servlet/com.esri.esrimap.Esrimap/*
</url-pattern>
</servlet-mapping>
</web-app>
Note: This
configuration points toward a servlet called "sorryServlet" which does not
exist. If someone attempts to connect to ArcIMS with the default servlet name
(com.esri.esrimap.Esrimap), they will get a file-not-found response (404
message). If preferred, you could substitute an existing servlet such as
HelloWorldExample or SnoopServlet in the servlet-class tag, or create a
sorryServlet class or a JSP page that displays an error message. Some servlets are typically installed at
C:\Jakarta-tomcat-3.2.3\webapps\examples\WEB-INF\classes. The servlet must be copied to the
classes directory within the arcims Web application.
- Save the web.xml file and close the file from the text editor.
C. Configure Web Server to Pass Requests to Tomcat
- Use a
text editor to configure your Web server to pass requests to Tomcat. These
instructions assume you are using the AJP connector with Tomcat.
Instructions are not included for other connectors (e.g., Warp).
- Apache
- Open the httpd.conf file, found in the /conf directory within your Apache Web server installation directory, in the text editor.
- Search for the string mod_jk. If present, the line will look something like:
Include C:/Tomcat/conf/mod_jk.conf
- If this line is present, and the file is named mod_jk.conf-auto or has auto in the
path, then Tomcat probably generates the configuration file for Apache
automatically. Apache should use your Web application automatically. Skip to
step 2 below. If the test in step 3 does not work, you may need to return to
this step and configure the configuration file manually.
- If this line is
present without "auto" in the name or path, close httpd.conf and edit the
mod_jk.conf file as shown next.
- If this line is not present, then search for the string
JkMount. If present, then edit the httpd.conf file directly. If not
present, then a different connector is used; consult your documentation on how
to set up a context for the connector.
- Below the line that includes "JkMount /*.jsp", add the following lines to the file
(mod_jk.conf or httpd.conf as directed above), substituting your Web application
directory name as appropriate:
JkMount /arcims ajp12
JkMount /arcims/* ajp12
Note: if you use Tomcat 4.x, use "ajp13" instead.
- Save the file and exit the text editor.
- Internet Information Server (IIS)
- Open the uriworkermap.properties file, found in the
Jakarta-Tomcat-3.2.3\conf folder, in the text editor.
- Add the following lines to the bottom of the file, substituting your Web application
directory name as appropriate:
# New location for ArcIMS connector (webapps\arcims)
/arcims/*=ajp12
Note: for Apache Tomcat 4.0+, use
"ajp13" instead of "ajp12". These lines instruct IIS to pass requests with the
/arcims URL to Tomcat.
- Save the uriworkermap.properties file and exit the text editor.
- Restart the Jakarta (or Apache Tomcat) service and the Web server service
(for IIS, the World Wide Web Publishing Service; for Apache, the Apache
service). On Windows, use the Services window of the Control Panel (under
Administrative Tools in Windows 2000). On UNIX, use a command line to stop and
restart the daemons.
- Test the new servlet configuration by opening a browser and typing the following into
the Address (location) window.
http://<servername>/arcims/ims?Cmd=ConnectorPing
where <servername> is your server name (or IP address), and "arcims" is the Web
application URL prefix you created in step A.2, and ims is the
servlet-name specified in step B.1. You should receive a simple response such as
"IMS 3.1" plus build number, etc. If not, recheck the Web application URL and
settings, and check that the Servlet Connector files are in the Web
application's WEB-INF\classes directory.
D. Configure Your Applications to Use the Servlet Alias
In order for your client applications to use the servlet
alias, you must modify them so they reference the new URL path and servlet
name.
- For your client applications, locate and open the files indicated in a text editor:
- HTML Viewer: ArcIMSparam.js, Authorize.htm, aimsMap.js, and aimsXML.js
- Java Viewer: default.axl
- Custom viewers: open any files that refer to the ArcIMS servlet connector.
- Change each occurrence of:
/servlet/com.esri.esrimap.Esrimap
to
/arcims/ims
where arcims is the Web application
URL prefix specified in step A.2, and ims is the servlet name specified
in step B.1. Note: The prefix and name are case-sensitive.
- Save and close the modified file(s).
- Test each client application to make sure it works with the new servlet path.
E. Restrict the default Servlet Connector and test
To prevent unmodified client applications from accessing your
map services, you must restrict access to your original (default) copy of the
Servlet Connector. You can do this easily and effectively by enabling
authentication in the Esrimap_prop file.
- In a text editor, open the Esrimap_prop file found in the default Connector directory
(typically C:\Jakarta tomcat 3.2.3\webapps\ROOT\WEB_INF\classes). Change the
line:
authenticate=False
to
authenticate=True
- Save and close the Esrimap_prop file.
- Stop and restart the Jakarta service. Jakarta will re-load the modified Esrimap_prop file.
- Attempt to connect to your ArcIMS server with ArcMap, ArcExplorer, or ArcPad to ensure that these cannot load map services.
This will prevent any connection to map services via the
default copy of the Servlet Connector. If a connecting client has not been
configured as described in Step D above, the connection will be refused. Additional related information is given
in Appendix A of this document.
Important note: While authentication is enabled, you will
not be able to access your map services in ArcIMS Designer. If you need to use Designer, disable
authentication by re-setting authenticate=False and then restart the Jakarta
service. Once you are done using
Designer, re-enable authentication as described above. Additional related information is given
in Appendix A of this document.
Internet Information Server with
JRun 3.1
Follow these steps to configure IIS with JRun so that the
Servlet Connector is accessed with a different URL than the standard ArcIMS
path. The process involves creating a Web application that will contain only the
ArcIMS Servlet Connector.
A. Create a Web Application in Jrun
- Open the JRun Management Console (JMC), typically by clicking
Start-Programs-JRun 3.1-JRun Management Console. Login with your JRun
administrator information.
- In the left panel of the Management Console, click the plus sign to expand the JRun
Default Server.
- Under the JRun Default Server listing, click Web Applications. This displays a
list of current applications in the right panel.
- In the right panel, click the link titled Create an Application. This displays a
dialog titled Web Application Information, for entering information about
the new application.
- Under JRun Server Name, click JRun Default Server.
- Under Application Name, type in a name for the application. The name is
optional, but helps identify the application in the JRun Management Console. The
browser clients do not use this name.
- Under Application URL, enter a name that will be used to access the Servlet
Connector location. This URL-prefix functions similarly to "servlet" in the
default ArcIMS configuration. The URL-prefix is important, since you'll use it
in each Web application (HTML Viewer, etc.) to access the Servlet Connector. The
example for the URL used here is /arcims (include the slash).
- Under Application Root Directory, type a path where you will place the Servlet
Connector files. This can be under the JRun program directory, such as
C:\Program Files\Allaire\JRun\servers\default\arcims (the server may enter this
path automatically). It can also be a separate folder, such as
C:\ArcIMS\Servlet. This step works best if the folder does not yet exist. JRun
will create the directory as necessary. Note that all application attributes can
be changed later on.
- After the Web Application Information entries are completed, click create to
create the application. You should receive a message that the application has
been successfully created. If an error occurs, follow the instructions to
correct the problem, then click create again.
- In the left panel of the JRun
Management Console, click JRun Default Server. This displays the Default
Server properties in the right panel.
- Click restart server in the right panel to restart the JRun server.
B. Configure the Servlet in the Web Application
- In the left side of the JRun Management Console, expand Web Applications if
necessary, and then expand the entry for the new application just created,
(e.g., arcims).
- In the arcims application, click Servlet Definitions. This displays the dialog
for servlet definitions in the right panel. Use this section to configure
servlet names for the Web application.
- In the right panel, click Edit. This pops up a window where you can define servlet names.
- In the pop-up window, create a servlet name by entering these values:
for
Name, enter ims;
for Class Name, enter
com.esri.esrimap.Esrimap;
and for Display Name, enter ims.
- In the next line of the window, create a second servlet name:
for Name,
enter hello;
for Class Name, enter SimpleServlet;
and for Display Name, enter hello.
- Click Update to save and apply the changes to servlet names.
Note: This configuration points toward a servlet called "SimpleServlet" which is not
yet in this folder. If someone attempts to connect to ArcIMS with the default
servlet name (com.esri.esrimap.Esrimap), they will get an error message. If
preferred, you could copy the servlet from <JRun install
dir>\servers\default\demo-app\WEB-INF\classes to the arcims\WEB-INF\classes
directory. You could also use a different servlet, or create a custom servlet or
JSP page that displays an error message; in which case you need to change the
Class Name entry for the servlet named hello.>
- Next, create servlet mappings to associate URLs to the servlet names. In the left-hand
panel of the JMC, click Servlet URL Mappings.
- In the right panel, click Edit.
- In the pop-up window, create a new mapping. In the first line, under Virtual
Path/Extension, enter /ims; under Servlet Invoked, enter
ims.
- In the second line of the pop-up window, under Virtual Path/Extension, enter
/ims/servlet/com.esri.esrimap.Esrimap; under Servlet Invoked,
enter /hello. This entry is necessary due to the way ArcMap attempts to
access the servlet.
- Click update to save the changes. This returns you to the main JMC window.
- You need to create one more servlet mapping. In the right-hand window, click
Edit again to bring up the mappings dialog. A new line will be available
for an additional mapping.
- In an open line, under
Virtual Path/Extension, enter /servlet/com.esri.esrimap.Esrimap;
under Servlet Invoked, enter /hello.
- Click update to save and apply the mappings.
- You can then close the JRun Management Console if desired.
C. Copy the Servlet Connector to the New Location
- Open Windows Explorer and navigate to a copy of the Servlet Connector,
typically at C:\Program Files\ESRI\ArcIMS3.1\Connectors\Servlet.
- Select
all Servlet Connector files in this directory: Esrimap_prop, jaxp.jar,
parser.jar, ServletConnector_Res.properties,
ServletConnector_Res_en_US.properties (or equivalent), WMSEsrimap_prop, and the
com directory. Use Edit-Copy to copy the files. Note: if using ArcIMS 4.0,
you do not need to copy the arcimsServletConnector.war file.
- Navigate to the directory you selected above for the new Web application,
(e.g., C:\Program Files\Allaire\JRun\servers\arcims or C:\ArcIMS\Servlet). If
this directory does not exist, repeat the steps above with the JRun Management
Console to create the application.
- Within the Web application directory, navigate to the WEB-INF\classes folder. JRun
creates these folders when it creates the Web application.
- Paste the Servlet Connector files into this WEB-INF\classes folder.
- You can then close Windows Explorer.
- Test the new servlet configuration by opening a browser and typing into the location
window:
http://<servername>/arcims/ims?Cmd=ConnectorPing
where
<servername> is your server name (or IP address), arcims is the Web
application URL prefix you entered in step A.7, and ims is the servlet
name specified in step B.2.b. You should receive a simple response, such as "IMS
3.1" plus build number, etc. If not, recheck the Web application URL and
settings, and check that the Servlet Connector files are in the Web
application's WEB-INF\classes directory.
D. Configure Your Applications to Use the Servlet Alias
In order for your client applications to use the servlet
alias, they must be modified to reference the new URL path and servlet name.
- For your client applications, locate and open the files indicated in a text editor:
- HTML Viewer: ArcIMSparam.js, Authorize.htm, aimsMap.js, and aimsXML.js
- Java Viewer: default.axl
- Custom viewers: open any files that refer to the ArcIMS servlet connector.
- Change each occurrence of:
/servlet/com.esri.esrimap.Esrimap
to
/arcims/ims
where /arcims is the Web
application URL prefix specified in step A.7, and ims is the servlet name
specified in step B.2.b. Note: The prefix and name are case-sensitive.
- Save and close the modified file(s).
- Test each client application to make sure it works with the new servlet path.
E. Restrict the default Servlet Connector and test
To prevent unmodified client applications from accessing your
map services, you must restrict access to your original (default) copy of the
Servlet Connector. You can do this easily and effectively by enabling
authentication in the Esrimap_prop file.
- In a text editor, open the Esrimap_prop file found in the
default Connector directory (typically C:\Program Files\Allaire\JRun\servlets).
Change the line:
authenticate=False
to
authenticate=True
- Save and close the Esrimap_prop file.
- Stop and restart the JRun Default Server service.
- Attempt to connect to your ArcIMS server with ArcMap, ArcExplorer, or ArcPad to ensure that
these cannot load map services.
- This will prevent any connection to map services via the
default copy of the Servlet Connector. If a connecting client has not been
configured as described in Step D above, the connection will be refused. Additional related information is given
in Appendix A of this document.
Important note: While authentication is enabled, you will
not be able to access your map services in ArcIMS Designer. If you need to use Designer, disable
authentication by re-setting authenticate=False and then restart the JRun
Default Server service. Once you
are done using Designer, re-enable authentication as described above. Additional related information is given
in Appendix A of this document.
Internet Information Server with Servlet Exec
A. Create a Web Application in ServletExec
- Open the ServletExec Administration tool, typically by clicking Start ->
Programs -> New Atlanta -> ServletExec ISAPI -> ServletExec Admin. This
opens the administration tool in a browser window.
- In the
left side of the window, under Web Applications, click configure (or
manage). A list of Web applications, if any have been created, displays
in the right panel.
- In the right hand panel, click Add Web Application... A dialog appears where you can enter
information about the Web application.
- Type a name for the application. This name is used internally for administration in
ServletExec, and is not displayed to the user. An example for name would be
arcims_webapp.
- Enter a URL Context Path. This is the URL prefix that will be used in the
browser to access the ArcIMS servlet. An example would be /arcims_path.
- Under Location, type a folder location for your Web application. This folder
need not yet exist. The folder can be inside the ServletExec directory, or a
separate directory. Web applications typically are placed within the
webapps directory of the ServletExec folder (e.g., C:\Program Files\New
Atlanta\ServletExec ISAPI\webapps). As an example, this document will use
C:\ArcIMS\servlet_dir.
- Click Submit to create the Web application. You will be prompted to create some
required resources, such as the servlet_dir directory from step 6 and
necessary subdirectories. Click to confirm and create those resources. If you get errors:
- If you get a permissions error when creating these resources,
check the path to the directory and also the permissions on the directory. Note
that the IUSR_<machinename> account must have write permission on the
directory where the Web application will be created. If necessary, use
Windows Explorer to create the directory and WEB-INF and WEB-INF\classes
subdirectories within that directory.
- If you get a java.NoSuchMethodError, ServletExec may be using the wrong JAR
files. To locate and resolve the problematic JAR files:
- Make sure IIS Admin and World Wide Web Publishing services are running.
- Find the location of the JRE currently in use.
- Navigate to the JRE's lib\ext folder.
- Attempt to cut-and-paste parser.jar & jaxp.jar to a temporary folder
such as C:\temp.
- If you can move the files without error, they are not the files currently in use by
ServletExec.Move the files back to
their original location, then find alternate locations of the JRE (perhaps
within a JDK) and repeat steps (b) through (d) until you find copies of these
files that are in use and cannot be moved.
- Stop the IIS Admin service and related services.
- The files found to be in use (from step (e) above) will now be released. Move (cut-and-paste) these parser.jar
and jaxp.jar files to a temporary location such as C:\temp.
- Restart the IIS Admin and related services.
- Close your browser and repeat steps 1 - 7 above.
- After successfully creating the Web application, return the jaxp.jar and parser.jar files to their original location. (Added 7/25/02)
B. Configure the Servlet in the Web Application
NOTE: There are two sets of steps here. The first set is for ServletExec
3.x, and the second set is for ServletExec 4.x. Please use the correct set for your
version of ServletExec.
For ServletExec 3.x
- In the left side of the ServletExec Administration window, under Web
Applications, click configure. This displays existing Web
applications, including arcims_webapp created above.
- For the arcims_webapp Web application, under Application Settings,
click Application Options (Application Settings if using 3.0).
This opens a new window for administering the Web application.
- Create servlet names for the application:
- In the new window, on the left side under Servlets, click
configure.
- In the right side, click Add Servlet... This opens a pop-up window.
- In the pop-up window, enter these items:
For Servlet Name,
enter ims;
For Servlet Class, enter
com.esri.esrimap.Esrimap;
and for Display Name, enter
ims.
Then click Submit to save the name.
- Repeat step (c) to add another servlet name with these items: Servlet Name is
hello, Servlet Class is TestServlet, and Display
Name is hello.
- Next, create servlet mappings, which associate URLs to the servlet names.
- In the left side of the Web application window, under Servlets,
click mappings.
- In the right side, for URL Pattern enter /ims, and for Servlet
Name enter ims.
- Click Submit to save the mapping.
- Add two more mappings, remembering to Submit each one:
Map /servlet/com.esri.esrimap.Esrimap to hello
Map /servlet/com.esri.esrimap.Esrimap/* to hello
With these mappings in place,
when clients access the default path to the ArcIMS servlet, they will be
redirected to the hello servlet instead.
- Close the Web application window.
- Close the ServletExec Administration window.
For ServletExec 4.x
- In the left side of the ServletExec Administration window, under Web
Applications, click manage.This displays existing Web applications, including arcims_webapp
created earlier in this procedure.
- For the arcims_webapp Web application, in the Edit column, click
web.xml. This opens a new
window for administering the Web application.
- Create servlet names for the application:
- In the new window, on the left side under Servlets, click
manage.
- In the right side, click Add Servlet... This opens the Add a Servlet page.
- In the Add a Servlet page, enter these items:
For Servlet Name,
enter ims;
For Servlet Class, enter
com.esri.esrimap.Esrimap;
and for Display Name, enter
ims.
Then click Submit to save the name.
- Repeat step (c) to add another servlet name with these items: Servlet Name is
hello, Servlet Class is TestServlet, and Display
Name is hello.
- Next, create servlet mappings to associate URLs to the servlet names.
- In the left side of the Web application window, under Servlets,
click mapping.
- In the right side, for URL Pattern enter /ims, and for Servlet
Name enter ims.
- Click Submit to save the mapping.
- Add two more mappings, remembering to Submit each one:
Map /servlet/com.esri.esrimap.Esrimap to hello
Map /servlet/com.esri.esrimap.Esrimap/* to hello
With these mappings in place,
when clients access the default path to the ArcIMS servlet, they will be
redirected to the hello servlet instead.
- Close the Web application window.
- Close the ServletExec Administration window.
C. Copy the Servlet Connector to the New Location
- Open Windows Explorer and
navigate to the folder created above for the Web application, for example
C:\ArcIMS\servlet_dir. Make sure that a WEB-INF folder exists within this
directory, and that a classes directory exists within the WEB-INF directory. If
necessary, create these subdirectories.
- Find the ArcIMS Servlet
Connector files listed below, typically located at C:\Program
Files\ESRI\ArcIMS3.1\Connectors\Servlets.Copy these files into the WEB-INF\classes directory under the Web
application folder, for example C:\ArcIMS\servlet_dir\WEB-INF\classes.
The files to copy are:
- Esrimap_prop
- jaxp.jar
- parser.jar
- ServletConnector_Res.properties
- ServletConnector_Res_en_US.properties (or equivalent)
- WMSEsrimap_prop
- the entire com directory, including all subdirectories and files
Note: If using ArcIMS 4.0, you
do not need to copy the arcimsServletConnector.war file.
- Test the new servlet
configuration by opening a browser and typing into the location window:
http://<servername>/arcims/ims?Cmd=ConnectorPing
where <servername> is your server name (or IP address), arcims_path is
the Web application URL prefix from step A.5, and ims is the servlet name
given in step B.3.c. You should receive a simple text response, such as "IMS
v3.1" plus build number, etc. If not, recheck the Web application URL and
settings, and check that the Servlet Connector files are in the Web
application's WEB-INF\classes directory.
D. Configure Your Applications to Use the Servlet Alias
In order for your client applications to use the servlet
alias, they must be modified to reference the new URL path and servlet name.
- For your client applications, locate and open the files indicated in a text editor:
- HTML Viewer: ArcIMSparam.js, Authorize.htm, aimsMap.js, and aimsXML.js
- Java Viewer: default.axl
- Custom viewers: open any files that refer to the ArcIMS servlet connector.
- Change each occurrence of:
/servlet/com.esri.esrimap.Esrimap
to
/arcims/ims
where arcims_path is the Web
application URL prefix specified in step A.5, and ims is the servlet name
specified in step B.3.c. Note: The URL prefix is case-sensitive.
- Save and close the modified file(s).
- Test each client application to make sure it works with the new servlet path.
E. Restrict the default Servlet Connector and test
To prevent unmodified client applications from accessing your
map services, you must restrict access to your original (default) copy of the
Servlet Connector. You can do this easily and effectively by enabling
authentication in the Esrimap_prop file.
- In a text editor, open the Esrimap_prop file found in the
default Connector directory (typically C:Program Files\New Atlanta\ServletExec
ISAPI\Servlets). Change the line:
authenticate=False
to
authenticate=True
- Save and close the Esrimap_prop file.
- Stop and restart the IIS Admin service (and all related
services, such as the World Wide Web Publishing service). This will cause ServletExec to re-load
the modified Esrimap_prop file.
- Attempt to
connect to your ArcIMS server with ArcMap, ArcExplorer, or ArcPad to ensure that
these cannot load map services.
This will prevent any connection to map services via the
default copy of the Servlet Connector. If a connecting client has not been
configured as described in Step D above, the connection will be refused. Additional related information is given
in Appendix A of this document.
Important note: While authentication is enabled, you will
not be able to access your map services in ArcIMS Designer. If you need to use Designer, disable
authentication by re-setting authenticate=False and then restart the IIS Admin
service.Once you are done using
Designer, re-enable authentication as described above. Additional related information is given
in Appendix A of this document.
IPlanet 4.1
Note: These
instructions are for iPlanet 4.1 only. These instructions should not be used with iPlanet 6.0 or later, because
later versions of iPlanet support the more secure method of using a Web application to alias the Servlet
Connector. The following text
describes the difference in security (text taken from the ESRI white paper entitled
How to Manage the Data Sharing Capabilities of an ArcIMS
Mapservice, available from arcimsonline.esri.com.
"[When aliasing the Servlet Connector as described in
steps A through E below,]... if the servlet alias URL is obtained, the URL used by
ArcMap and other clients can be adjusted to regain full access to ArcIMS
services. The servlet alias URL may be obtained in a number of ways - for
example, by examining the HTML Viewer files, which are easily extracted from the
client browser's cache."
A. Copy the Servlet Connector to a New Location
- Create a new directory where you will store the copy of the Servlet Connector files,
and then copy the following Servlet Connector files to this new folder:
- Esrimap_prop
- jaxp.jar
- parser.jar
- ServletConnector_Res.properties
- ServletConnector_Res_en_US.properties (or equivalent)
- WMSEsrimap_prop
- the entire com directory, including all subdirectories and files
- On Windows
- Open Windows Explorer, and create a new directory, such as arcims,
where you will store the copy of the Servlet Connector files. This can be within
the iPlanet directory (e.g., C:\iPlanet\arcims--but not within the default docs
directory), or another location, such as C:\ArcIMS\Servlet.
- Copy the Servlet Connector files to the new classes
folder inside the Web application directory. A copy of the files is in the
<ArcIMS Install Directory>\Connectors\Servlet directory. Note: if using ArcIMS 4.0, you do not
need to copy the arcimsServletConnector.war file.
- On UNIX
- Create a new directory, such as arcims, in a location of your
choice. The webapps directory in the iPlanet directory is a recommended
location.
- Copy the Servlet Connector files from the ArcIMS install directory to this new
directory. Note: if using ArcIMS 4.0, you do not need to copy the
arcimsServletConnector.war file.
B. Configure the Servlet Alias in iPlanet
- Open the iPlanet Server Manager browser-based tool, and log in with your
administrator name and password.
- On Windows, typically with Start-Programs-iPlanet Web Server-Administer
Web Server.
- On UNIX, open a browser and enter your server name plus the iPlanet administrator
port, for example, "http://myserver.comp.com:10000".
- The Servers tab should be active, with the Manage Servers option displayed. In the
Manage Servers list, select the Web server to manage (if necessary) and
click Manage. This displays the Web server's settings panel.
- Near the top of the window, click the tab title Servlets (for iPlanet 4.1) or
Legacy Servlets (for iPlanet 6.0). This displays the options for managing
servlets along the left-hand side of the window.
- In the left side of the window, click Configure Servlet Attributes. This
displays a panel to configure servlets.
- For Servlet Name, enter a name (e.g., ims)
- For Servlet Code (class name), enter com.esri.esrimap.Esrimap
- For Servlet Classpath, enter the full path to the directory you
created above for the copy of the Servlet Connector. An example used here for
Windows is C:/iPlanet/arcims.
- Leave Servlet Args blank
- Click OK.
- In the Save and Apply Changes dialog that appears, you can just
click Save (you will apply all changes shortly). Dismiss the pop-up that
confirms your saved changes.
- In the left side of the window, click Configure Servlet Virtual Path
Translation. This displays the panel for associating a URL with the servlet
name you just created.
- For Virtual Path, type a URL path you want to use for your Web
sites. The example used here will be /arcims/ims.
- For Servlet Name, enter the name you used for the servlet name item above,
such as ims.
- Click OK.
- In the Save and Apply Changes dialog that appears, click Save and Apply.
You should receive a pop-up dialog confirming your changes. Dismiss the
pop-up.
- Test the servlet alias. Open a Web browser and enter the following in the
location slot:
http://<servername>/arcims/ims?Cmd=ConnectorPing
where <servername> is the name or IP address of your server, and /arcims/ims is
the virtual path you created in the previous step with the iPlanet Server
Manager. You should receive a simple response such as "IMS v3.1" plus build
number. If you get an error message, recheck the settings in the iPlanet Server
Manager, and ensure that a copy of the Servlet Connector files is present in the
directory you indicated for the Servlet Classpath above.
You may then close the iPlanet Server Manager.
C. Continue with Step D
This is a placeholder step, intended only to help maintain
consistency throughout this document.Please continue with step D below.
D. Configure Your Applications to Use the Servlet Alias
In order for your client applications to use the servlet
alias, they must be modified to reference the new URL path and servlet name.
- For your client applications, locate and open the files indicated in a text editor:
- HTML Viewer: ArcIMSparam.js, Authorize.htm, aimsMap.js, and aimsXML.js
- Java Viewer: default.axl
- Custom viewers: open any files that refer to the ArcIMS servlet connector.
- Change each occurrence of:
/servlet/com.esri.esrimap.Esrimap
to
/arcims/ims
where arcims_path is the Web
application URL prefix specified in step A.1.a, and ims is the servlet
name specified in step B.4.a. Note: The URL prefix is case-sensitive.
- Save and close the modified file(s).
- Test each client application to make sure it works with the new servlet path.
E. Restrict the default Servlet Connector and test
To prevent unmodified client applications from accessing your
map services, you must restrict access to your original (default) copy of the
Servlet Connector. You can do this easily and effectively by enabling
authentication in the Esrimap_prop file.
- In a text editor, open the Esrimap_prop file found in the default Connector directory
(iPlanet 4 for Windows is typically C:\Netscape\Server4\docs\servlet, and for UNIX
is typically iPlanet/server4/docs/servlet). Change the line:
authenticate=False
to
authenticate=True
- Save and close the Esrimap_prop file.
- Stop and restart the iPlanet (iWS) service or daemon. This will cause iPlanet to re-load the
modified Esrimap_prop file.
- Attempt to connect to your ArcIMS server with
ArcMap, ArcExplorer, or ArcPad to ensure that these cannot load map
services.
This will prevent any connection to map services via the
default copy of the Servlet Connector. If a connecting client has not been
configured as described in Step D above, the connection will be refused. Additional related information is given
in Appendix A of this document.
Important note: While authentication is enabled, you will not be able to
access your map services in ArcIMS Designer. If you need to use Designer, disable
authentication by re-setting authenticate=False and then restart the iPlanet
(iWS) service or daemon.Once you
are done using Designer, re-enable authentication as described above. Additional related information is given
in Appendix A of this document.
iPlanet 6.0
Note: These
instructions are only for iPlanet versions 6.0 and later. These instructions cannot be used with
earlier versions of iPlanet, because earlier versions of iPlanet do not support
Web applications. If you are using
an earlier version of iPlanet, please see the iPlanet 4.1 section above, and
be sure to read the Note at the beginning of that section.
A. Copy the Servlet Connector to a New Location
On Windows
- Open Windows Explorer, and create a new directory where you will store the
copy of the Servlet Connector files. This can be within the iPlanet directory
(e.g., C:\iPlanet,but not within the default docs directory), or another
location, such as C:\ArcIMS\Servlet. A recommended location is the
webapps directory inside the iPlanet installation directory. The
directory can have any name, but the example used here will be arcims.
- Inside the new directory, create a subdirectory called WEB-INF, and inside the
WEB-INF directory, create a subdirectory called classes. The names are
case-sensitive. Your directory structure should look something like
this:
C:\iPlanet
|
webapps
|
---- arcims
|
---- WEB-INF
|
---- classes
- Copy the Servlet Connector files to the new classes folder inside the Web application
directory. A copy of the files is in the <ArcIMS Install
Directory>\Connectors\Servlet directory. The files to copy are:
- Esrimap_prop
- jaxp.jar
- parser.jar
- ServletConnector_Res.properties
- ServletConnector_Res_en_US.properties (or equivalent)
- WMSEsrimap_prop
- the entire com directory, including all subdirectories and files
Note: You do not need to copy the arcimsServletConnector.war file.
On UNIX
- Create a new directory (this example uses arcims), in a location of your choice.
The webapps directory in the iPlanet directory is a recommended location.
- Inside the new arcims directory, create a subdirectory called WEB-INF. Within WEB-INF,
create a classes directory. See the directory structure illustration above.
- Copy the Servlet Connector files from the ArcIMS install directory to the new classes
directory. The files to copy are:
- Esrimap_prop
- jaxp.jar
- parser.jar
- ServletConnector_Res.properties
- ServletConnector_Res_en_US.properties (or equivalent)
- WMSEsrimap_prop
- the entire com directory, including all subdirectories and files
Note: You do not need to copy the arcimsServletConnector.war file.
B. Create Web Deployment File
- In a text editor such as Notepad or vi, create
a new file called web.xml, and save it to the WEB-INF folder within the Web
application you create above. Within the web.xml file, enter the lines below.
Note: A sample of this file may be available at the Online Support Center web
site.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD
Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>ims</servlet-name>
<servlet-class>
com.esri.esrimap.Esrimap
</servlet-class>
</servlet>
<servlet>
<servlet-name>sorry</servlet-name>
<servlet-class>
sorryServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ims</servlet-name>
<url-pattern>
/ims
</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>sorry</servlet-name>
<url-pattern>
/servlet/com.esri.esrimap.Esrimap
</url-pattern>
</servlet-mapping>
<!--
need wildcard pattern too -->
<servlet-mapping>
<servlet-name>sorry</servlet-name>
<url-pattern>
/servlet/com.esri.esrimap.Esrimap/*
</url-pattern>
</servlet-mapping>
</web-app>
Note: This
configuration points toward a servlet called "sorryServlet" which does not
exist. If someone attempts to connect to ArcIMS with the default servlet name
(com.esri.esrimap.Esrimap), they will get an error message. If preferred, you
could substitute an existing servlet (such as HelloWorldServlet or SnoopServlet)
in the servlet-class tag, or create a sorryServlet class (or a JSP page) that
displays an error message. In this case, be sure to copy the existing servlet to
the classes directory in your
Web application. Some samples for iPlanet 6 are located at <iPlanet install
dir>/plugins/servlets/examples/legacy/servlets.
- Save the web.xml file and close the file from the text editor.
C. Configure iPlanet to Use the Web Application
- Use a text editor to open the web-apps.xml file inside the <iPlanet install
dir>/https-<server name>/config directory.
- Add the line below between the opening <vs> and closing </vs> tags.
Modify the path in the dir tag to match the location and name of the Web
application directory you created above. The uri value will be part of
the path used to access the Servlet Connector.
<web-app uri="/arcims" dir="C:/iPlanet/webapps/arcims" enable="true"/>
- Save the file and close the text editor.
- Restart the iPlanet (iWS) services or daemon.
- On Windows, use Control Panel-Services (or on Windows 2000,
Control Panel-Administrative Tools-Services).
- On UNIX, restart the iPlanet daemon from a command line.
- Test the new servlet configuration by opening a browser and typing into the location
window:
http://<servername>/arcims/ims?Cmd=ConnectorPing
where <servername> is your server name (or IP address), arcims is the uri
specified in step C.2, and ims is the servlet-name specified in
step B.1. You should receive a simple response, such as "IMS 3.1" plus build
number, etc. If not, recheck the servlet name and path settings in web.xml, and
check that the Servlet Connector files are in the chosen directory.
D. Configure Your Applications to Use the Servlet Alias
In order for your client applications to use the servlet
alias, they must be modified to reference the new URL path and servlet name.
- For your client applications, locate and open the files indicated in a text editor:
- HTML Viewer: ArcIMSparam.js, Authorize.htm, aimsMap.js, and aimsXML.js
- Java Viewer: default.axl
- Custom viewers: open any files that refer to the ArcIMS servlet connector.
- Change each occurrence of:
/servlet/com.esri.esrimap.Esrimap
to
/arcims/ims
where arcims is the uri specified in
step C.2, and ims is the servlet-name specified in step B.1. Note:
The URL prefix is case-sensitive.
- Save and close the modified file(s).
- Test each client application to make sure it works with the new servlet path.
E. Restrict the default Servlet Connector and test
To prevent unmodified client applications from accessing your
map services, you must restrict access to your original (default) copy of the
Servlet Connector. You can do this easily and effectively by enabling
authentication in the Esrimap_prop file.
- In a text editor, open the Esrimap_prop file in the default Connector directory
(iPlanet 6.0 for Windows is typically C:\iPlanet\Servers\docs\servlet, and for UNIX is typically
iPlanet/servers/docs/servlet).
- Change the line:
authenticate=False
to
authenticate=True
- Save and close the Esrimap_prop file.
- Stop and restart the iPlanet (iWS) service. This will cause iPlanet to re-load the
modified Esrimap_prop file.
- Attempt to connect to your ArcIMS server with
ArcMap, ArcExplorer, or ArcPad to ensure that these cannot load map
services.
This will prevent any connection to map services via the
default copy of the Servlet Connector. If a connecting client has not been
configured as described in Step D above, the connection will be refused. Additional related information is given
in Appendix A of this document.
Important note: While authentication is enabled, you will not be able to
access your map services in ArcIMS Designer. If you need to use Designer, disable
authentication by re-setting authenticate=False and then restart the iPlanet
(iWS) service.Once you are done
using Designer, re-enable authentication as described above. Additional related information is given
in Appendix A of this document.
WebLogic 6.1 (Windows)
Follow these instructions to create a Web application that
contains the ArcIMS Servlet Connector.
A. Copy the Servlet Connector to a New Location
- Open Windows Explorer, and create a new directory where you will store a copy
of the Servlet Connector files. This can be within the WebLogic directory (e.g.,
C:\bea\wlserver6.1), the ArcIMS
installation directory, or another location. The example used here is
C:\ArcIMS\servlet. Inside the new directory, create a subdirectory called
WEB-INF, and inside the WEB-INF directory, create a subdirectory called
classes. Your directory structure should look something like this:
C:\ArcIMS
|
---- servlet
|
---- WEB-INF
|
---- classes
- Copy the Servlet Connector files to this new folder. A copy of these files is in the
<ArcIMS Installation Dir>\Connectors\Servlet directory. The files to copy
are:
- Esrimap_prop
- jaxp.jar
- parser.jar
- ServletConnector_Res.properties
- ServletConnector_Res_en_US.properties (or equivalent)
- WMSEsrimap_prop
- the entire com directory including all subdirectories and files.
Note: You do not need to copy
the arcimsServletConnector.war file (ArcIMS 4.0).
B. Configure the Servlet for the Web Application
- In a text editor such as Notepad, create a new file called web.xml, and save it to the
WEB-INF folder within the Web application you create above. The web.xml file is
called the deployment descriptor for the Web application. Within the web.xml
file, enter the lines below. Note: A sample of this file may be available at
the Online Support Center web site. You may also copy an existing web.xml file, such as the
one in: <WebLogic
dir>\wlserver6.1\config\mydomain\applications\DefaultWebApp\WEB-INF. If
starting from another file, delete any lines between the <web-app> and
</web-app> tags.
<?xml
version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web
Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>ims</servlet-name>
<servlet-class>
com.esri.esrimap.Esrimap
</servlet-class>
</servlet>
<servlet>
<servlet-name>sorry</servlet-name>
<servlet-class>
sorryServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ims</servlet-name>
<url-pattern>
/ims
</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>sorry</servlet-name>
<url-pattern>
/servlet/com.esri.esrimap.Esrimap
</url-pattern>
</servlet-mapping>
<!--
need wildcard pattern too -->
<servlet-mapping>
<servlet-name>sorry</servlet-name>
<url-pattern>
/servlet/com.esri.esrimap.Esrimap/*
</url-pattern>
</servlet-mapping>
</web-app>
Note: This
configuration points toward a servlet called "sorryServlet", which does not
exist. If someone attempts to connect to ArcIMS with the default servlet name
(com.esri.esrimap.Esrimap), they will get an error message. If preferred, you
could substitute an existing servlet (such as HelloWorldExample or SnoopServlet)
in the servlet-class tag, or create a sorryServlet class (or a JSP page) that
displays an error message. Copy the existing servlet to the classes
directory in your Web application.
- Save the web.xml file and close the file from the text editor.
C. Create a Web Application in WebLogic
- Open the WebLogic Server Console, typically with Start-Programs > BEA Weblogic E > Business Platform >
Weblogic Server 6.1 > Start Default Console.
- In the left side of the Server Console, expand if necessary the My
domain-Deployments tree and click Web Applications. This displays the
Web application information on the right side of the window.
- Click to Configure a New Web Application. This displays a dialog for entering
Web application information.
- In the window for configuring the Web application, enter a Name for the
application. This will be used as a prefix in the URL when users access the
relocated Servlet Connector. The name used in this example is arcims.
- In the
Path slot, type the full path to the directory you created above. In this
example, the path is C:\ArcIMS\servlet.
- Click
Create to create the Web application.
- With
the Web application information still displayed, click the Targets tab,
and then on the Servers subtab. You should see your application listed
under Available.
- Highlight the Web application name and click the arrow to move it into
the Chosen box.
- Click Apply to update the configuration of the Web application.
- In the left side of the Server
Console, under My domain-Servers, click weblogic. Click on the
server and on the Deployments tab, then click the Web Applications
subtab. Check that your Web application (e.g., arcims) is listed under Chosen.
If it is under Available, highlight it and move it to Chosen, then click Apply.
- Close the WebLogic Server Console.
- In Services panel of Control Panel, restart the WebLogic service.
- Test the new servlet
configuration by opening a browser and typing into the location
window:
http://<servername>/arcims/ims?Cmd=ConnectorPing
where
<servername> is your server name (or IP address), arcims is the Web
application name created in step C.4, and ims is the servlet name
specified in step B.1. You should receive a simple response, such as "IMS 3.1"
plus build number, etc. If not, recheck the Web application name and settings,
and check that the Servlet Connector files are in the Web application's
WEB-INF\classes directory.
D. Configure Your Applications to Use the Servlet Alias
In order for your client applications to use the servlet
alias, they must be modified to reference the new URL path and servlet name.
- For your client applications, locate and open the files indicated in a text editor:
- HTML Viewer: ArcIMSparam.js, Authorize.htm, aimsMap.js, and aimsXML.js
- Java Viewer: default.axl
- Custom viewers: open any files that refer to the ArcIMS servlet connector.
- Change each occurrence of:
/servlet/com.esri.esrimap.Esrimap
to
/arcims/ims
where arcims is the Web application
URL prefix specified in step C.4, and ims is the servlet name specified
in step B.1. Note: The URL prefix is case-sensitive.
- Save and close the modified file(s).
- Test each client application to make sure it works with the new servlet path.
E. Restrict the default Servlet Connector and test
To prevent unmodified client applications from accessing your
map services, you must restrict access to your original (default) copy of the
Servlet Connector. You can do this easily and effectively by enabling
authentication in the Esrimap_prop file.
- In a text editor, open the Esrimap_prop file in the default Connector directory
C:\bea\wlserver6.1\config\mydomain\applications\DefaultWebApp\Web-Inf\classes).
- Change the line:
authenticate=False
to
authenticate=True
- Save and close the Esrimap_prop file.
- Stop and restart the Weblogic service. This will cause Weblogic to re-load the
modified Esrimap_prop file.
- Attempt to connect to your ArcIMS server with
ArcMap, ArcExplorer, or ArcPad to ensure that these cannot load map
services.
This will prevent any connection to map services via the
default copy of the Servlet Connector. If a connecting client has not been
configured as described in Step D above, the connection will be refused. Additional related information is given
in Appendix A of this document.
Important note: While authentication is enabled, you will
not be able to access your map services in ArcIMS Designer. If you need to use Designer, disable
authentication by re-setting authenticate=False and then restart the Weblogic
service.Once you are done using
Designer, re-enable authentication as described above. Additional related information is given
in Appendix A of this document.
WebSphere 3.5 (Windows)
Follow these instructions to create a Web application that
contains the ArcIMS Servlet Connector.
A. Create a Web Application in WebSphere
- Open the WebSphere Administrative Console with Start-Programs-IBM
Websphere-Application Server V3.5-Administrator's Console.
- From the Console menu, choose Console-Tasks-Create a Web Application. This
opens a new window titled Create Web Application.
- In the dialog, under Web Application Name, enter arcims. Make sure that
Serve Servlets by Classname is unchecked. Keep the option for JSP
1.0. Click Next.
- The dialog asks you to "Choose a parent Servlet Engine". Expand the nodes and select
Default Servlet Engine under your server name. Click Next.
The next panel allows you to modify the application Description, Virtual Host and
Web Application Web Path. You may modify these or leave at the defaults. It is
recommended to change the Web Application Web Path in order to simplify
the URL you will use. This example will use /arcims. Click Next.
- This panel shows advanced settings for the Web application. Note the value under
Classpath; this is where you will copy the ArcIMS Servlet Connector files
in step B. Because we entered arcims during step A.3 above, the path will be
<WebSphere install dir>\AppServer\hosts\default_host\arcims\servlets.
- Click Finish to create the Web application.
B. Copy Servlet Connector Files
- Use Windows Explorer to navigate to the <WebSphere install
directory>\AppServer\hosts\default_host directory. Create a new directory
here, using the same name as you entered in step A.3 (arcims, in this
example).
- Create a subdirectory named servlets within the directory you just created. In this example, the new directory
structure would be default_host\arcims\servlets.
- Copy the Servlet Connector files to this new servlets folder. A copy of these files
is in the <ArcIMS Installation Dir>\Connectors\Servlet directory. The
files to copy are:
- Esrimap_prop
- jaxp.jar
- parser.jar
- ServletConnector_Res.properties
- ServletConnector_Res_en_US.properties (or equivalent)
- WMSEsrimap_prop
- the entire com directory including all subdirectories and files
Note: You do not need to copy
the arcimsServletConnector.war file (ArcIMS 4.0).
- In the WebSphere Administrative Console, click in the left side on Default
Server. Click the Stop button (square icon) in the toolbar to
stop the server. After it stops click the Start button (triangle icon) to
restart the server.
C. Configure the ArcIMS Servlet
- From the WebSphere Administrative Console, choose Console-Tasks-Add a
Servlet. This opens a dialog titled Add a Servlet.
- In the dialog, under "Do you want to select an existing Servlet jar file or Directory
that contains Servlet classes?," click Yes, then click Next.
- At the prompt to select a Web App, expand the nodes to find the server name, and expand
to find Default Server-Default Servlet Engine-arcims (or your name for
the Web application). Click Next.
- At the next panel, click Browse and locate the servlets directory inside the
<WebSphere install dir>\AppServer\hosts\default_host\arcims. Highlight the
servlets directory and click Open. Ensure that the File
Selected: entry shows the correct path to the servlets folder directly
beneath the arcims directory. Click Next.
- For the Type of Servlet, select Create User-Defined Servlet. Click
Next.
- The next panel allows you to assign a name and the servlet class (file). For
Servlet Name, enter ims (or your own choice of name; name is
case-sensitive). For Servlet Class Name, enter
com.esri.esrimap.Esrimap (this is case-sensitive). Under Servlet Web
Path List, click Add. A dialog opens to enter the URL path for the
servlet, with the web application already inserted. Add ims to this path,
so that the path is /arcims/ims. Click OK to dismiss the dialog,
which adds the path to the list in the Console panel.
- Click Finish to add the servlet to the Web application. You should get a
message that the servlet was successfully created. You should see the servlet
entry under your arcims Web application in the WebSphere Administrative Console
tree (expand if necessary). At this point it will have a red icon, meaning it is
not yet running.
- In the WebSphere Administrative Console, click in the left side on Default
Server. Click the Stop button (square icon) in the toolbar to
stop the server. After it stops click the Start button (triangle icon) to
restart the server. The servlet you created (ims) should now be displayed with a
blue icon. If you highlight the ims item, the right panel displays its
properties. In these properties, under Servlet Web Paths List in use:,
you should see the path you entered earlier (with default_host inserted).
- Test the new servlet configuration by opening a browser and typing into the location
window:
http://<servername>/arcims/ims?Cmd=ConnectorPing
where
<servername> is your server name (or IP address), and arcims is the
Web application Web path from step A.5, and ims is the servlet name
entered in step C.6. You should receive a simple response, such as "IMS 3.1"
plus build number, etc. If not, recheck the Web application name and settings,
and check that the Servlet Connector files are in the Web application's
WEB-INF\classes directory.
D. Configure Your Applications to Use the Servlet Alias
In order for your client applications to use the servlet
alias, they must be modified to reference the new URL path and servlet name.
- For your client applications, locate and open the files indicated in a text editor:
- HTML Viewer: ArcIMSparam.js, Authorize.htm, aimsMap.js, and aimsXML.js
- Java Viewer: default.axl
- Custom viewers: open any files that refer to the ArcIMS servlet connector.
- Change each occurrence of:
/servlet/com.esri.esrimap.Esrimap
to
/arcims/ims
where arcims is the Web application
URL prefix specified in step A.5, and ims is the servlet name specified
in step C.6. Note: The URL prefix is case-sensitive.
- Save and close the modified file(s).
- Test each client application to make sure it
works with the new servlet path.
E. Restrict the default Servlet Connector and test
To prevent unmodified client applications from accessing your
map services, you must restrict access to your original (default) copy of the
Servlet Connector. You can do this easily and effectively by enabling
authentication in the Esrimap_prop file.
- In a text editor, open the Esrimap_prop file in the default Connector directory
(typically C:\WebSphere\AppServer\hosts\default_host\default_app\servlets).
Change the line:
authenticate=False
to
authenticate=True
- Save and close the Esrimap_prop file.
- Stop and restart the Websphere service. This will cause Websphere to re-load the
modified Esrimap_prop file.
- Attempt to connect to your ArcIMS server with
ArcMap, ArcExplorer, or ArcPad to ensure that these cannot load map services.
This will prevent any connection to map services via the
default copy of the Servlet Connector. If a connecting client has not been
configured as described in Step D above, the connection will be refused. Additional related information is given
in Appendix A of this document.
Important note: While authentication is enabled, you will
not be able to access your map services in ArcIMS Designer. If you need to use Designer, disable
authentication by re-setting authenticate=False and then restart the Websphere
service.Once you are done using
Designer, re-enable authentication as described above. Additional related information is given
in Appendix A of this document.
Appendix A - Additional Notes
This appendix contains additional information on the following topics:
Authentication Options
In each section of this document, step E describes a simple
procedure to disable the default Servlet Connector using authentication.
Step E intentionally avoids defining valid usernames/passwords for your clients.
The goal is to completely disable access to map services, via the default Servlet
Connector, for all clients.
Authentication is more typically used to limit access to
clients having valid usernames and passwords. If you want to set up authentication
this way, you have two options to consider:
Option 1: Configure an Access Control List (ACL) for
the default Servlet Connector. Use this option if you want to allow ArcXML-based
clients (such as ArcMap) to access map services using a username/password
combination.
Note: Once
authenticated, ArcXML-based clients will be able to view, query and even save
features in your map services, unless other strategies are employed to limit or
disable the data sharing functionality of ArcIMS.
For more information on
configuring an ACL, see the ArcIMS Help section titled "Restricting Access to MapServices". For more information
on other strategies to limit data sharing, see the white paper titled
How To
Manage the Data Sharing Capabilities of an ArcIMS MapService, available from
arcimsonline.esri.com.
Option 2: Configure an ACL for the moved Servlet
Connector (the one being deployed in a Web application). Properly modified clients (as described
in step D throughout this document) will be able to access mapservices using a
valid username/password combination. ArcXML-based clients (such as ArcMap) will
attempt to connect through the default Servlet Connector, and will be controlled
by the authentication options specified there.
In summary, there are now two places you can configure authentication:
- At the default Servlet Connector, to control access by ArcXML-based clients and other unmodified clients
- At the moved Servlet Connector, to control access by modified clients (as described in step D throughout this document)
When Uninstalling ArcIMS
When you uninstall ArcIMS, any copies you have made of the
Servlet Connector will not be automatically deleted. The following files should
be removed manually:
- Esrimap_prop
- jaxp.jar
- parser.jar
- ServletConnector_Res.properties
- ServletConnector_Res_en_US.properties (or equivalent)
- WMSEsrimap_prop
- and the entire com directory
You may also want to remove any Web applications or servlet
directories you may have created. In particular, be sure to remove these files
and references before upgrading ArcIMS.