Web Based Apache-Tomcat-ArcIMS Installation Guide

  1. Install Apache 2.0.43 from:
      http://www.apache.org/dist/httpd/binaries/win32/

    For the Windows 2000 or Windows XP OS download:
      apache_2.0.43-win32-x86-no_ssl.msi

    For Windows NT 4.0 OS download:
      apache_2.0.43-win32-x86-no_ssl.exe

    If this is a production server during the install provide the host name and domain that will be resolved by your Domain Name Server for example geovelocity.com for the domain and maps for the server name.

    If this is a development server you may leave the domain entry blank and just set the server name for access by the local area network.

    Update the Apache config file located in <APACHE_ROOT>/conf/httpd.conf with the following changes:

    DirectoryIndex index.html index.html.var default.htm

    Add the following Alias lines modifying the path to reflect your local directories:

    Alias /WEBSITE "C:/ArcIMS/Website"
    Alias /website "C:/ArcIMS/Website"
    Alias /WebSite "C:/ArcIMS/Website"
    Alias /Website "C:/ArcIMS/Website"
    Alias /MANAGER "C:/ArcIMS/Manager"
    Alias /manager "C:/ArcIMS/Manager"
    Alias /Manager "C:/ArcIMS/Manager"
    Alias /OUTPUT "C:/ArcIMS/Output"
    Alias /Output "C:/ArcIMS/Output"
    Alias /output "C:/ArcIMS/Output"

  2. Install JSDK 1.4.1_01 from:
      http://java.sun.com/j2se/1.4.1/download.html

    Select the SDK download option. Set the JAVA_HOME system environment variable for example:
      JAVA_HOME=C:\j2sdk1.4.1_01

    Edit the PATH system environment variable to include the java bin directory for the SDK (to access javac) and JRE (to access JAI libraries) for example:
      PATH=%JAVA_HOME%\bin;C:\Program Files\Java\j2re1.4.1_01\bin

  3. Install Tomcat 4.1.12.

    Select jakarta-tomcat-4.1.2-LE-jdk14.exe for the lightweight version of Tomcat or jakarta-tomcat-4.1.2.exe if you want to install Tomcat with preconfigured run-time access to JavaMail, JAF, Xerces, JNDI and JDBC. Deselect the run Tomcat as a Service option since it will be setup to run inprocess with Apache.

    Set the TOMCAT_HOME system environment variable for example:
      TOMCAT_HOME= C:\Program Files\Apache Group\Tomcat 4.1

  4. Install mod_jk2-2.0.43.dll from:
      http://jakarta.apache.org/builds/jakarta-tomcat-connectors/jk2/release/v2.0.1/bin/win32/

    Download mod_jk2-2.0.43.dll and save it to <APACHE_ROOT>/modules/directory.

    Add this line:
      LoadModule jk2_module modules/mod_jk2-2.0.43.dll
      to <APACHE_ROOT>/conf/httpd.conf at the end of the existing LoadModules section.

  5. Create a workers2.properties file in the <APACHE_ROOT>/conf/ directory.
    Download or cut and past from the example below and then modify it to match the paths from your installation (note - replace both %TOMCAT_HOME% and <APACHE_ROOT>):

      [logger]
      level=DEBUG

      [config:]
      file=<APACHE_ROOT>/conf/workers2.properties
      debug=0
      debugEnv=0

      [uriMap:]
      info=Maps the requests. Options: debug
      debug=0

      # Alternate file logger
      #[logger.file:0]
      #level=DEBUG
      #file=<APACHE_ROOT>/logs/jk2.log

      [shm:]
      info=Scoreboard. Required for reconfiguration and status with multiprocess servers
      file=<APACHE_ROOT>/logs/jk2.shm
      size=1000000
      debug=0
      disabled=0

      [workerEnv:]
      info=Global server options
      timing=1
      debug=0
      # Default Native Logger (apache2 or win32 )
      # can be overriden to a file logger, useful
      # when tracing win32 related issues
      #logger=logger.file:0

      [lb:lb]
      info=Default load balancer.
      debug=0

      #[lb:lb_1]
      #info=A second load balancer.
      #debug=0

      [channel.socket:localhost:8009]
      info=Ajp13 forwarding over socket
      debug=0
      tomcatId=localhost:8009

      [channel.jni:jni]
      info=The jni channel, used if tomcat is started inprocess

      [status:]
      info=Status worker, displays runtime informations

      [vm:]
      info=Parameters used to load a JVM in the server process
      #JVM=C:\Program Files\Java\j2re1.4.0_01\bin\client\jvm.dll
      OPT=-Djava.class.path=%TOMCAT_HOME%/bin/tomcat-jni.jar
      OPT=-Dtomcat.home=%TOMCAT_HOME%
      OPT=-Dcatalina.home=%TOMCAT_HOME%
      OPT=-Xmx128M
      #OPT=-Djava.compiler=NONE
      disabled=0

      [worker.jni:onStartup]
      info=Command to be executed by the VM on startup. This one will start tomcat.
      class=org/apache/jk/apr/TomcatStarter
      ARG=start
      disabled=0
      stdout=<APACHE_ROOT>/logs/stdout.log
      stderr=<APACHE_ROOT>/logs/stderr.log

      [worker.jni:onShutdown]
      info=Command to be executed by the VM on shutdown. This one will stop tomcat.
      class=org/apache/jk/apr/TomcatStarter
      ARG=stop
      disabled=0

      [uri:/jkstatus/*]
      info=Display status information and checks the config file for changes.
      group=status:

      [uri:/examples]
      info=Example webapp in the default context.
      context=/examples
      debug=0

      [uri:/examples/servlets/*]
      info=Prefix mapping

      [uri:/examples/*.jsp]
      info=Extension mapping

      [uri:/examples/*]
      info=Map the whole webapp

      [uri:/servlet/*]
      info=Map servlet requests
      context=/ROOT

      [uri:/arcimsServletConnector/servlet/*]
      info=ArcIMS prefix mapping

      [uri:/arcimsServletConnector/*.jsp]
      info=ArcIMS extension mapping

      [uri:/arcimsServletConnector/*]
      info=ArcIMS webapp auto deploy

      [uri:/esriadmin/*]
      info=ArcIMS Admin

      [uri:/MetadataExplorer/*]
      info=ArcIMS Metadata Explorer

  6. Modify the jk2.properties files under the %TOMCAT_HOME%/conf/ directory.
    Uncomment the last line in the file as shown below:

      ## THIS FILE MAY BE OVERRIDEN AT RUNTIME. MAKE SURE TOMCAT IS STOPED
      ## WHEN YOU EDIT THE FILE.

      ## COMMENTS WILL BE _LOST_

      ## DOCUMENTATION OF THE FORMAT IN JkMain javadoc.

      # Override the default port for the socketChannel
      # channelSocket.port=8019
      # Default:
      # channelUnix.file=${jkHome}/work/jk2.socket
      # Just to check if the the config is working
      # shm.file="c:\program files\apache group\tomcat 4.1\logs\jk2.shm"

      # In order to enable jni use any channelJni directive
      # channelJni.disabled = 0
      # And one of the following directives:

      # apr.jniModeSo=/opt/apache2/modules/mod_jk2.so

      # If set to inprocess the mod_jk2 will Register natives itself
      # This will enable the starting of the Tomcat from mod_jk2
      apr.jniModeSo=inprocess

  7. Install ArcIMS 4.0.

    Create the following directory:
    %TOMCAT_HOME%\webapps\arimsServletConnector\WEB-INF\classes

    Accept the defaults except as noted below,

    Choose Custom for ArcIMS components, choose Manager and click Custom choose Manager Applications. (Setting up a Tutorial site assumes Manager Applications are installed). Next under Application Server Connectors choose both the Servlet and Java Connector. Lastly, choose Samples for Tutorial data sets and files.

    Browse to your existing JRE location for example:
      C:\Program Files\Java\j2re1.4.1_01

    Click browse for the Servlet Connector Directory and accept the default:
      <ARCIMS_ROOT>\Connectors\Servlet\

    After ArcIMS finishes install, click YES to reboot your machine.

    Copy <ARCIMS_ROOT>\Connectors\Servlet\arcimsServletConnector.war into
      %TOMCAT_HOME%\webapps

    After the WAR extracts itself (restart Apache if necessary) add the following servlet mapping parameters in %TOMCAT_HOME%\webapps\arcimsServletConnector\WEB-INF\web.xml so that the file looks like the following and save the file:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
       <web-app id="WebApp_1">
          <servlet id="esri">
             <servlet-name>esri</servlet-name>
             <servlet-class>com.esri.esrimap.Esrimap</servlet-class>
          </servlet>
          <servlet-mapping id="ServletMapping_1">
          <servlet-name>esri</servlet-name>
          <url-pattern>/com.esri.esrimap.Esrimap</url-pattern>
          </servlet-mapping>
          <servlet-mapping>
          <servlet-name>invoker</servlet-name>
          <url-pattern>/servlet/*</url-pattern>
          </servlet-mapping>
       </web-app>

    Update the AppServerMachine parameter in %TOMCAT_HOME%\webapps\arcimsServletConnector\WEB-INF\classes\Esrimap_prop for example:
      appServerMachine=geoportable

    Restart Apache.

  8. Optional Install of web based ArcIMS Admin and ArcIMS Metadata Explorer.

    Copy <ARCIMS_ROOT>Administrator\esriadmin.war into %TOMCAT_HOME%\webapps

    Copy <ARCIMS_ROOT>Metadata\MetadataExplorer.war into %TOMCAT_HOME%\webapps

  9. Start the Admin client: Start > Programs > ArcGIS > ArcIMS > Administrator

    Click View > Site Properties and update HTTP Location (URL) to:
    http://localhost/arcimsServletConnector/servlet/com.esri.esrimap.Esrimap
    Click File > Login and enter your username and password

    Test your installation by pinging the connector and appserver:
    http://localhost/arcimsServletConnector/com.esri.esrimap.Esrimap?CMD=connectorping
    http://localhost/arcimsServletConnector/com.esri.esrimap.Esrimap?CMD=appserverping

  10. Set up a Tutorial imageservice and html client.

    In Administrator click on Services. Next click on the Service > New. Under Name type world, under Map File browse to: <ArcIMS_ROOT>\Samples\TutorialData\AXL\world.axl.
    Under Virtual Server select ImageServer1. Under Image Type select Portable Network Graphics 8-bit (*.PNG). Click OK. Go to File > Exit and click YES when asked to save changes.

    Start the Designer client: Start > Programs > ArcGIS > ArcIMS > Designer.
    Type World for the Web site directory. Add world under ImageServer1 to Services in Web Site. Click Next. Choose HTML Viewer, click Next. Accept all defaults and click Create Web Site and then Exit.

    Update the following variables in ArcIMSparam.js in C:\ArcIMS\Website\World\ as noted below:
    var imsURL = 'http://' + hostName + '/arcimsServletConnector/servlet/com.esri.esrimap.Esrimap?ServiceName=world';
    var imsOVURL = 'http://' + hostName + '/arcimsServletConnector/servlet/com.esri.esrimap.Esrimap?ServiceName=world';

    Update the the following variable in aimsXML.js in C:\ArcIMS\Website\World\javascript\ as noted below:
    var connectorURL = "http://" + hostName + "/arcimsServletConnector/servlet/com.esri.esrimap.Esrimap?ServiceName=redirect";

    Test the site with the following URL:
    http://localhost/website/world/

    If you are satisfied you may wish to make these changes permanent by updating the html.jar used by designer, follow these steps outlined by ESRI at the following URL:
    http://arconline.esri.com/arconline/documentation/ims_/CustomHTMLJar.htm