You can run Magnolia on the Oracle WebLogic Application Server. Include the magnolia-module-weblogic module in your installation or use the WAR file built specifically for WebLogic.
Deploying as an exploded archive
If you are deploying Magnolia as an exploded archive, ensure that the magnolia-module-weblogic
is in your application's WEB-INF/lib
folder. Unlike a Tomcat deployment, there are no extra steps to do.
Deploying as a WAR file
- Download a WebLogic WAR file corresponding to your WebLogic version.
- Rename the WAR file to
magnoliaAuthor
,magnoliaPublic
or a name that matches the name of your configuration.
Conflicting libraries
These tasks are extra configuration steps necessary to deploy your WAR file on WebLogic. You need to perform all of the other standard configuration steps.
WebLogic 10 conflict with commons-lang library
When deploying on WebLogic, there is a version conflict if using commons-lang
. Note that WebLogic 10 is distributed with commons-lang-2.3.jar
while WebLogic 9 is distributed with commons-lang-2.1.jar
. However, JackRabbit and Magnolia 4 (and later releases) need at least commons-lang-2.4.jar
. To resolve this issue, edit setDomainEnv.sh
in WebLogic and add commons-lang-2.4.jar
to PRE_CLASSPATH
. As doing this does not remove any methods but only adds new API and fixes known bugs, there are no adverse effects from this change to the WebLogic installation.
WebLogic 12c conflict with Bouncy Castle library
Magnolia uses the Bouncy Castle cryptography package to decode the license key and to secure the activation process. WebLogic 12c is distributed with bcprov-jdk16-1.45.jar
but Magnolia is distributed with bcprov-jdk15on-1.54.jar
. This leads to a library version conflict.
Symptom: after inserting valid license key into the Magnolia license form, the error message "License is empty" is displayed.
To resolve:
- Edit
setDomainEnv.sh
in WebLogic and addbcprov-jdk15on-1.54.jar
toPRE_CLASSPATH
. - Remove
bcprov-jdk16-1.45.jar
from WebLogic 12c common libraries.
Conflict with SL4J/Log4j libraries
Magnolia uses Apache Log4j and SLF4J as logging libraries for monitoring. WebLogic 12c has its own Log4j configuration but Magnolia comes with its own log4j.xml configuration. This leads to a library conflict. To ensure the proper loading of Magnolia's own configuration, the weblogic.xml
file in your application's WEB-INF
folder has to be modified with the prefer-application-packages
element:
<container-descriptor> <prefer-application-packages> <package-name>org.slf4j.*</package-name> </prefer-application-packages> </container-descriptor>
JAAS Configuration
Tell WebLogic Server where your jaas.config
file is located.
Edit file setDomainEnv.sh
and add the following line.
JAVA_OPTIONS=%JAVA_OPTIONS% -Djava.security.auth.login.config=<pathto>\jaas.config
Character encoding issues
See using multibyte language in Oracle's documentation for insight on character encoding issues you may face when using WebLogic.
Workflow module issues
Magnolia's WebLogic WAR file comes without the Workflow module. If you need the workflow module working with WebLogic, besides installing it, you have the following options:
Option 1: Using the Magnolia 5.3.9 WebLogic WAR file
Add the following libraries to your application's WEB-INF/lib
folder:
Option 2: Using Maven
Add the following dependencies to your project:
<dependency> <groupId>org.jbpm</groupId> <artifactId>jbpm-human-task-core</artifactId> <version>6.2.0.Final</version> </dependency> <dependency> <groupId>org.jbpm</groupId> <artifactId>jbpm-audit</artifactId> <version>6.2.0.Final</version> </dependency> <dependency> <groupId>org.codehaus.janino</groupId> <artifactId>janino</artifactId> <version>2.5.16</version> </dependency>