tomcat - 无法启动Tomcat

标签 tomcat vaadin vaadin7

我在 Tomcat 8 上运行的 Eclipse 中创建了一个 Vaadin 7 项目。我想在我的应用程序中使用 EJB、CDI、JPA。这是我的 Ivy.xml

    <dependency org="org.eclipse.persistence" name="javax.persistence" rev="latest.release"/>
    <dependency org="com.vaadin" name="vaadin-cdi" rev="latest.release"/>
    <dependency org="javax.inject" name="javax.inject" rev="latest.release"/>
    <dependency org="javax.ejb" name="ejb-api" rev="latest.release"/>

但是当我启动 Tomcat 时,出现以下错误。你知道为什么它找不到那个类吗?

SEVERE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine.StandardHost.StandardContext]
    at java.util.concurrent.FutureTask.report(Unknown Source)
    at java.util.concurrent.FutureTask.get(Unknown Source)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:917)
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1399)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine.StandardHost.StandardContext]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    ... 6 more
Caused by: java.lang.NoClassDefFoundError: Ljavax/enterprise/inject/spi/BeanManager;
    at java.lang.Class.getDeclaredFields0(Native Method)
    at java.lang.Class.privateGetDeclaredFields(Unknown Source)
    at java.lang.Class.getDeclaredFields(Unknown Source)
    at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:106)
    at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:256)
    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationListenerAnnotations(WebAnnotationSet.java:86)
    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:63)
    at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:334)
    at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:774)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:305)
    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:5065)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 6 more
Caused by: java.lang.ClassNotFoundException: javax.enterprise.inject.spi.BeanManager
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1305)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1157)
    ... 20 more

最佳答案

普通的 tomcat 只是一个 servlet 容器,所以如果不进入 Spring 世界,它只是普通应用程序的良好基础(没有 JPA、CDI、EBJs...)。你绝对应该看看TomEE如果你喜欢 Tomcat 或 Wildly如果您想获得 Java EE 7 的最新内容。

关于tomcat - 无法启动Tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29719549/

相关文章:

tomcat - Jetty-Runner 只使用一个 CPU?

apache - webhost中的tomcat域名

java - 在带有嵌入式 Tomcat 的 Spring Boot 中使用 ThreadLocal 来保存每个请求的数据是否安全

java - Vaadin Calendar - 单击添加事件

java - 动态添加多个表行

java - 为什么使用注解@SuppressWarnings?

java - vaadin视频组件是否支持preload属性

vaadin - 使用@Push读取和写入cookie

java - 如何让 maven yuicompressor 和 tomcat 插件正常运行

java - 为什么不使用click参数(Spring boot和vaadin)