You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomee.apache.org by ChrisD <cd...@gan.com> on 2016/02/29 15:54:26 UTC

TomEE 7.0.0-M2 requires Java8?

Hi,

The new TomEE (Apache Tomcat (TomEE)/8.0.32 (7.0.0-M2)) seems to have
introduced Java8 as a requirement. Is this intentional/known about?

The M1 release runs fine against Java7 for me but when trying to run the M2
release it complains about a java.lang.NoClassDefFoundError for
java/lang/reflect/Executable.

It looks like the newer bval 1.1.1 jars introduce a dependence on Java8. 

I switched bval-core-1.1.1.jar and bval-jsr-1.1.1.jar for the 1.1.0 versions
and it then started up against Java7. The startup time was 10x worse using
the 1.1.0 jars so I'm guessing the changes might have involved improving the
performance.

It would be good to know if TomEE7 will require upgrading to Java8 or not
(something that's not an option for my company currently due to our
dependence on a specific version of Terracotta.)

Thanks,
Chris.

ps.
Here's a couple of snippets from the logs for the NoClassDefFoundError in
case they are of any use:
INFO - Server version:        Apache Tomcat (TomEE)/8.0.32 (7.0.0-M2)
INFO - Server built:          Feb 2 2016 19:34:53 UTC
INFO - Server number:         8.0.32.0
INFO - OS Name:               Linux
INFO - OS Version:            3.10.0-327.10.1.el7.x86_64
INFO - Architecture:          amd64
INFO - Java Home:             /usr/local/jdk1.7.0_67/jre
INFO - JVM Version:           1.7.0_67-b01
INFO - JVM Vendor:            Oracle Corporation
INFO - CATALINA_BASE:         /tmp/apache-tomee-plus-7.0.0-M2
INFO - CATALINA_HOME:         /tmp/apache-tomee-plus-7.0.0-M2

...

INFO - Assembling app: /tmp/apache-tomee-plus-7.0.0-M2/webapps/ROOT
INFO - Undeploying app: /tmp/apache-tomee-plus-7.0.0-M2/webapps/ROOT
SEVERE - ContainerBase.removeChild: destroy: 
org.apache.catalina.LifecycleException: An invalid Lifecycle transition was
attempted ([before_destroy]) for component
[StandardEngine[Catalina].StandardHost[localhost].StandardContext[]] in
state [STARTING_PREP]
        at
org.apache.catalina.util.LifecycleBase.invalidTransition(LifecycleBase.java:401)
        at
org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:291)
        at
org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:840)
        at
org.apache.tomee.catalina.TomcatWebAppBuilder.undeploy(TomcatWebAppBuilder.java:1565)
        at
org.apache.tomee.catalina.TomcatWebAppBuilder.undeploy(TomcatWebAppBuilder.java:1545)
        at
org.apache.tomee.catalina.TomcatWebAppBuilder.undeployWebApps(TomcatWebAppBuilder.java:750)
        at
org.apache.openejb.assembler.classic.Assembler.destroyApplication(Assembler.java:2144)
        at
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:1019)
        at
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:694)
        at
org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1236)
        at
org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1094)
        at
org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:133)
        at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:95)
        at
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
        at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5154)
        at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
        at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
        at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
        at
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
        at
org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1091)
        at
org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1830)
        at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
SEVERE - Unable to deploy collapsed ear in war
StandardEngine[Catalina].StandardHost[localhost].StandardContext[]
org.apache.openejb.OpenEJBException: Creating application failed:
/tmp/apache-tomee-plus-7.0.0-M2/webapps/ROOT: java/lang/reflect/Executable
        at
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:1023)
        at
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:694)
        at
org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1236)
        at
org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1094)
        at
org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:133)
        at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:95)
        at
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
        at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5154)
        at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
        at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
        at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
        at
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
        at
org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1091)
        at
org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1830)
        at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NoClassDefFoundError: java/lang/reflect/Executable
        at
org.apache.bval.jsr.ApacheFactoryContext.getValidator(ApacheFactoryContext.java:128)
        at
org.apache.openejb.assembler.classic.LazyValidator.ensureDelegate(LazyValidator.java:55)
        at
org.apache.openejb.assembler.classic.LazyValidator.getValidator(LazyValidator.java:64)
        at
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:915)
        ... 18 more
Caused by: java.lang.ClassNotFoundException: java.lang.reflect.Executable
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        ... 22 more




--
View this message in context: http://tomee-openejb.979440.n4.nabble.com/TomEE-7-0-0-M2-requires-Java8-tp4677719.html
Sent from the TomEE Users mailing list archive at Nabble.com.

Re: TomEE 7.0.0-M2 requires Java8?

Posted by Romain Manni-Bucau <rm...@gmail.com>.
Hi

2016-02-29 15:54 GMT+01:00 ChrisD <cd...@gan.com>:

> Hi,
>
> The new TomEE (Apache Tomcat (TomEE)/8.0.32 (7.0.0-M2)) seems to have
> introduced Java8 as a requirement. Is this intentional/known about?
>
>
Not intentional


> The M1 release runs fine against Java7 for me but when trying to run the M2
> release it complains about a java.lang.NoClassDefFoundError for
> java/lang/reflect/Executable.
>
> It looks like the newer bval 1.1.1 jars introduce a dependence on Java8.
>
>
Checked the bytecode and didn't find it


> I switched bval-core-1.1.1.jar and bval-jsr-1.1.1.jar for the 1.1.0
> versions
> and it then started up against Java7. The startup time was 10x worse using
> the 1.1.0 jars so I'm guessing the changes might have involved improving
> the
> performance.
>
>
Yep was the main change in bval


> It would be good to know if TomEE7 will require upgrading to Java8 or not
> (something that's not an option for my company currently due to our
> dependence on a specific version of Terracotta.)
>
> Thanks,
> Chris.
>
> ps.
> Here's a couple of snippets from the logs for the NoClassDefFoundError in
> case they are of any use:
> INFO - Server version:        Apache Tomcat (TomEE)/8.0.32 (7.0.0-M2)
> INFO - Server built:          Feb 2 2016 19:34:53 UTC
> INFO - Server number:         8.0.32.0
> INFO - OS Name:               Linux
> INFO - OS Version:            3.10.0-327.10.1.el7.x86_64
> INFO - Architecture:          amd64
> INFO - Java Home:             /usr/local/jdk1.7.0_67/jre
> INFO - JVM Version:           1.7.0_67-b01
> INFO - JVM Vendor:            Oracle Corporation
> INFO - CATALINA_BASE:         /tmp/apache-tomee-plus-7.0.0-M2
> INFO - CATALINA_HOME:         /tmp/apache-tomee-plus-7.0.0-M2
>
> ...
>
> INFO - Assembling app: /tmp/apache-tomee-plus-7.0.0-M2/webapps/ROOT
> INFO - Undeploying app: /tmp/apache-tomee-plus-7.0.0-M2/webapps/ROOT
> SEVERE - ContainerBase.removeChild: destroy:
> org.apache.catalina.LifecycleException: An invalid Lifecycle transition was
> attempted ([before_destroy]) for component
> [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]] in
> state [STARTING_PREP]
>         at
>
> org.apache.catalina.util.LifecycleBase.invalidTransition(LifecycleBase.java:401)
>         at
> org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:291)
>         at
> org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:840)
>         at
>
> org.apache.tomee.catalina.TomcatWebAppBuilder.undeploy(TomcatWebAppBuilder.java:1565)
>         at
>
> org.apache.tomee.catalina.TomcatWebAppBuilder.undeploy(TomcatWebAppBuilder.java:1545)
>         at
>
> org.apache.tomee.catalina.TomcatWebAppBuilder.undeployWebApps(TomcatWebAppBuilder.java:750)
>         at
>
> org.apache.openejb.assembler.classic.Assembler.destroyApplication(Assembler.java:2144)
>         at
>
> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:1019)
>         at
>
> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:694)
>         at
>
> org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1236)
>         at
>
> org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1094)
>         at
>
> org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:133)
>         at
>
> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:95)
>         at
>
> org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
>         at
>
> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5154)
>         at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
>         at
>
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
>         at
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
>         at
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
>         at
>
> org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1091)
>         at
>
> org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1830)
>         at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>         at
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>         at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>         at java.lang.Thread.run(Thread.java:745)
> SEVERE - Unable to deploy collapsed ear in war
> StandardEngine[Catalina].StandardHost[localhost].StandardContext[]
> org.apache.openejb.OpenEJBException: Creating application failed:
> /tmp/apache-tomee-plus-7.0.0-M2/webapps/ROOT: java/lang/reflect/Executable
>         at
>
> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:1023)
>         at
>
> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:694)
>         at
>
> org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1236)
>         at
>
> org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1094)
>         at
>
> org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:133)
>         at
>
> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:95)
>         at
>
> org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
>         at
>
> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5154)
>         at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
>         at
>
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
>         at
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
>         at
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
>         at
>
> org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1091)
>         at
>
> org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1830)
>         at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>         at
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>         at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>         at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.NoClassDefFoundError: java/lang/reflect/Executable
>         at
>
> org.apache.bval.jsr.ApacheFactoryContext.getValidator(ApacheFactoryContext.java:128)
>         at
>
> org.apache.openejb.assembler.classic.LazyValidator.ensureDelegate(LazyValidator.java:55)
>         at
>
> org.apache.openejb.assembler.classic.LazyValidator.getValidator(LazyValidator.java:64)
>         at
>
> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:915)
>         ... 18 more
> Caused by: java.lang.ClassNotFoundException: java.lang.reflect.Executable
>         at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
>         at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
>         ... 22 more
>
>
>
>

Seems that built with java 8 we got inserted:

1310   #1301 = Utf8               java/lang/reflect/Executable
1311   #1302 = Class              #1301        //
java/lang/reflect/Executable

inserted in the bytecode which doesnt bring much but prevent the execution
on java 7.

Should be fix when upgrading to bval 1.1.2.


>
> --
> View this message in context:
> http://tomee-openejb.979440.n4.nabble.com/TomEE-7-0-0-M2-requires-Java8-tp4677719.html
> Sent from the TomEE Users mailing list archive at Nabble.com.
>