Magnolia 4.5 reached end of life on June 30, 2016. This branch is no longer supported, see End-of-life policy.
...
There is an unfortunate issue, specifically when deploying under JBoss 5: you will need to remove the Xerces .jar from the Magnolia CMS webapps: if deploying using WAR files, you can remove it from the archive, or with the following Unix command zip -d path-to-magnolia.war WEB-INF/lib/xercesImpl-2.8.1.jar
. If deploying using an exploded directory, simply remove the WEB-INF/lib/xercesImpl-2.8.1.jar
file. See
Jira | ||||
---|---|---|---|---|
|
org.jboss.xb.binding.JBossXBException: Failed to create a new SAX parser
or java.lang.ClassCastException: org.apache.xerces.parsers.XIncludeAwareParserConfiguration
, this is the issue you're hitting.JBoss 7 Application Server adds its own log4j logging configuration. If you want to your own log4j logging configuration in your deployment, you need to exclude the JBoss configuration first.
Create a new file jboss-deployment-structure.xml
under the WEB-INF
folder with this content:
Code Block | ||
---|---|---|
| ||
<jboss-deployment-structure>
<deployment>
<!-- Exclusions allow you to prevent the server from automatically adding some dependencies -->
<exclusions>
<module name="org.apache.log4j" />
<module name="org.slf4j" />
</exclusions>
</deployment>
</jboss-deployment-structure> |
See How do I use log4j.properties or log4j.xml instead of using the logging subsystem configuration?
WebLogic 9 also ships with an old version of JDom which later leads to issues in parsing of XML documents. Issues will be noted as exceptions such as:
Code Block | ||
---|---|---|
| ||
java.lang.NoSuchMethodError: org.jdom.Element.getParent()Lorg/jdom/Element; at org.jaxen.jdom.DocumentNavigator.getParentAxisIterator(DocumentNavigator.java:252) at org.jaxen.DefaultNavigator.getParentNode(DefaultNavigator.java:275) at org.jaxen. |
...
expr.NodeComparator.getDepth(NodeComparator.java:164)
at org.jaxen.expr.NodeComparator.compare(NodeComparator.java:107)
at java.util.Arrays.mergeSort(Arrays.java:1284) |
To resolve, provide newer JDOM/Jaxen libraries by adding jdom-1.0.jar
, jaxen-1.0-FCS-full.jar
, xom-1.1.jar
and saxpath-1.0-FCS.jar
to PRE_CLASSPATH
variable in the setDomainEnv.sh
script.
When deploying on Weblogic 10, there is a version conflict while using commons-lang
. While Weblogic-10 is distributed with commons-lang-2.3.jar
, JackRabbit and Magnolia CMS need at least commons-lang-2.4.jar
. To resolve this issue, modify setDomainEnv.sh
of Weblogic and add commons-lang-2.4.jar
to the PRE_CLASSPATH
. Since version 2.4 commons-lang
doesn't remove any methods, but only adds new API and fixes known bugs, there is no adverse effect from this change to the Weblogic installation.
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-jdk16-1.46.jar
. This leads to a library version conflict.
Symptom: there is no error shown on the Magnolia license form but the license is not registered. In the log you can find this stack trace:
Code Block | ||
---|---|---|
| ||
SEVERE: Can't read license for module enterprise org.bouncycastle.openpgp.PGPException: can't set up signature object. at org.bouncycastle.openpgp.PGPOnePassSignature.initVerify(Unknown Source) at org.bouncycastle.openpgp.PGPOnePassSignature.initVerify(Unknown Source) at info.magnolia.license.LicenseProcessor.extractLicense(LicenseProcessor.java:176) at info.magnolia.license.LicenseProcessor.extractLicense(LicenseProcessor.java:202) at info.magnolia.license.LicenseManager.onRegister(LicenseManager.java:229) at info.magnolia.cms.beans.config.ObservedManager.reload(ObservedManager.java:135) at info.magnolia.cms.beans.config.ObservedManager.reload(ObservedManager.java:120) at info.magnolia.cms.beans.config.ObservedManager$1.onEvent(ObservedManager.java:86) at info.magnolia.cms.util.ObservationUtil$ObservationBasedDelayedExecutor$1.run(ObservationUtil.java:256) at info.magnolia.cms.util.DelayedExecutor$RunnableWrapper.run(DelayedExecutor.java:105) at EDU.oswego.cs.dl.util.concurrent.ClockDaemon$RunLoop.run(Unknown Source) at java.lang.Thread.run(Thread.java:695) Caused by: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: SHA1WithRSAEncryption, provider: BC, class: org.bouncycastle.jce.provider.JDKDigestSignature$SHA1WithRSAEncryption) at java.security.Provider$Service.newInstance(Provider.java:1245) at sun.security.jca.GetInstance.getInstance(GetInstance.java:220) at sun.security.jca.GetInstance.getInstance(GetInstance.java:202) at java.security.Signature.getInstance(Signature.java:367) ... 12 more |
To resolve, do one of the following:
setDomainEnv.sh
in WebLogic and add bcprov-jdk16-1.46.jar
to PRE_CLASSPATH
orbcprov-jdk16-1.45.jar
from WebLogic 12c common libraries.Magnolia cannot render images stored in dam
workspace. Google Guava library is used for rendering of images.
Symptom:
Code Block | ||
---|---|---|
| ||
java.lang.RuntimeException: java.lang.NoClassDefFoundError: Could not initialize class com.google.common.cache.LocalCache |
Workaround:
Modify the weblogic.xml
file in your application's WEB-INF
folder with the prefer-application-packages
element:
Code Block | ||||
---|---|---|---|---|
| ||||
<container-descriptor>
<prefer-application-packages>
<package-name>com.google.common.*</package-name>
</prefer-application-packages>
</container-descriptor> |
If you use Mac OS X 10.5 or 10.6, you should update to at least 10.5.8 or 10.6.2. Earlier versions cause issues where, when two or more instances are started in the same container, some or all connections are dropped.
The symptoms are that Tomcat is unreachable ("kCFErrorDomainCFNetwork:302") but no log message clearly identifies the issue. Sometimes pages can be loaded but resources cannot, leading to missing images or stylesheets. Another symptom is that you have to kill the Tomcat process to stop it (-HUP works) because the shutdown script cannot reach the running process either. See MAGNOLIA-1959 for more details and comment on your own experience.
...
ulimit -n
limits.conf
file: sudo gedit /etc/security/limits.conf
* soft nofile 10000
* hard nofile 50000
root
.sudo gedit /etc/pam.d/common-session
session required pam_limits.so
ulimit -n
...
<CATALINA_HOME>/conf/server.xml
in a text editor. This file is under your Magnolia CMS installation directory.Find the following section and set the value of port
to to something other than 8080, for example 8090:
Code Block | ||||
---|---|---|---|---|
| ||||
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 --> <Connector port="8090" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" /> |
...
http://localhost:8090/magnoliaAuthor/.magnolia
./server/defaultBaseUrl
property to http://localhost:8090/magnolia/
http://localhost:8090/magnoliaPublic/.magnolia
./server/defaultBaseUrl
property to http://localhost:8090/magnolia/Now the Welcome page at http://localhost:8090
has the correct URLs too.
The port also needs to be changed in publishing configuration, otherwise activating changes from the author to public instance fails.
...
Info |
---|
If you want to run two different Tomcats simultaneously you need to change other ports too. This is useful if you want to run different versions of Magnolia CMS at the same time. In |
...
CATALINA_HOME environment variable identifies the Tomcat home directory, for example C:\Program Files\magnolia\apache-tomcat
. Usually Magnolia CMS finds this directory automatically. When you type magnolia_control.bat start
in the bin
directory to start the system, a second script named startup.bat
tries to find Tomcat home. It assumes that Tomcat home is one level above the bin
directory where you issued the command, and sets the value of CATALINA_HOME to that directory.
...
If the Java Virtual Machine (JVM) does not have enough memory you may see a java.lang.OutOfMemoryError
in the startup log and Magnolia CMS fails to start.
Code Block | ||||
---|---|---|---|---|
| ||||
Exception in thread "Timer-1" java.lang.OutOfMemoryError: Java heap space at org.apache.jackrabbit.core.query.lucene.IndexingQueue.getFinishedDocuments |
...
./magnolia_control.sh stop
/apache-tomcat/bin/setenv.sh
(/apache-tomcat/bin/setenv.bat
on Windows) in a text editor.Xmx
parameter to set a new maximum heap size. Default size for Magnolia CMS is 512M, try a higher amount such as 1024M../magnolia_control.sh start && tail -f ../logs/catalina.out
...