Comments? Feedback?

This wiki does not yet support public comments (a limitation of Google Sites), so we encourage you to post your comments either:

On Twitter by responding to @orbeon.

On our community mailing list: subscribe sending an email to ops-users-subscribe@ow2.org (content of subject/body doesn't matter), you'll get a response with the email to use to send your message to the community mailing list.

Recent site activity

Installing Orbeon Forms


Software requirements

Orbeon Forms runs on any platform that supports:
  • Java 5 or greater
  • a servlet 1.4 container or greater (such as Apache Tomcat 5.5 or greater)
NOTE: Orbeon Forms builds require Java 5 starting June 2009. The first stable release with this requirement is Orbeon Forms 3.8.x. Earlier builds and versions required Java 1.4 only.

Hardware requirements

Orbeon Forms is best installed on hardware with:
  • a reasonably fast CPU, e.g. as of early 2011:
    • Intel Core i7 or better (desktop-grade)
    • Intel Xeon, e.g. series 5500, 5600, etc. (server-grade)
    • NOTE: The CPU doesn't have to be Intel, these are just examples.
  • at least 1 GB of available RAM

Java virtual machine configuration

Configure the Java VM with:
  • -Xmx option for dedicated Java heap memory:
    • on a development machine: at least 300 MB of Java heap: -Xmx300m
    • on a production machine: at least 768 MB of Java heap: -Xmx768m
  •  -XX:MaxPermSize for "permgen" space:
    • use at least: -XX:MaxPermSize=128m

License installation (Orbeon Forms PE only)

  • If you are running Orbeon Forms CE, you don't need to install a license file.
  • If you are running Orbeon Forms PE:
    • complete the steps for your application server below
    • you can obtain a full licence from Orbeon, or get a trial license from:
      http://www.orbeon.com/orbeon/fr/orbeon/register/new
    • before starting your servlet container, copy your license file under the Orbeon Forms WAR file as:
      WEB-INF/resources/config/license.xml

Installing on your application server

Apache Tomcat

  1. Assuming that TOMCAT_HOME represents the location of your Tomcat installation: create a new TOMCAT_HOME/webapps/orbeon directory.
  2. Unzip orbeon.war in the orbeon directory you just created.
  3. You can now start Tomcat, and access http://localhost:8080/orbeon/ to test your installation (replacing localhost and 8080 with the host name and port number of your Tomcat installation if different from the default).

  4. Optionally, to run the authentication example:

    1. Open TOMCAT_HOME/webapps/orbeon/WEB-INF/web.xml and uncomment the security-constraint, login-config and security-role declarations at the end of the file.
    2. Open TOMCAT_HOME/conf/server.xml and uncomment the following declaration: <Realm className="org.apache.catalina.realm.MemoryRealm" />
    3. Edit TOMCAT_HOME/conf/tomcat-users.xml and replace the content of the file with:

      <tomcat-users>
          <role rolename="orbeon-user"/>
          <role rolename="orbeon-admin"/>
          <user username="orbeonadmin" password="xforms" roles="orbeon-user,orbeon-admin"/>
      </tomcat-users>

  5. If you are using basic authentication on Tomcat 5 version 5.5.29 or newer, or on Tomcat 6 version 6.0.21 or newer, or on Tomcat 7, then you need to add the following valve inside the <Context> corresponding to the Orbeon Forms web app in Tomcat's configuration:

    <Valve className="org.apache.catalina.authenticator.BasicAuthenticator"
           changeSessionIdOnAuthentication="false"/>

On Unix systems, we recommend you don't use GIJ / GCG, as there are reports as of June 2008 of issues with that runtime environment and Orbeon Forms. Instead, we recommend you use the Sun runtime environment.

Oracle WebLogic 10/11g

A version of the ANTLR library that ships with WebLogic 10/11g conflicts with the version required by Orbeon Forms. To run Orbeon Forms on WebLogic 10/11g, you need to instruct WebLogic to let Orbeon Forms use the version of ANTLR that ships with Orbeon Forms. You can do this in the WebLogic EAR descriptor, which means you need to encapsulate Orbeon Forms in an EAR before you deploy it:
  1. Create the following directory structure in a temporary directory:

    orbeon-ear
        META-INF
            application.xml
            weblogic-application.xml
        orbeon

    Populate application.xml with:

    <?xml version="1.0"?>
    <j2ee:application xmlns:j2ee="http://java.sun.com/xml/ns/j2ee">
        <j2ee:display-name>Orbeon Forms</j2ee:display-name>
        <j2ee:module>
            <j2ee:web>
                <j2ee:web-uri>orbeon</j2ee:web-uri>
                <j2ee:context-root>/orbeon</j2ee:context-root>
            </j2ee:web>
        </j2ee:module>
    </j2ee:application>

    Populate weblogic-application.xml with:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE weblogic-application PUBLIC
        "-//BEA Systems, Inc.//DTD WebLogic Application 8.1.0//EN"
        "http://www.bea.com/servers/wls810/dtd/weblogic-application_2_0.dtd">
    <weblogic-application>
        <prefer-application-packages>
            <package-name>antlr.*</package-name>
            <package-name>org.apache.commons.lang.*</package-name>
            <package-name>org.apache.commons.fileupload.*</package-name>
            <package-name>org.apache.lucene.*</package-name>
        </prefer-application-packages>
    </weblogic-application>

  2. Uncompress the orbeon.war into the orbeon-ear/orbeon directory you created in step 1. After this, you should have a directory orbeon-ear/orbeon/WEB-INF.
  3. Deploy the orbeon-ear directory. If you are running WebLogic in development mode, you can move it to user_projects/domains/base_domain/autodeploy.
  4. Optionally, you might want to change where the orbeon.log is stored. You define the location of the file in WEB-INF/resources/config/log4j.xml, in the SingleFileAppender. By default the location of the file is defined as ../logs/orbeon.log. If you start WebLogic with user_projects/domains/base_domain/startWebLogic.sh, the log will be located in user_projects/domains/logs/orbeon.log.
This has been verified with several version of WebLogic 10 and 11g, including version 10.3.1 (released in July 2009) and 10.3.3 (released in March 2010).

Footnotes:
  1. As of 2010-01-12, running a pre-release of Orbeon Forms 3.9 against WebLogic 10.3.3, <package-name>org.apache.commons.lang.*</package-name> is not needed. This maybe still be needed when using earlier versions of WebLogic, for now so we keep this confirmation line as part of the recommended weblogic-application.xml. If we confirm this isn't needed with the following release of Orbeon Forms (3.10?), we may deprecate that configuration line. Also see bug [ #315694 ] WebLogic: java.lang.NoSuchMethodError with Apache Common Lang.
  2. As of 2010-01-12, a conflict with another version of Lucene has be reported on WebLogic 10.3.0, which is solved by adding <package-name>org.apache.lucene.*</package-name>. In the future, we may remove that configuration from the recommended weblogic-application.xml if it is confirmed that this issue isn't happening anymore with the following release of Orbeon Forms (3.10?). Also see bug [ #315754 ] WebLogic: java.lang.NoSuchMethodError: getDirectory.

BEA WebLogic 9.1

  1. Select a directory where you want to store your web application. Let's assume the path you chose is C:/WebApps/orbeon.
  2. Unzip orbeon.war into C:/WebApps/orbeon. There should now be a directory called WEB-INF under C:/WebApps/orbeon.
  3. Start WebLogic's administration console.
  4. Use the console to install a new Web application. When prompted to select a WAR file, point to the directory C:/WebApps/orbeon. When prompted for a context path, choose a value such as orbeon. Complete the installation and start the web application.
  5. You should now be able to access the Orbeon Forms example applications by pointing your browser to the address of your WebLogic server followed by the context path you chose, for example: http://localhost:7001/orbeon/.

IBM WebSphere 5 and 6

NOTE: Starting with June 2009 nightly builds and Orbeon Forms 3.8, Orbeon Forms requires Java 5. This means that versions of WebSphere prior to 6.1 will not work with those versions of Orbeon FOrms.
  1. Launch WebSphere server.

    • Let's assume WSAS_HOME represents the location of your WebSphere installation.
    • On Windows:
      • To run WebSphere from the command line, execute WSAS_HOME/bin/startServer server1 (on WebSphere 5).
      • To run WebSphere as a service: go to Control Panel, Administrative Tools, Services, Look for IBM WebSphere Application Server and make sure it is started.
    • On Linux/UNIX:
      • Run WSAS_HOME/profiles/default/bin/startServer.sh server1.
    • Note:
      • The default heap size is likely to be too low. You can increase the heap size from the WebSphere Administrative Console, by going to Server / Application Servers / server1 / Process Definition / Java Virtual Machine. There we recommend you set the Initial Heap Size and Maximum Heap Size to the same value.

  2. Log in to the administrative console.

    1. On WebSphere 5: got to http://localhost:9090/admin/.
    2. On WebSphere 6: got to http://localhost:9060/ibm/console/.
    3. The default administrator login is admin.

  3. Install and deploy Orbeon Forms (orbeon.war).

    • Click on Applications / Install New Application.
    • Select the orbeon.war to upload, choose a context path like /orbeon (from now on we will assume this was your choice).
    • Hit "next" until you get to the end of the wizard, then hit "finish". You can leave the defaults everywhere while going through the wizard.
    • Save the configuration.
    • Click on Applications / Enterprise Applications.
    • Select orbeon_war and click on the "start" button.
    • Note:
      • One important log file (if something goes wrong when the application starts) is: WSAS_HOME/logs/server1/SystemOut.log on WebSphere 5.
      • The WAR file is uncompressed by WebSphere in WSAS_HOME/installedApps/NODE_NAME/orbeon_war.ear/orbeon.war on WebSphere 5, where NODE_NAME if usualy your machine name.

  4. Run and modify the example applications.

    • Go to http://localhost:9080/orbeon/.
    • You can view the log from Orbeon Forms in WSAS_HOME/profiles/default/logs/server1/SystemOut.log.
    • You can modify the example applications resources as the application sever is running and see the results of your modifications on the fly. The resources are stored under WSAS_HOME/profiles/default/installedApps/yourmachineNode01Cell/orbeon_war.ear/orbeon.war/WEB-INF/resources. For instance, try to modify apps/xforms-hello/view.xhtml: replace "Please enter your first name:" by your own message, and reload the page in the browser to see the result.

JBoss

  1. Assuming that JBOSS_HOME represents the location of your JBoss installation: create a new JBOSS_HOME/server/default/deploy/orbeon.war directory.
  2. Unzip the orbeon.war file in the orbeon.war directory you just created.
  3. Depending on the version of JBoss you are using:

    • With JBoss 7: At this point JBoss 7 is not supported.

    • With JBoss 6:

      1. Create a file orbeon.war/WEB-INF/jboss-scanning.xml with the following content. This is get around a bug happening in the JBoss scanner when it goes through Scala classes.

        <scanning xmlns="urn:jboss:scanning:1.0">
            <path name="WEB-INF/lib/scala-library-2.8.1.jar">
                <exclude name="scala" recurse="true"/>
            </path>
        </scanning>

      2. Edit orbeon.war/WEB-INF/jboss-web.xml and comment the 4 lines that start with <resource-ref> and end with </resource-ref>. This resource-ref is only useful if you want to setup Orbeon Forms to store data in a relational database. If this is the first time you are installing Orbeon Forms on JBoss, even if you ultimately want Orbeon Forms to store data in a relation database, we recommend you first get it up and running without this configuration. Once everything works, you can come back, uncomment this, and follow the steps in point #7 below to get Orbeon Forms to access your relational database.

    • With JBoss 5.0: no special configuration is needed.

    • With JBoss 4.0 / JBoss 4.2:

      1. Set the following parameter in web.xml:

        <context-param>
            <param-name>oxf.initialize-logging</param-name>
            <param-value>false</param-value>
        </context-param>

      2. Rename the default Orbeon Forms log4j JAR file under WEB-INF/lib from log4j-*.jar to log4j-*.jar.bak. Additionally, you can remove this JAR file altogether.

    • With JBoss 4.0:

      1. Create a file jboss-web.xml in JBOSS_HOME/server/default/deploy/orbeon.war/WEB-INF with the following content:

        <jboss-web>
            <class-loading java2ClassLoadingCompliance="false">
                <loader-repository>
                    orbeon.war:loader=orbeon.war
                    <loader-repository-config>java2ParentDelegation=false</loader-repository-config>
                </loader-repository>
            </class-loading>
        </jboss-web>

    • With JBoss 3.2:

      1. In JBOSS_HOME/server/default/deploy/jbossweb-tomcat55.sar/META-INF/jboss-service.xml and change the value in <attribute name="UseJBossWebLoader"> from false to true.

  4. Start JBoss by running JBOSS_HOME/bin/run.bat (or run.sh on UNIX).
  5. Run and modify the example applications.

    1. Go to http://localhost:8080/orbeon/
    2. You can modify the example applications resources as the application sever is running and see the results of your modifications on the fly. The resources are stored under JBOSS_HOME/server/default/deploy/orbeon.war/WEB-INF/resources.

  6. Optionally, to run the authentication sample:

    1. Open JBOSS_HOME/server/default/deploy/orbeon.war/WEB-INF/web.xml and uncomment the security-constraint, login-config and security-role declarations at the end of the file.
    2. Open JBOSS_HOME/server/default/deploy/orbeon.war/WEB-INF/jboss-web.xml and uncomment the security-domain element near the end of bottom of the file.
    3. Open JBOSS_HOME/server/default/conf/login-config.xml and add the following aplication policy to the list of policies:

      <application-policy name="orbeon-demo">
          <authentication>
              <login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule" flag="required">
                  <module-option name="usersProperties">jboss-orbeon-example-users.properties</module-option>
                  <module-option name="rolesProperties">jboss-orbeon-example-roles.properties</module-option>
              </login-module>
          </authentication>
      </application-policy>

  7. Optionally, you might want to setup a JDBC data source if your application is using the SQL Processor. What follows assumes you are configuring the SQL Processor with <sql:datasource>my-datasource</sql:datasource>.

    1. Look at the files JBOSS_HOME/docs/examples/jca/*-ds.xml. You should find one that correspond to the database you are using. Copy it to JBOSS_HOME/server/default/deploy.
    2. Edit the file you copied and change the parameters to match your database configuration. Also assign a JNDI name to this data source with: <jndi-name>my-database</jndi-name> (instead of my-database you might want to use a name which is descriptive of your database).
    3. Edit WEB-INF/web.xml and uncomment the <resource-ref>. Also change there the content of <res-ref-name> to match the name you are using in the SQL Processor prefixed with jdbc/: <res-ref-name>jdbc/my-datasource</res-ref-name>.
    4. Edit WEB-INF/jboss-web.xml. In that file you should have <res-ref-name>jdbc/my-datasource</res-ref-name> (the same name you use to configure the SQL Processor and that you have in the web.xml) and <jndi-name>java:/my-database</jndi-name> (the same name you declared in the ...-ds.xml file).
    5. Copy the JAR files with the JDBC driver for your database in JBOSS_HOME/server/default/lib.

Oracle Application Server and OC4J

To run Orbeon Forms on Oracle Application Server or OC4J, edit $ORACLE_HOME/j2ee/home/application-deployments/orbeon/orbeon/orion-web.xml and uncomment the following line:

<web-app-class-loader search-local-classes-first="true" include-war-manifest-class-path="true"/>

Installation and runtime issues

Session not found when running both Tomcat and WebLogic

This issue can also manifest itself with a dialog titled Session has expired. Unable to process incoming request. showing up as you try to interact with a form. This comes from the fact that Tomcat and WebLogic handle the JSESSIONID cookie used to track sessions differently:
  • Tomcat creates one JSESSIONID per web application, with the cookie path set to the context of the application. When an application invalidates the session, Tomcat sends a new JSESSIONID to the browser.
  • WebLogic stores one cookie JSESSIONID with cookie path / for all the applications. This cookie doesn't change when a session is invalidated, and hence there is no one-to-one mapping between a JSESSIONID cookie and a session in WebLogic.
The error can happen when:
  1. You first access your application deployed on /myapp with Tomcat. Tomcat sets a JSESSIONID cookie for /myapp.
  2. You then access your application on the same server deployed on /myapp with WebLogic. Tomcat sets a JSESSIONID cookie for /.
  3. In subsequent requests, the browser sends the Tomcat JSESSIONID as it is more specific (for /myapp instead of just /), but WebLogic doesn't recognize it, hence the error you're getting.
The solution is simply to clear in your browser all the JSESSIONID cookies for the host you are trying to access.

Sign in  |  Recent Site Activity  |  Revision History  |  Terms  |  Report Abuse  |  Print page  |  Powered by Google Sites