难以安装TomEE 9和部署战争

问题描述

自从我使用Java开发Web应用程序已有一段时间以来,我发现在设置TomEE和部署.war应用程序时遇到了困难。我曾尝试过示例应用程序之战,但是却遇到了错误,并且不确定自己错过了什么。

TomEE作为服务安装,并且正确设置了JAVA_HOME。我尝试部署示例应用程序。war提供了here,但没有用。

TomEE管理员消息

enter image description here

Catalina.log

29-Sep-2020 06:47:31.570 SEVERE [main] jdk.internal.reflect.NativeMethodAccessorImpl.invoke Error deploying web application directory [/home/me/Apps/tomee/webapps/sample.war]
java.lang.IllegalStateException: Error starting child
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:720)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1133)
    at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1866)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
    at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1045)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:429)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1576)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
    at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
    at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:936)
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.ContainerBase$startChild.call(ContainerBase.java:1384)
    at org.apache.catalina.core.ContainerBase$startChild.call(ContainerBase.java:1374)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
    at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:421)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:738)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:342)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Sample]]
    at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717)
    ... 37 more
Caused by: java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet
    at java.base/java.lang.classLoader.defineClass1(Native Method)
    at java.base/java.lang.classLoader.defineClass(ClassLoader.java:1017)
    at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
    at java.base/java.net.urlclassloader.defineClass(urlclassloader.java:550)
    at java.base/java.net.urlclassloader$1.run(urlclassloader.java:458)
    at java.base/java.net.urlclassloader$1.run(urlclassloader.java:452)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.net.urlclassloader.findClass(urlclassloader.java:451)
    at java.base/java.lang.classLoader.loadClass(ClassLoader.java:589)
    at java.base/java.lang.classLoader.loadClass(ClassLoader.java:576)
    at org.apache.openejb.core.TempClassLoader.loadClass(TempClassLoader.java:222)
    at org.apache.openejb.core.TempClassLoader.loadClass(TempClassLoader.java:83)
    at org.apache.openejb.config.AnnotationDeployer$ProcessAnnotatedBeans.deploy(AnnotationDeployer.java:2289)
    at org.apache.openejb.config.AnnotationDeployer$ProcessAnnotatedBeans.deploy(AnnotationDeployer.java:2015)
    at org.apache.openejb.config.AnnotationDeployer.deploy(AnnotationDeployer.java:384)
    at org.apache.openejb.config.ConfigurationFactory$Chain.deploy(ConfigurationFactory.java:420)
    at org.apache.openejb.config.ConfigurationFactory.configureApplication(ConfigurationFactory.java:1033)
    at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1287)
    at org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1131)
    at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:134)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5044)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    ... 38 more
Caused by: java.lang.classNotFoundException: javax.servlet.http.HttpServlet
    at java.base/java.net.urlclassloader.findClass(urlclassloader.java:471)
    at java.base/java.lang.classLoader.loadClass(ClassLoader.java:589)
    at java.base/java.lang.classLoader.loadClass(ClassLoader.java:522)
    ... 61 more

已正确设置TomEE文件的权限。 我浏览互联网的时间很长,所有响应都是关于将servlt jar添加到类路径中。我没有使用任何IDE,只是测试了预制的战争应用。

Config: TomEE Plus 9

Ubuntu 18.04

java版本:

openjdk版本“ 11.0.8” 2020-07-14 OpenJDK运行时环境(内部版本11.0.8 + 10-post-Ubuntu-0ubuntu118.04.1) OpenJDK 64位服务器VM(版本11.0.8 + 10-post-Ubuntu-0ubuntu118.04.1,混合模式,共享)

解决方法

Tomee-9无法与名称空间“ javax”一起使用:

Caused by: java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet

网站上的描述:

Note: TomEE 9.0.0-M2 is a milestone release,which targets the jakarta namespace. Applications using javax will not work on this release of TomEE 9. You may encounter issues - feedback on this release is encouraged and appreciated.

您可以使用插件:

https://github.com/apache/tomee/blob/master/examples/rest-cdi/pom.xml#L40-L53

将您的项目转换为Jakarta EE或将Tomee-8版本转换为javax。