nuxeo-cap-5.5-tomcat wont start on Mac OS (Lion)

This looks like a Tomcat classloading problem like the one earlier this year - NXP-6259.

Just wondering if you need to fix this by re-releasing 5.5 or if you can advise me how to make the necessary environment changes (or if it is entirely a weird local problem).

2011-12-15 13:50:50,122 ERROR [com.sun.xml.ws.server.http] WSSERVLET11: failed to parse runtime descriptor: java.lang.NoSuchMethodError: com.sun.xml.bind.v2.model.nav.Navigator.isFinalMethod(Ljava/lang/Object;)Z java.lang.NoSuchMethodError: com.sun.xml.bind.v2.model.nav.Navigator.isFinalMethod(Ljava/lang/Object;)Z

at com.sun.xml.ws.model.AbstractWrapperBeanGenerator.getExceptionProperties(AbstractWrapperBeanGenerator.java:354)
at com.sun.xml.ws.model.AbstractWrapperBeanGenerator.collectExceptionBeanMembers(AbstractWrapperBeanGenerator.java:317)
at com.sun.xml.ws.model.WrapperBeanGenerator.createExceptionBean(WrapperBeanGenerator.java:345)
at com.sun.xml.ws.model.RuntimeModeler.getExceptionBeanClass(RuntimeModeler.java:306)
at com.sun.xml.ws.model.RuntimeModeler.processExceptions(RuntimeModeler.java:1081)
at com.sun.xml.ws.model.RuntimeModeler.processDocWrappedMethod(RuntimeModeler.java:815)
at com.sun.xml.ws.model.RuntimeModeler.processMethod(RuntimeModeler.java:586)
at com.sun.xml.ws.model.RuntimeModeler.processClass(RuntimeModeler.java:366)
at com.sun.xml.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:246)
at com.sun.xml.ws.server.EndpointFactory.createSEIModel(EndpointFactory.java:343)
at com.sun.xml.ws.server.EndpointFactory.createEndpoint(EndpointFactory.java:205)
at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:513)
at com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parseAdapters(DeploymentDescriptorParser.java:257)
at com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parse(DeploymentDescriptorParser.java:151)
at com.sun.xml.ws.transport.http.servlet.WSServletContextListener.parseAdaptersAndCreateDelegate(WSServletContextListener.java:131)
at com.sun.xml.ws.transport.http.servlet.WSServletContextListener.contextInitialized(WSServletContextListener.java:152)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3934)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4429)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:630)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:556)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:491)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1206)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:314)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
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 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)

2011-12-15 13:50:50,125 ERROR [org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/nuxeo]] Exception sending context initialized event to listener instance of class com.sun.xml.ws.transport.http.servlet.WSServletContextListener com.sun.xml.ws.transport.http.servlet.WSServletException: WSSERVLET11: failed to parse runtime descriptor: java.lang.NoSuchMethodError: com.sun.xml.bind.v2.model.nav.Navigator.isFinalMethod(Ljava/lang/Object;)Z

at com.sun.xml.ws.transport.http.servlet.WSServletContextListener.parseAdaptersAndCreateDelegate(WSServletContextListener.java:141)
at com.sun.xml.ws.transport.http.servlet.WSServletContextListener.contextInitialized(WSServletContextListener.java:152)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3934)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4429)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:630)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:556)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:491)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1206)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:314)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
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 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)

Caused by: java.lang.NoSuchMethodError: com.sun.xml.bind.v2.model.nav.Navigator.isFinalMethod(Ljava/lang/Object;)Z

at com.sun.xml.ws.model.AbstractWrapperBeanGenerator.getExceptionProperties(AbstractWrapperBeanGenerator.java:354)
at com.sun.xml.ws.model.AbstractWrapperBeanGenerator.collectExceptionBeanMembers(AbstractWrapperBeanGenerator.java:317)
at com.sun.xml.ws.model.WrapperBeanGenerator.createExceptionBean(WrapperBeanGenerator.java:345)
at com.sun.xml.ws.model.RuntimeModeler.getExceptionBeanClass(RuntimeModeler.java:306)
at com.sun.xml.ws.model.RuntimeModeler.processExceptions(RuntimeModeler.java:1081)
at com.sun.xml.ws.model.RuntimeModeler.processDocWrappedMethod(RuntimeModeler.java:815)
at com.sun.xml.ws.model.RuntimeModeler.processMethod(RuntimeModeler.java:586)
at com.sun.xml.ws.model.RuntimeModeler.processClass(RuntimeModeler.java:366)
at com.sun.xml.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:246)
at com.sun.xml.ws.server.EndpointFactory.createSEIModel(EndpointFactory.java:343)
at com.sun.xml.ws.server.EndpointFactory.createEndpoint(EndpointFactory.java:205)
at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:513)
at com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parseAdapters(DeploymentDescriptorParser.java:257)
at com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parse(DeploymentDescriptorParser.java:151)
at com.sun.xml.ws.transport.http.servlet.WSServletContextListener.parseAdaptersAndCreateDelegate(WSServletContextListener.java:131)
... 25 more
0 votes

1 answers

2531 views

ANSWER

First information, a part of Nuxeo developer are on Lion and Nuxeo works, so I think we will not re-release and try to find your problem :D

What is your java version ? Mine is 1.6.0_29-b11-402-11M3527…

You may have a 1.7 java version, can you tell us ?

Are you using our tomcat distribution ?

12/15/2011

Hi thanks for that - Java version is 1.6.0_29-b11-402-11M3527, same as yours. I am using nuxeoctl straight 'out of the box' with the Tomcat version you are shipping. Incidentally, I had been developing against a 5.4.3 DM snapshot which worked just fine and have subsequently shifted on to nuxeo-cap-5.5-SNAPSHOT-tomcat - also which works fine. But the 5.5 cap RC1 release didn't work for me.
12/15/2011

Can you get the release version instead of release candidate to tell us if you have still the trouble ?

Here is the link.

12/16/2011

Sorry - I didn't mean to give the impression that I was still using the Release Candidate. The stack trace is from is the production 5.5 cap release downloaded via this page http://www.nuxeo.com/en/downloads
12/18/2011

Can you check that the Tomcat contains the proper endorsed/ directory with two JARs? Do you have a system-wide Java endorsed dir that would contain another JAX-WS or JAXB version?
12/19/2011

I do have a nuxeo-cap-5.5-tomcat/endorsed/ directory which contains jaxb-api-2.2.3.jar and jaxws-api-2.2.5.jar .

I have a /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/endorsed/ directory but it doesn't contain anything.

12/20/2011

It gets stranger.

My install works fine if I substitute jaxws-rt-2.1.7.jar (from the cap-5.5 snapshot) for jaxws-rt-2.2.5.jar, but looking at the two jars there a quite a few differences so I am not very confident about the stability of what I have.

The install I have downloaded runs properly on my test machine wich is an OS X 10.7 system with the same config, jdk version, and OS build to my dev machine (which is throwing the error under discussion here).

Time for bed - my head hurts.

12/20/2011



First information, a part of Nuxeo developer are on Lion and Nuxeo works, so I think we will not re-release and try to find your problem :D

What is your java version ? Mine is 1.6.0_29-b11-402-11M3527.

Can you check that the Tomcat contains the proper endorsed/ directory with two JARs?

Do you have a system-wide Java endorsed dir that would contain another JAX-WS or JAXB version?

In fact these 2 libraries - JAX-WS and JAXB - have no version working in the same time on java 6 and java 7. See here. So we add the needed version into the Nuxeo Class loader when the JVM used is Java 6.

So you have to check why on one of your desktop the right version of JAX-WS or JAXB are not deployed into the Nuxeo Class loader.

0 votes