<?xml version="1.0"?>
<!--
    $Id: installation-jr30.xml 481833 2006-12-03 17:32:52Z niallp $

    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
   
         http://www.apache.org/licenses/LICENSE-2.0
   
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->
<document url="installation-jr30.html">

    <properties>
        <title>The Struts Framework Project - Installation - JRun 3.0</title>
    </properties>

    <body>
        <section name="6.2 Installation" href="installation">
            <subsection name="Installing Struts with your servlet container"
                        href="Containers">

                <h4 id="jrun">JRUN 3.0 SP2A, VERSION 3.02A.11614</h4>

                <strong>Tested with: Microsoft IIS 5.0, Windows 2000</strong>

                <h4>Important Note:</h4>

                <p>At the moment, JRun is not fully compliant with the JSP
                    1.1/1.2
                    specification.</p>

                <p>Specifically, the automatic type conversions for custom tag
                    parameters
                    specified in "Issue 7" of the JSP 1.1 Errata and in the
                    JSP 1.2 Proposed
                    Final Draft have not yet been implemented.</p>

                <p>As it stands, JSP pages that make use of Struts taglibs
                    whose parameters
                    require conversion (such as booleans) will not compile
                    under JRun. This
                    includes the Struts Example Application. Attempting to run
                    the example
                    application will result in an exception similar to the
                    following being
                    thrown:</p>

                <pre>
                    /struts-example/index.jsp:

                    javax.servlet.ServletException: Compilation error
                    occurred:

                    allaire.jrun.scripting.DefaultCFE:

                    Errors reported by compiler:
                    c:/JRun/servers/default/Struts
                    Example/WEB-INF/jsp/jrun__index2ejspa.java:41:1:41:27:

                    Error: No match was found for method
                    "setLocale(java.lang.String)".
                </pre>

                <p>(For more details see refer to:
                    <br/>
                    <a href="http://www.mail-archive.com/struts-user@jakarta.apache.org/msg01860.html">
                        http://www.mail-archive.com/struts-user@jakarta.apache.org/msg01860.html</a>
                    )
                </p>

                <p>The following instructions describe how to install the
                    Struts Example
                    Application under JRun. A subsequent section describes how
                    the Struts Example
                    Application can be patched to work with Struts</p>

                <p>The following instructions assume the following:</p>

                <ul>
                    <li>JRun has been installed and integrated with the web
                        server of choice.</li>

                    <li>$APP_SERVER_NAME is the name of the application server
                        used to host the
                        application. (When JRun is first installed, it creates
                        an application
                        server called JRun Default Server).</li>

                    <li>$APP_SERVER_DIR is the directory used to hold
                        applications hosted by
                        $APP_SERVER_NAME. For the JRun Default Server, the
                        directory is
                        $JRUN_HOME/servers/default where $JRUN_HOME is the
                        directory where
                        JRun is installed.</li>
                </ul>

                <h4>Installing the struts example application</h4>

                <ul>
                    <li>Login to the JRun Management Console.</li>

                    <li>On the left pane, select $APP_SERVER_NAME. A page
                        showing the
                        current server status will be shown on the right
                        pane.</li>

                    <li>On the right pane, click on the WAR Deployment link. A
                        page
                        containing a list of the currently deployed web
                        applications will be
                        shown.</li>

                    <li>On the right pane, click on Deploy an Application.
                        Complete the Web
                        Application Information form as follows:

                        <ul>
                            <li>Servlet War File or Directory: Enter the full
                                path where
                                struts-example.war is found or click on Browse
                                to select
                                the path.</li>
                            <li>JRun Server Name: $APP_SERVER_NAME</li>
                            <li>Application Name: Struts Example</li>
                            <li>Application Hosts: All Hosts</li>
                            <li>Application URL: /struts-example</li>
                            <li>Application Deploy Directory: will default to
                                $APP_SERVER_NAME/Struts Example (or the name
                                as specified for
                                Application Name).</li>
                        </ul>
                    </li>

                    <li>Once the form is complete, click on the Deploy
                        button.</li>

                    <li>If deployment is successful, restart the application
                        server by
                        clicking on
                        <code>$APP_SERVER_NAME</code>
                        on the left pane. A page showing the
                        current server status will be shown on the right pane.
                        Click the
                        Restart Server button to restart the application
                        server.
                    </li>

                    <li>Test the sample application by using the following URL
                        in the
                        browser:
                        <br/>
                        <code>http://hostname/struts-example/index.jsp</code>
                        <br/>
                        The struts-documentation.war can be installed using
                        the same
                        procedure.
                    </li>
                </ul>

                <h4>Installing unpacked web applications</h4>

                <p>The above steps should be followed for applications
                    deployed as
                    <code>*.war</code>
                    files.
                </p>

                <p>For unpacked web applications, configuration involves the
                    following steps:</p>

                <ul>
                    <li>From the JRun Management Console, select
                        <code>$APP_SERVER_NAME</code>
                        (on the
                        left pane) and click on WAR Deployment (on the right
                        pane).
                    </li>

                    <li>On the right pane, click on Create an Application and
                        complete the
                        Web Application Information form as follows:</li>

                    <li>JRun Server Name: $APP_SERVER_NAME

                        <ul>
                            <li>Application Name: myApplication</li>
                            <li>Application Hosts: All Hosts</li>
                            <li>Application URL: /myApplication</li>
                            <li>Application Deploy Directory: will default to
                                <br/>
                                <code>$APP_SERVER_NAME/myApplication</code>
                            </li>
                        </ul>
                    </li>

                    <li>Click on Create to submit the form.</li>

                    <li>Once the web application is created, install and
                        configure the struts
                        components (struts.jar, struts*.tld, etc) for the web
                        application under
                        <code>$APP_SERVER_NAME/myApplication/WEB-INF</code>
                    </li>

                    <li>Install the remaining components of the application:
                        .class files,
                        JSP pages,.properties files etc as required.</li>

                    <li>To configure the extension mapping of the request URI
                        (ie *.do) to
                        the action servlet, expand
                        <code>$APP_SERVER_NAME</code>
                        on the left pane, expand
                        the Web Applications branch and click on
                        myApplication. The right pane
                        will display the configuration options for
                        myApplication. Click on
                        Servlet URL Mappings. A list of existing mappings will
                        be shown. Click
                        the Edit button and create the following entry:

                        <ul>
                            <li>Virtual Path/Extension: *.do</li>
                            <li>Servlet Invoked: action</li>
                        </ul>
                    </li>

                    <li>Click on the Update button to save the changes.</li>
                    <li>Restart the application server.</li>
                    <li>The application should now be accessible from the
                        browser.</li>
                </ul>

                <p>The JRun application server will need to be restarted each
                    time one of the
                    following changes are made to the web application:</p>

                <ul>
                    <li>
                        <code>.class</code>
                        or
                        <code>.jar</code>
                        files are modified
                    </li>
                    <li>
                        <code>.properties</code>
                        files are modified
                    </li>
                    <li>
                        <code>.xml</code>
                        files are modified
                    </li>
                </ul>

                <h4>Patching the struts example application</h4>

                <p>As mentioned at the beginning of these notes, the Struts
                    Example Application
                    will not run under JRun without modification. The
                    following changes will need
                    to be made:</p>

                <ul>
                    <li>index.jsp, logon.jsp: Change &lt;html:html
                        locale="true"> to
                        <br/>
                        &lt;html:html locale=&lt;%= true %>>
                    </li>
                    <li>logon.jsp: Change &lt;html:html redisplay="true"> to
                        <br/>
                        &lt;html:html redisplay=&lt;%= true %>>
                    </li>
                    <li>registration.jsp, subscription.jsp: Change all
                        instances of filter="true" to
                        <br/>
                        filter=&lt;%= true %>
                    </li>
                </ul>
                <hr/>
                <p>Back to
                    <a href="installation.html#Containers">Installation</a>
                </p>
            </subsection>
        </section>
    </body>
</document>
