Use Indivo with Java 6

From OpenIndivo Documentation Wiki

Jump to: navigation, search

Upgrade JAXB Version

In order to use Java 6 (1.6.x) with Indivo the JAXB version that is now included in Java 6 - JAXB 2.0 - must be upgraded as it is not compatible with Indivo. This applies to the PHP JavaBridge and the Indivo Server. To fix this problem: one should follow the Endorsed Standards Override Mechanism.

You will know that this is a problem if you get the following error:

PHP Fatal error:  Uncaught [[o:Exception]:"java.lang.Exception: CreateInstance 
failed: new org.indivo.client.TalkClientImpl((i:Map)[o:HashMap]). 
Cause: java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap 
classloader, but this RI 
(from jar:file:/var/lib/tomcat5.5/webapps/JavaBridge/WEB-INF/lib/jaxb-impl-2.1.3.jar
!/com/sun/xml/bind/v2/model/impl/ModelBuilder.class) needs 2.1 API. 

Use the endorsed directory mechanism to place jaxb-api.jar in the bootstrap classloader. 
(See http://java.sun.com/j2se/1.5.0/docs/guide/standards/) 

Responsible VM: 1.6.0_03@http://java.sun.com/" 
at:\n#-25 com.sun.xml.bind.v2.model.impl.ModelBuilder.<clinit>(ModelBuilder.java:136)\n#-24 
com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:406)\n#-23 
com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:270)\n#0 
http://example.foo.org:8080/JavaBridge/java/Java.inc(257): 
java_ThrowExceptionProxyFactory->getProxy(13, '@N', false)\n#1 
http://example.foo.org:8080/JavaBridge/java/J 
in http://example.foo.org:8080/JavaBridge/java/Java.inc on line 220, 
referer: http://example.foo.org/indivo/login.php

Tomcat Deployment

An example of this is Indivo deployed under Tomcat. This example will assume the following:

The tomcat package will install two different directories:

/usr/share/tomcat5.5
/var/lib/tomcat5.5

All that needs to be done, is place the new JAXB API Jar into Tomcat's endorsed directory. In this scenario the directory is:

/usr/share/tomcat5.5/common/endorsed/jaxb-api.jar

This affectively upgrades the Jaxb version for this instance of Tomcat.

Note: the JAXB Jar that should be placed in the above directory can be found in the WAR file for the Indivo Server.

Personal tools