In many situations there will be the need to deploy applications onto a new Test or Production Server environment. Some application servers will require additional steps to install the web application for the first time.
Once installed the Publication from the WebMaker Studio should operate replacing the web application elements when required.
The following details examine some of the key considerations when installing onto popular Java Application Servers. In some cases the advice will vary for different versions of the application server.
WebMaker is shipped with a Tomcat installation for the WebMaker Design Studio and Test Server on developer machines.
Publication to test or production servers should not require any specific configuration for standard Tomcat installations.
Note: It is possible that some of the deployment variations below need to be considered even for Tomcat if the installation is not standard.
Deployment Variations for Consideration
WebMaker deploys Web Applications to Java Application Servers. They consist of a set of JARS, which are both 3rd party or open source solutions and Hyfinity owned software, along with a number of project specific specification files.
The default packaging for the WebMaker Web Applications is a standard Web Application .WAR archive file.
An archive file is a single file that contains all of an application's or module's classes, static files, directories, and deployment descriptor files.
The following are key areas that may need to be reviewed with some Application Server set-ups:
The primary reason for these variations, is that the deployment descriptor details were not standardised in the Java specifications. So, product vendors implemented different variations.
Exploded Archive Requirement
An exploded archive directory contains the same files and directories as a WAR archive, just in a non compressed form.
WebMaker applications should be deployed in this exploded format so that they can successfully access files within the web application structure. (Specifically access to the getRealPath() API is required, which should always be the case when an application is deployed in exploded form.)
This is needed so that the Studio Publication process and other dynamic capabilities can work correctly.
Depending on your application server, you may be required to manually unpack a created WAR file in order to perform an exploded deployment.
Class Loading Variations
Application servers implement a hierarchy process for obtaining the relevant class libraries to be executed. Most application servers implement at least a "parent-child" relationship of a) the application server class libraries b) the individual web application class libraries.
Some will implement further levels.
WebMaker provides various open source class libraries that can sometimes cause conflicts if the wrong versions are loaded.
WebMaker requires that the classes are loaded from b) the individual web application, not a) the application server libraries.
Specific Application Server Installation Variations
If a particular application server is not listed, then the considerations in the previous section may still apply.
The following specific instructions assume that the Application Server is already installed and operating correctly, and the user understands basic administration.
Oracle WebLogic Deployment
Oracle WebLogic requires that the WAR archive is exploded onto the file system to support the hotupdate / hotdeployment features of WebMaker Publication process.
For further details please refer to Oracle documentation: Preparing Applications and Modules for Deployment
Oracle WebLogic uses a Web Application deployment descriptor file to define that any classes should be obtained from the web application (child) before looking to the application server (parent) libraries. It is necessary to change the default setting for the web application. So, the prefer-web-inf-classes element within the WEB-INF/weblogic.xml configuration file needs to be changed to "true".
For further details please refer to Oracle documentation: Understanding WebLogic Server Application Classloading
IBM Websphere Deployment
IBM Websphere requires that the WAR archive is exploded onto the file system to support the hotupdate / hotdeployment features of WebMaker Publication process.
For further details please refer to IBM documentation: IBM WebSphere - Deploying the Web application in exploded form
For IBM WebSphere you can use the Administration console to define that any classes should be obtained from the web application (child) before looking to the application server (parent) libraries. This is done by changing the default class loading setting for the web application to "Parent Last".
Logon to the Websphere Administration Console, and choose the Enterprise Applications option, click on the .war file you just installed and choose the Configuration tab.
Go to "Class loading and update detection" and select the Classes loaded with application class loader first option (or Classes loaded with local class loader first (parent last) if you are using WebSphere 7.0) to change ClassLoader Mode to PARENT_LAST.
For further details please refer to IBM documentation: WebSphere Application Server - Class Loading
Once installed the Publication from the WebMaker Studio should operate replacing the web application elements when required.
The following details examine some of the key considerations when installing onto popular Java Application Servers. In some cases the advice will vary for different versions of the application server.
WebMaker is shipped with a Tomcat installation for the WebMaker Design Studio and Test Server on developer machines.
Publication to test or production servers should not require any specific configuration for standard Tomcat installations.
Note: It is possible that some of the deployment variations below need to be considered even for Tomcat if the installation is not standard.
Deployment Variations for Consideration
WebMaker deploys Web Applications to Java Application Servers. They consist of a set of JARS, which are both 3rd party or open source solutions and Hyfinity owned software, along with a number of project specific specification files.
The default packaging for the WebMaker Web Applications is a standard Web Application .WAR archive file.
An archive file is a single file that contains all of an application's or module's classes, static files, directories, and deployment descriptor files.
The following are key areas that may need to be reviewed with some Application Server set-ups:
- Exploded Archive requirement [/*]
- Class Loading Variations [/*]
The primary reason for these variations, is that the deployment descriptor details were not standardised in the Java specifications. So, product vendors implemented different variations.
Exploded Archive Requirement
An exploded archive directory contains the same files and directories as a WAR archive, just in a non compressed form.
WebMaker applications should be deployed in this exploded format so that they can successfully access files within the web application structure. (Specifically access to the getRealPath() API is required, which should always be the case when an application is deployed in exploded form.)
This is needed so that the Studio Publication process and other dynamic capabilities can work correctly.
Depending on your application server, you may be required to manually unpack a created WAR file in order to perform an exploded deployment.
Class Loading Variations
Application servers implement a hierarchy process for obtaining the relevant class libraries to be executed. Most application servers implement at least a "parent-child" relationship of a) the application server class libraries b) the individual web application class libraries.
Some will implement further levels.
WebMaker provides various open source class libraries that can sometimes cause conflicts if the wrong versions are loaded.
WebMaker requires that the classes are loaded from b) the individual web application, not a) the application server libraries.
Specific Application Server Installation Variations
If a particular application server is not listed, then the considerations in the previous section may still apply.
The following specific instructions assume that the Application Server is already installed and operating correctly, and the user understands basic administration.
Oracle WebLogic Deployment
Oracle WebLogic requires that the WAR archive is exploded onto the file system to support the hotupdate / hotdeployment features of WebMaker Publication process.
For further details please refer to Oracle documentation: Preparing Applications and Modules for Deployment
Oracle WebLogic uses a Web Application deployment descriptor file to define that any classes should be obtained from the web application (child) before looking to the application server (parent) libraries. It is necessary to change the default setting for the web application. So, the prefer-web-inf-classes element within the WEB-INF/weblogic.xml configuration file needs to be changed to "true".
<weblogic-web-app>
<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>
</weblogic-web-app>
For further details please refer to Oracle documentation: Understanding WebLogic Server Application Classloading
IBM Websphere Deployment
IBM Websphere requires that the WAR archive is exploded onto the file system to support the hotupdate / hotdeployment features of WebMaker Publication process.
For further details please refer to IBM documentation: IBM WebSphere - Deploying the Web application in exploded form
For IBM WebSphere you can use the Administration console to define that any classes should be obtained from the web application (child) before looking to the application server (parent) libraries. This is done by changing the default class loading setting for the web application to "Parent Last".
Logon to the Websphere Administration Console, and choose the Enterprise Applications option, click on the .war file you just installed and choose the Configuration tab.
Go to "Class loading and update detection" and select the Classes loaded with application class loader first option (or Classes loaded with local class loader first (parent last) if you are using WebSphere 7.0) to change ClassLoader Mode to PARENT_LAST.
For further details please refer to IBM documentation: WebSphere Application Server - Class Loading