Adobe ColdFusion 8

ColdFusion and J2EE application servers

One of the main advantages of ColdFusion is that you can install it as an integrated server (the server configuration) or deploy it as a Java application on a standards-based J2EE application server (multiserver configuration and J2EE configuration). In addition to greater flexibility, this allows your ColdFusion applications to leverage features of the J2EE architecture, such as support for multiple application instances and multiple-instance clustering.

You can deploy ColdFusion in the J2EE configuration by using a J2EE application server, such as JRun 4 or IBM WebSphere. When you use the J2EE configuration, you can use an existing J2EE application server; the installation wizard creates a web application archive (WAR) or enterprise application archive (EAR) file, which you then deploy by using the tools provided by your application server.

Choosing EAR or WAR deployment

In the J2EE environment, you deploy applications in one of the following formats:

Web application archive file Contains the ColdFusion application. A web application archive (also called a WAR) uses a directory structure that contains a WEB-INF/web.xml deployment descriptor, which defines the servlets and context parameters it uses. J2EE application servers can deploy web applications in this directory structures as-is or in compressed WAR files that contain these directory structures. However, ColdFusion must run from an expanded directory structure:

cfusion (cfusion.war)
  WEB-INF
    web.xml
  CFIDE
  cfdocs
CFIDE (rds.war)
  WEB-INF
    web.xml

The cfusion.war file contains the ColdFusion web application. The rds.war file is a web application that redirects RDS requests from /CFIDE to /context-root/CFIDE. It forwards requests to the ColdFusion Administrator when ColdFusion uses a context root other than a forward slash (/).

Enterprise application archive file Contains the ColdFusion and RDS redirector web applications. An enterprise application archive (also called an EAR) uses a directory structure that contains a META-INF/application.xml deployment descriptor, which defines the web applications that it contains. J2EE application servers can deploy enterprise applications in these directory structures as-is or in compressed EAR files that contain these directory structures. However, ColdFusion must run from an expanded directory structure:

cfusion-ear
  META-INF
    application.xml
  cfusion-war
    WEB-INF
      web.xml
    CFIDE
    cfdocs
  rds.war
    WEB-INF
      web.xml

If your J2EE application server supports enterprise applications, you should install and deploy the EAR file. For more information, see Installing an EAR file or WAR files.

Context root

Because the J2EE environment supports multiple, isolated web applications running in a server instance, J2EE web applications running in a server are each rooted at a unique base URL, called a context root (or context path). The J2EE application server uses this initial portion of the URL (that is, the portion immediately following http://hostname) to determine which web application services an incoming request.

For example, if you are running ColdFusion with a context root of cf8, you display the ColdFusion Administrator using the URL http://localhost/cf8/CFIDE/administrator/index.cfm.

Most J2EE application servers allow one application in each server instance to use a forward slash (/) for the context root. Setting the context root to / for the ColdFusion application is especially useful when serving CFM pages from the web server, because it supports the functionality most similar to earlier ColdFusion versions. In addition, the RDS web application is not required if you use a context root of /.

When you deploy the ColdFusion EAR file, it uses the context root that you specified when you ran the installation wizard, which copied your specification to the context-root element of the META-INF/application.xml file. When you deploy ColdFusion as a WAR file, you use application-server-specific functionality to define the context root.

Note: Each web application running in a server instance must have a unique context root. The JRun default web application uses / for a context root, so if you want to use / for the ColdFusion context root when you deploy on JRun, you must either delete the default-war application or change the default-war context root by editing the default-ear/META-INF/application.xml file.

Multiple instances

When you use the J2EE configuration, you can define multiple server instances on a single computer, each running ColdFusion. Running multiple instances of ColdFusion has the following advantages:

Application isolation
You deploy an independent application to each server instance. Each server instance has separate settings, and because each server instance runs in its own instance of the JVM, problems encountered by one application have no effect on other applications.
Load balancing and failover
You deploy the same application to each server instance and add the instances to a cluster. The web server connector optimizes performance and stability by automatically balancing load and by switching requests to another server instance when a server instance stops running.

For more information on configuring ColdFusion on multiple server instances, including detailed information for configuring multiple server instances when running on JRun 4, see Configuring and Administering ColdFusion. The multiserver configuration provides the instance manager to make configuring ColdFusion on multiple servers easier; however, you can also configure ColdFusion on multiple servers manually by deploying EAR files and WAR files on multiple server instances.