Monday 9 August 2010

Unable to run Vignette Portal on JDK6 - error: " java.lang.NoSuchMethodError: javax.xml.bind.annotation.XmlAccessorType.value()Ljavax/xml/bind/annotation/AccessType;"

PROBLEM:

I was running Vignette Portal Application Server on tomcat 6, using
JDK5u21, and decided to start using JDK6u20. The Portal wouldn't start
and was getting this error:


Jul 14, 2010 10:57:01 AM org.apache.catalina.core.ApplicationContext log
SEVERE: com.vignette.portal.website.internal.StartupProtectionFilter:
system startup failure detected, unable to process request.
javax.naming.NamingException: Could not initialize instance of
com.vignette.portal.portlet.management.internal.PortletManagementSystem
as an error occured during invocation. [Root exception is java.
lang.NoSuchMethodError:
javax.xml.bind.annotation.XmlAccessorType.value()Ljavax/xml/bind/annotation/AccessType;]
at com.vignette.portal.naming.internal.portal.LocalLookup.create(LocalLookup.java:130)
at com.vignette.portal.naming.internal.portal.SingletonLocalLookup.<init>(SingletonLocalLookup.java:31)
at com.vignette.portal.naming.internal.portal.ServiceLifecycleManager.loadService(ServiceLifecycleManager.java:220)
at com.vignette.portal.naming.internal.portal.ServiceLifecycleManager.initializeServiceSet(ServiceLifecycleManager.java:168)
at com.vignette.portal.naming.internal.portal.ServiceLifecycleManager.lookup(ServiceLifecycleManager.java:142)
at com.vignette.portal.naming.internal.portal.PortalInitialContextSPIImpl.lookup(PortalInitialContextSPIImpl.java:44)
at com.vignette.portal.naming.PortalInitialContext.lookup(PortalInitialContext.java:86)
at com.epicentric.system.SystemManager$StartupThread.run(SystemManager.java:240)
Caused by: java.lang.NoSuchMethodError:
javax.xml.bind.annotation.XmlAccessorType.value()Ljavax/xml/bind/annotation/AccessType;
at com.sun.xml.bind.v2.model.impl.ClassInfoImpl.getAccessType(ClassInfoImpl.java:339)
at com.sun.xml.bind.v2.model.impl.ClassInfoImpl.getProperties(ClassInfoImpl.java:228)
at com.sun.xml.bind.v2.model.impl.RuntimeClassInfoImpl.getProperties(RuntimeClassInfoImpl.java:87)
at com.sun.xml.bind.v2.model.impl.ModelBuilder.getClassInfo(ModelBuilder.java:127)
at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:49)
at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:41)
at com.sun.xml.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:189)
at com.sun.xml.bind.v2.model.impl.RegistryInfoImpl.<init>(RegistryInfoImpl.java:51)
at com.sun.xml.bind.v2.model.impl.ModelBuilder.addRegistry(ModelBuilder.java:232)
at com.sun.xml.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:201)
at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:327)
at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:198)
at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:76)
at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:55)
at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:124)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:128)
at javax.xml.bind.ContextFinder.find(ContextFinder.java:277)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:372)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:337)
at com.vignette.portal.portlet.jsrcontainer.internal.standardcontainer.management.PortletApplicationFactory.buildPortletApplication(PortletApplicationFactory.java:153)
at com.vignette.portal.portlet.jsrcontainer.internal.standardcontainer.management.PortletApplicationManager.addApplication(PortletApplicationManager.java:154)
at com.vignette.portal.portlet.jsrcontainer.internal.standardcontainer.management.PortletApplicationManager.access$000(PortletApplicationManager.java:46)
at com.vignette.portal.portlet.jsrcontainer.internal.standardcontainer.management.PortletApplicationManager$PortalAgentImpl.portletApplicationStarted(PortletApplicationManager.java:315)
at com.vignette.portal.portlet.jsrcontainer.internal.registry.PortletApplicationRegistry.registerPortal(PortletApplicationRegistry.java:118)
at com.vignette.portal.portlet.jsrcontainer.internal.standardcontainer.management.PortletApplicationManager.init(PortletApplicationManager.java:77)
at com.vignette.portal.portlet.jsrcontainer.internal.standardcontainer.PortletContainerImpl.init(PortletContainerImpl.java:44)
at com.vignette.portal.portlet.management.internal.implementation.provider.jsr.deployment.JsrPortletApplicationDeployer.<init>(JsrPortletApplicationDeployer.java:37)
at com.vignette.portal.portlet.management.internal.implementation.provider.jsr.deployment.JsrPortletApplicationDeployer.getInstance(JsrPortletApplicationDeployer.java:31)
at com.vignette.portal.portlet.management.internal.implementation.provider.jsr.JsrPortletApplicationManagerSpiImpl.initialize(JsrPortletApplicationManagerSpiImpl.java:88)
at com.vignette.portal.portlet.management.internal.PortletManagementSystem.init(PortletManagementSystem.java:76)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)


Googling around, I found this:

http://forums.sun.com/thread.jspa?threadID=5320481

"The actual problem is that jaxb classes like AccessType etc were
renamed to XmlAccessType in the latest jaxb-release. SunOne happens to
use these classes and consequently fails because those classes will
not be available. For the issue to be resolved, place old jaxb related
jars in SunInstallDir\AppServer\lib\endorsed and restart."

"I was facing similar problems with Tomcat.....when I was trying to
install VAP 7.4 on tomcat. What I have done to solve the problem is
copied jaxb-api.jar from
Tomcat-install-directory/webapps/portal/WEB-INF/lib to
Tomcat/common/endorsed.........restart and you are done."


Aargh. Too difficult. Back to JDK 5. :(