依赖注入不适用于使用Jersey和OpenWebBeans的Tomcat 7

问题描述 投票:3回答:2

我有点困惑于我的问题。我尝试使用Jersey运行RESTful Web服务,并在Tomcat7上使用OpenWebBeans将其与一些依赖注入相结合。 Jersey Part本身似乎运行良好,但是当我创建beans.xml文件时,我得到了下面提到的错误......

所以我们走了:

我在Eclipse中使用Maven创建了项目:

File-> New-> Other-> Maven Project-> maven-archetype-webapp并添加了src / main / java文件夹

文件树如下所示:

TJOWB | - 部署描述符 | -Java Resources | ---的src / main /资源 | ----- META-INF | ------- beans.xml中 | ---的src / main / JAVA | ----- A.B.C | ------- Greeting.java | ------- Hello.java | ---图书馆 | -JavaScript资源 | - 部署资源 | -pom.xml | -src | - 主要 | --- java的 | ---资源 | ----- META-INF | ------- beans.xml中 | --- web应用程序 | -----的index.jsp | ----- WEB-INF | ------- beans.xml中 | ------- web.xml中 | -target

pom.xml文件:

(由于我不知道,在stackoverflow中缺少项目定义,抱歉)

<modelVersion>4.0.0</modelVersion>
<groupId>a.b.c</groupId>
<artifactId>TJOWB</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>TJOWB Maven Webapp</name>
<url>http://maven.apache.org</url>

    <dependencies>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-servlet</artifactId>
        <version>1.12</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-server</artifactId>
        <version>1.12</version>
    </dependency>
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-api</artifactId>
        <version>6.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.openwebbeans</groupId>
        <artifactId>openwebbeans-tomcat7</artifactId>
        <version>1.1.3</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>org.apache.openwebbeans</groupId>
        <artifactId>openwebbeans-impl</artifactId>
        <version>1.1.3</version>
    </dependency>
    <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-interceptor_1.1_spec</artifactId>
        <version>1.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.openwebbeans</groupId>
        <artifactId>openwebbeans-web</artifactId>
        <version>1.1.3</version>
    </dependency>
    <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-servlet_3.0_spec</artifactId>
        <version>1.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.openwebbeans</groupId>
        <artifactId>openwebbeans-ee-common</artifactId>
        <version>1.1.3</version>
    </dependency>
    <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-jcdi_1.0_spec</artifactId>
        <scope>provided</scope>
        <version>1.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-atinject_1.0_spec</artifactId>
        <scope>provided</scope>
        <version>1.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.openwebbeans</groupId>
        <artifactId>openwebbeans-spi</artifactId>
        <version>1.1.3</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.openwebbeans</groupId>
        <artifactId>openwebbeans-resource</artifactId>
        <version>1.1.3</version>
    </dependency>

    </dependencies>
    <build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
    </plugins>

    <finalName>TJOWB</finalName>
   </build>

web.xml:

Archetype创建Web应用程序

<listener>
    <listener-class>org.apache.webbeans.web.tomcat.ContextLifecycleListener</listener-class>
</listener>

<servlet>
    <servlet-name>TestServlet</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>a.b.c</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>TestServlet</servlet-name>
    <url-pattern>/rest/*</url-pattern>
</servlet-mapping>

添加

Tomcat / lib:

Geronimo的atinject_1.0_spec-1.0.jar Geronimo的interceptor_1.1_spec-1.0.jar Geronimo的interceptor_3.0_spech-1.0.jar Geronimo的jcdi_1.0_spec-1.0.jar javassist_3.12.1.GA.jar 的OpenWebBeans-IMPL-1.1.3.jar 的OpenWebBeans资源-1.1.3.jar 的OpenWebBeans-SPI-1.1.3.jar 的OpenWebBeans-tomcat7-1.1.3.jar 的OpenWebBeans的web-1.1.3.jar scannotation-1.0.2.jar

在Tomcat /conf/server.xml中

监听器className =“org.apache.webbeans.web.tomcat.ContextLifecycleListener”/

hello.Java:

package a.b.c;

import javax.annotation.ManagedBean; 
import javax.annotation.PostConstruct; 
import javax.inject.Inject; 
import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 
import javax.ws.rs.core.MediaType; 

@Path("inject") 
public class Hello {

    @Inject
    private Greeting mGreeting;

    public Hello() {

    }

    @PostConstruct
    public void init() {

    }

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String sayPlainTextHello() {
       if (mGreeting != null)
            return mGreeting.greetUser();
        else
            return "Dependency Injection failed";
    }
}

greeting.Java:

package a.b.c;

public class Greeting {

    public String greetUser() {
        return "Hello";
    }
}

那么,现在实际的错误消息:

如果src / main / webapp / WEB-INF中没有beans.xml,则应用程序可以正常工作。至少它开始和泽西岛工作;)

但是一旦我创建了beans.xml((我必须这样做,我想)beans.xml只包含我无法在这里显示的bean标签(因为我不知道如何),否则就是emtpy)我得到了以下stacktrace:

Tomcat7启动:

Mrz 22, 2012 1:58:00 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in           production environments was not found on the java.library.path:         C:\glassfish3\jdk7\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Program     Files/Java/jre6/bin/client;C:/Program Files/Java/jre6/bin;C:/Program     Files/Java/jre6/lib/i386;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS    \System32\WindowsPowerShell\v1.0\;C:\Program Files\TortoiseSVN\bin;C:\Program     Files\apache-maven-2.2.1-bin\apache-maven-    2.2.1\bin;C:\glassfish3\jdk7\bin;C:\Users\mvesper\Desktop\IndigoEE;;.
Mrz 22, 2012 1:58:00 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property     'source' to 'org.eclipse.jst.j2ee.server:TJOWB' did not find a matching property.
Mrz 22, 2012 1:58:00 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Mrz 22, 2012 1:58:00 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Mrz 22, 2012 1:58:00 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 421 ms
Mrz 22, 2012 1:58:00 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Mrz 22, 2012 1:58:00 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.26
Mrz 22, 2012 1:58:01 PM org.apache.webbeans.web.lifecycle.WebContainerLifecycle     startApplication
INFO: OpenWebBeans Container is starting...
Mrz 22, 2012 1:58:01 PM org.apache.webbeans.plugins.PluginLoader startUp
INFO: Adding OpenWebBeansPlugin : [TomcatWebPlugin]
Mrz 22, 2012 1:58:01 PM org.apache.webbeans.web.scanner.WebScannerService     addWebBeansXmlLocation
INFO: added beans.xml marker:     file:/C:/Users/mvesper/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpweb    apps/TJOWB/WEB-INF/classes/META-INF/beans.xml
Mrz 22, 2012 1:58:01 PM org.apache.webbeans.web.scanner.WebScannerService     addWebBeansXmlLocation
INFO: added beans.xml marker: jndi:/localhost/TJOWB/WEB-INF/beans.xml
Mrz 22, 2012 1:58:01 PM org.apache.webbeans.config.BeansDeployer     validateInjectionPoints
INFO: All injection points were validated successfully.
Mrz 22, 2012 1:58:01 PM org.apache.webbeans.web.lifecycle.WebContainerLifecycle     startApplication
INFO: OpenWebBeans Container has started, it took [247] ms.
Mrz 22, 2012 1:58:01 PM com.sun.jersey.api.core.PackagesResourceConfig init
INFO: Scanning for root resource and provider classes in the packages:
  a.b.c
Mrz 22, 2012 1:58:01 PM com.sun.jersey.api.core.ScanningResourceConfig logClasses
INFO: Root resource classes found:
  class a.b.c.Hello
Mrz 22, 2012 1:58:01 PM com.sun.jersey.api.core.ScanningResourceConfig init
INFO: No provider classes found.
Mrz 22, 2012 1:58:01 PM     com.sun.jersey.server.impl.cdi.CDIComponentProviderFactoryInitializer initialize
INFO: CDI support is enabled
Mrz 22, 2012 1:58:01 PM com.sun.jersey.server.impl.application.WebApplicationImpl     _initiate
INFO: Initiating Jersey application, version 'Jersey: 1.12 02/15/2012 04:51 PM'
Mrz 22, 2012 1:58:02 PM org.apache.catalina.core.ApplicationContext log
SEVERE: StandardWrapper.Throwable
java.lang.NoClassDefFoundError: javax/annotation/ManagedBean
    at             com.sun.jersey.server.impl.cdi.CDIComponentProviderFactory.getComponentProvider(     tProviderFactory.java:116)
    at         com.sun.jersey.server.impl.component.IoCResourceFactory.getComponentProvider(IoCResourceFac    tory.java:76)
    at     com.sun.jersey.server.impl.application.WebApplicationImpl.getResourceComponentProvider(WebA    pplicationImpl.java:582)
    at com.sun.jersey.server.impl.application.WebApplicationImpl.initiateResource(WebApplicationImpl.java:660)
at com.sun.jersey.server.impl.application.WebApplicationImpl.initiateResource(WebApplicationImpl.java:655)
at com.sun.jersey.server.impl.application.RootResourceUriRules.<init>(RootResourceUriRules.java:124)
at com.sun.jersey.server.impl.application.WebApplicationImpl._initiate(WebApplicationImpl.java:1308)
at com.sun.jersey.server.impl.application.WebApplicationImpl.access$700(WebApplicationImpl.java:171)
at com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:777)
at com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:773)
at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:193)
at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:773)
at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:768)
at com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:488)
at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:318)
at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:607)
at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:208)
at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:373)
at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:556)
at javax.servlet.GenericServlet.init(GenericServlet.java:160)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5015)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5302)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1566)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1556)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.ClassNotFoundException: javax.annotation.ManagedBean
at     org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1701)
at     org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1546)
... 33 more

Mrz 22, 2012 1:58:02 PM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet /TJOWB threw load() exception
java.lang.ClassNotFoundException: javax.annotation.ManagedBean
at     org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1701)
at     org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1546)
at com.sun.jersey.server.impl.cdi.CDIComponentProviderFactory.getComponentProvider(CDIComponentProviderFactory.java:116)
at com.sun.jersey.server.impl.component.IoCResourceFactory.getComponentProvider(IoCResourceFactory.java:76)
at com.sun.jersey.server.impl.application.WebApplicationImpl.getResourceComponentProvider(WebApplicationImpl.java:582)
at com.sun.jersey.server.impl.application.WebApplicationImpl.initiateResource(WebApplicationImpl.java:660)
at com.sun.jersey.server.impl.application.WebApplicationImpl.initiateResource(WebApplicationImpl.java:655)
at com.sun.jersey.server.impl.application.RootResourceUriRules.<init>(RootResourceUriRules.java:124)
at com.sun.jersey.server.impl.application.WebApplicationImpl._initiate(WebApplicationImpl.java:1308)
at com.sun.jersey.server.impl.application.WebApplicationImpl.access$700(WebApplicationImpl.java:171)
at com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:777)
at com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:773)
at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:193)
at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:773)
at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:768)
at com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:488)
at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:318)
at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:607)
at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:208)
at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:373)
at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:556)
at javax.servlet.GenericServlet.init(GenericServlet.java:160)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5015)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5302)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1566)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1556)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)

Mrz 22, 2012 1:58:02 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Mrz 22, 2012 1:58:02 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Mrz 22, 2012 1:58:02 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 1212 ms

当我尝试访问localhost时:8080 / JOB / test / inject:

Mrz 22, 2012 2:11:29 PM com.sun.jersey.api.core.PackagesResourceConfig init
INFO: Scanning for root resource and provider classes in the packages:
  a.b.c
Mrz 22, 2012 2:11:29 PM com.sun.jersey.api.core.ScanningResourceConfig logClasses
INFO: Root resource classes found:
  class a.b.c.Hello
Mrz 22, 2012 2:11:29 PM com.sun.jersey.api.core.ScanningResourceConfig init
INFO: No provider classes found.
Mrz 22, 2012 2:11:29 PM org.apache.catalina.core.ApplicationContext log
SEVERE: StandardWrapper.Throwable
java.lang.RuntimeException: javax.naming.NameNotFoundException: Name CDIExtension is     not bound in this Context
    at     com.sun.jersey.server.impl.cdi.CDIExtension.getInitializedExtension(CDIExtension.java:177)
    at com.sun.jersey.server.impl.cdi.CDIComponentProviderFactory.<init>    (CDIComponentProviderFactory.java:92)
    at     com.sun.jersey.server.impl.cdi.CDIComponentProviderFactoryInitializer.initialize(CDIComponentProviderFactoryInitializer.java:75)
at com.sun.jersey.spi.container.servlet.WebComponent.configure(WebComponent.java:574)
at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.configure(ServletContainer.java:311)
at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:606)
at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:208)
at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:373)
at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:556)
at javax.servlet.GenericServlet.init(GenericServlet.java:160)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:857)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:135)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: javax.naming.NameNotFoundException: Name CDIExtension is not bound in this Context
at org.apache.naming.NamingContext.lookup(NamingContext.java:820)
at org.apache.naming.NamingContext.lookup(NamingContext.java:168)
at com.sun.jersey.server.impl.cdi.CDIExtension.getInitializedExtension(CDIExtension.java:175)
... 26 more

Mrz 22, 2012 2:11:29 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Allocate exception for servlet TestServlet
javax.naming.NameNotFoundException: Name CDIExtension is not bound in this Context
at org.apache.naming.NamingContext.lookup(NamingContext.java:820)
at org.apache.naming.NamingContext.lookup(NamingContext.java:168)
at com.sun.jersey.server.impl.cdi.CDIExtension.getInitializedExtension(CDIExtension.java:175)
at com.sun.jersey.server.impl.cdi.CDIComponentProviderFactory.<init>(CDIComponentProviderFactory.java:92)
at com.sun.jersey.server.impl.cdi.CDIComponentProviderFactoryInitializer.initialize(CDIComponentProviderFactoryInitializer.java:75)
at com.sun.jersey.spi.container.servlet.WebComponent.configure(WebComponent.java:574)
at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.configure(ServletContainer.java:311)
at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:606)
at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:208)
at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:373)
at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:556)
at javax.servlet.GenericServlet.init(GenericServlet.java:160)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:857)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:135)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)

所以,我想这就是它。

请原谅我的英文和格式。

提前致谢!

maven-2 dependency-injection jersey tomcat7
2个回答
0
投票

好的,我有完全相同的问题,解决方案非常简单(虽然有半天的调试)

只需使用@ManagedBean注释你的Hello类


0
投票

请从这里阅读我的帖子,看看第一个问题的解决方案:Attempting to use Jersey (JAX-RS) and Weld (CDI) in Tomcat 7. Getting noClassDefFoundError for javax.annotation.ManagedBean

请确保为tomcat引导CDI的方式是正确的:这是一个非常有用的资源:http://java.dzone.com/articles/bootstrapping-cdi-several

新生儿重症监护病房

© www.soinside.com 2019 - 2024. All rights reserved.