TomEE无法解析ManagerExecutorService

时间:2015-11-30 11:41:33

标签: tomcat java-ee ejb tomee

我将一个应用程序从GlassFish移植到Apache TomEE。

但是在TomEE(羽毛版)上部署期间,maven不断抛出这个错误:

    SEVERE: ContainerBase.addChild: start: 
    org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/seagle]]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
        at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:677)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:552)
        at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1717)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)
        at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
        at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
        at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1516)
        at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:912)
        at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:371)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
        at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:44)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:614)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:957)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:745)
    Caused by: java.lang.NoClassDefFoundError: javax/enterprise/concurrent/ManagedExecutorService
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2615)
        at java.lang.Class.privateGetPublicMethods(Class.java:2733)
        at java.lang.Class.getMethods(Class.java:1472)
        at org.apache.openejb.config.AnnotationDeployer$ProcessAnnotatedBeans.processApplicationExceptions(AnnotationDeployer.java:2873)
        at org.apache.openejb.config.AnnotationDeployer$ProcessAnnotatedBeans.deploy(AnnotationDeployer.java:2383)
        at org.apache.openejb.config.AnnotationDeployer$ProcessAnnotatedBeans.deploy(AnnotationDeployer.java:1819)
        at org.apache.openejb.config.AnnotationDeployer.deploy(AnnotationDeployer.java:360)
        at org.apache.openejb.config.ConfigurationFactory$Chain.deploy(ConfigurationFactory.java:403)
        at org.apache.openejb.config.ConfigurationFactory.configureApplication(ConfigurationFactory.java:971)
        at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1227)
        at org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1100)
        at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:130)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
        at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5416)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        ... 42 more
    Caused by: java.lang.ClassNotFoundException: javax.enterprise.concurrent.ManagedExecutorService
        at org.apache.openejb.core.TempClassLoader.loadClass(TempClassLoader.java:176)
        at org.apache.openejb.core.TempClassLoader.loadClass(TempClassLoader.java:80)
        ... 59 more

    Nov 30, 2015 1:23:18 PM org.apache.catalina.startup.HostConfig deployDescriptor
    SEVERE: Error deploying configuration descriptor /home/chaikalis/apache-tomee-plus-1.7.2/conf/Catalina/localhost/seagle.xml
    java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/seagle]]
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:904)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
        at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:677)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:552)
        at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1717)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)
        at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
        at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
        at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1516)
        at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:912)
        at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:371)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
        at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:44)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:614)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:957)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:745)

这是我的pom.xml

    <?xml version="1.0" encoding="UTF-8"?>

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>gr.uom.</groupId>
        <artifactId>seagle3</artifactId>
        <packaging>war</packaging>
        <version>3.0</version>
        <name>Seagle Tomcat</name>

        <properties>
        <maven.javadoc.skip>true</maven.javadoc.skip>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <openejb.version>5.0.0-SNAPSHOT</openejb.version>
        <tomee.version>2.0.0-SNAPSHOT</tomee.version>
        <version.openjpa>2.3.0</version.openjpa>
        </properties>

        <repositories>
        <repository>
            <id>apache-m2-snapshot</id>
            <name>Apache Snapshot Repository</name>
            <url>https://repository.apache.org/content/groups/snapshots</url>
        </repository>
        <repository>
            <id>tomcat-m2-repo</id>
            <name>Tomcat Dev Repository</name>
            <url>http://tomcat.apache.org/dev/dist/m2-repository/</url>
        </repository>
        </repositories>

        <pluginRepositories>
        <pluginRepository>
            <id>apache-m2-snapshot</id>
            <name>Apache Snapshot Repository</name>
            <url>https://repository.apache.org/content/groups/snapshots</url>
        </pluginRepository>
        </pluginRepositories>

        <build>
        <finalName>${project.artifactId}</finalName>
        <defaultGoal>package</defaultGoal>
        <plugins>
            <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.2</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
                <useIncrementalCompilation>false</useIncrementalCompilation>
            </configuration>
            </plugin>
            <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.6</version>
            <configuration>
                <packagingExcludes>WEB-INF/web.xml</packagingExcludes>
            </configuration>
            </plugin>
            <plugin>
            <groupId>org.apache.openejb.maven</groupId>
            <artifactId>tomee-maven-plugin</artifactId>
            <version>${tomee.version}</version>
            <configuration>
                <simpleLog>true</simpleLog>
                <tomeeVersion>${tomee.version}</tomeeVersion>
                <tomeeClassifier>plus</tomeeClassifier>
            </configuration>
            </plugin>
            <plugin>
            <groupId>org.apache.openejb.maven</groupId>
            <artifactId>tomee-embedded-maven-plugin</artifactId>
            <version>${tomee.version}</version>
            </plugin>
            <plugin>
            <groupId>com.googlecode.t7mp</groupId>
            <artifactId>maven-t7-plugin</artifactId>
            <version>0.9.7</version>
            <configuration>
                <tomcatHttpPort>1234</tomcatHttpPort>
                <tomcatShutdownPort>13245</tomcatShutdownPort>
                <tomcatVersion>7.0.53</tomcatVersion>
                <webapps>
                    <webappArtifact>
                        <groupId>org.apache.openejb</groupId>
                        <artifactId>tomee-webapp</artifactId>
                        <version>${tomee.version}</version>
                        <contextPath>openejb</contextPath>
                    </webappArtifact>
                </webapps>
            </configuration>
            </plugin>
            <plugin> <!-- needed otherwise it will not work at runtime -->
            <groupId>org.apache.openjpa</groupId>
            <artifactId>openjpa-maven-plugin</artifactId>
            <version>${version.openjpa}</version>
            <configuration>
                <includes>gr/uom/j......./class</includes>
                <addDefaultConstructor>true</addDefaultConstructor>
                <enforcePropertyRestrictions>true</enforcePropertyRestrictions>
            </configuration>
            <executions>
                <execution>
                    <id>enhancer</id>
                    <phase>process-classes</phase>
                    <goals>
                        <goal>enhance</goal>
                    </goals>
                </execution>
            </executions>
            <dependencies>
                <dependency>
                    <groupId>org.apache.openjpa</groupId>
                    <artifactId>openjpa</artifactId>
                    <version>${version.openjpa}</version>
                </dependency>
            </dependencies>
            </plugin>
        </plugins>
        </build>

        <dependencies>
        <dependency>
            <groupId>com.esotericsoftware.kryo</groupId>
            <artifactId>kryo</artifactId>
            <version>2.24.0</version>
        </dependency>


        <!-- Java EE related dependencies -->
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-api</artifactId>
            <version>7.0</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>gr.uom.se</groupId>
            <artifactId>gr-uom-se-util</artifactId>
            <version>1.0.0</version>
        </dependency>
        <dependency>
            <groupId>gr.uom.se</groupId>
            <artifactId>vcs-analysis</artifactId>
            <version>1.0.0</version>
            <!-- A workaround to exclude the guava api dependency from this artifact 
            because it conflicts with the running environment. The guava dependency is 
            conflicting with environment guava version. However the guava api is provided 
            by GF environment. NOTE: this may change in the future if another GF doesn't 
            have any guava dependency and may cause problems. Guava dependency for this 
            artifact should be change because it is only used for the BiDi map. -->
            <exclusions>
            <exclusion>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
            </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>gr.uom.se</groupId>
            <artifactId>vcs-api</artifactId>
            <version>1.0.0</version>
        </dependency>
        <dependency>
            <groupId>gr.uom.se</groupId>
            <artifactId>vcs-jgit</artifactId>
            <version>1.0.0</version>
        </dependency>

         <!-- Dependencies for Graph Management -->
        <dependency>
            <groupId>net.sf.jung</groupId>
            <artifactId>jung-api</artifactId>
            <version>2.0.1</version>
        </dependency>
        <dependency>
            <groupId>net.sf.jung</groupId>
            <artifactId>jung-io</artifactId>
            <version>2.0.1</version>
        </dependency>
        <dependency>
            <groupId>net.sf.jung</groupId>
            <artifactId>jung-jai</artifactId>
            <version>2.0.1</version>
        </dependency>
        <dependency>
            <groupId>net.sf.jung</groupId>
            <artifactId>jung-visualization</artifactId>
            <version>2.0.1</version>
        </dependency>
        <dependency>
            <groupId>net.sf.jung</groupId>
            <artifactId>jung-graph-impl</artifactId>
            <version>2.0.1</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>net.sf.jung</groupId>
            <artifactId>jung-algorithms</artifactId>
            <version>2.0.1</version>
        </dependency>
        <dependency>
            <groupId>net.sf.jung</groupId>
            <artifactId>jung-3d</artifactId>
            <version>2.0.1</version>
        </dependency>
        <!-- END of Dependencies for Graph Management -->

        <!-- Dependencies for Eclipse Source Code AST Analysis -->
        <dependency>
            <groupId>org.eclipse.core</groupId>
            <artifactId>org.eclipse.core.contenttype</artifactId>
            <version>3.4.100.v20100505-1235</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.core</groupId>
            <artifactId>org.eclipse.core.jobs</artifactId>
            <version>3.5.100</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.core</groupId>
            <artifactId>org.eclipse.core.resources</artifactId>
            <version>3.7.100</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.core</groupId>
            <artifactId>org.eclipse.core.runtime</artifactId>
            <version>3.7.0</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.equinox</groupId>
            <artifactId>org.eclipse.equinox.common</artifactId>
            <version>3.6.0.v20100503</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.equinox</groupId>
            <artifactId>org.eclipse.equinox.preferences</artifactId>
            <version>3.4.1</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jdt</groupId>
            <artifactId>org.eclipse.jdt.core</artifactId>
            <version>3.10.0</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.osgi</groupId>
            <artifactId>org.eclipse.osgi.services</artifactId>
            <version>3.2.100.v20100503</version>
            <!-- A workaround to exclude the servlet api dependency from this artifact 
            because it conflicts with the running environment. This servlet api is 2.5 
            and the running environment should be >3. However the servlet api is provided 
            by GF environment. -->
            <exclusions>
            <exclusion>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
            </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.eclipse</groupId>
            <artifactId>org.eclipse.osgi</artifactId>
            <version>3.8.0.v20120529-1548</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.text</groupId>
            <artifactId>org.eclipse.text</artifactId>
            <version>3.5.101</version>
        </dependency>
        <!-- End of Dependencies for Eclipse Source Code AST Analysis -->


        <dependency>
            <groupId>org.apache.openejb</groupId>
            <artifactId>javaee-api</artifactId>
            <version>7.0-SNAPSHOT</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.openejb</groupId>
            <artifactId>tomee-embedded</artifactId>
            <version>${tomee.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.openejb</groupId>
            <artifactId>openejb-cxf-rs</artifactId>
            <version>${openejb.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.openejb</groupId>
            <artifactId>tomee-jaxrs</artifactId>
            <version>${tomee.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.openejb</groupId>
            <artifactId>ziplock</artifactId>
            <version>${tomee.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.containers</groupId>
            <artifactId>jersey-container-servlet</artifactId>
            <version>2.5.1</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.core</groupId>
            <artifactId>jersey-client</artifactId>
            <version>2.5.1</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.media</groupId>
            <artifactId>jersey-media-moxy</artifactId>
            <version>2.5.1</version>
        </dependency>
        </dependencies>


        <!--
        This section allows you to configure where to publish libraries for sharing.
        It is not required and may be deleted.  For more information see:
        http://maven.apache.org/plugins/maven-deploy-plugin/
        -->
        <distributionManagement>
        <repository>
            <id>local-release-repo</id>
            <url>file://${project.build.outputDirectory}/repo/</url>
        </repository>
        <snapshotRepository>
            <id>local-snapshot-repo</id>
            <url>file://${project.build.outputDirectory}/repo/</url>
        </snapshotRepository>
        </distributionManagement>
    </project>

有人对此有任何想法吗? TomEE羽流是否支持ManagedExecutorService?

谢谢

2 个答案:

答案 0 :(得分:0)

最新版本的TomEE(1.7.2)仅符合Java EE6标准。 ManagedExecutorService是Java EE7的功能,因此TomEE羽流不会拥有它。

Here are the app servers which are Java EE7 complaint.

支持EE7的主要应用服务器是:

  • WebSphere Liberty 8.5.5.6
  • Weblogic 2.2.1
  • GlassFish 4.0
  • Wildfly 8.x

当您在server.xml中启用ManagedExecutorService功能时,我确信Liberty支持concurrent-1.0。然后将其注入任何地方:

@Resource
ManagedExecutorService managedExec;

答案 1 :(得分:0)

The current TomEE Snapshot (called 7.0.0-SNAPSHOT, not 2.0.0-SNAPSHOT)是Java EE 7.它尚未经过认证 - 因为它尚未发布。但是它有效,在其上我们使用ManagedExecutorService没有任何问题。