Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.NoClassDefFoundError:com/google/inject/servlet/GuiceServletContextListener_Java_Tomcat_Servlets_Guice - Fatal编程技术网

java.lang.NoClassDefFoundError:com/google/inject/servlet/GuiceServletContextListener

java.lang.NoClassDefFoundError:com/google/inject/servlet/GuiceServletContextListener,java,tomcat,servlets,guice,Java,Tomcat,Servlets,Guice,我正在尝试将Guice4.0用于带有Tomcat8的web应用程序。我尝试从wiki中执行示例,但在Tomcat Localhost日志中出现以下错误: 28-Nov-2015 16:36:26.136 SEVERE [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.listenerStart Error configuring application listener of class

我正在尝试将Guice4.0用于带有Tomcat8的web应用程序。我尝试从wiki中执行示例,但在Tomcat Localhost日志中出现以下错误:

    28-Nov-2015 16:36:26.136 SEVERE [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.listenerStart Error configuring application listener of class com.nirus.guice_confige.MyGuiceServletConfig
 java.lang.NoClassDefFoundError: com/google/inject/servlet/GuiceServletContextListener
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2496)
    ...
这是我的web.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <filter>
        <filter-name>guiceFilter</filter-name>
        <filter-class>com.google.inject.servlet.GuiceFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>guiceFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>


    <listener>
        <listener-class>com.nirus.guice_confige.MyGuiceServletConfig</listener-class>
    </listener>

</web-app>
UPD1: 这是我的Maven 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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>NiRus</groupId>
    <artifactId>ImagServerApp</artifactId>
    <version>0.0.1-FirstStep</version>

    <dependencies>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.5</version>
        </dependency>
        <dependency>
            <groupId>com.google.inject</groupId>
            <artifactId>guice</artifactId>
            <version>4.0</version>
        </dependency>
        <dependency>
            <groupId>com.google.inject.extensions</groupId>
            <artifactId>guice-servlet</artifactId>
            <version>4.0</version>
        </dependency>
    </dependencies>
</project>

4.0.0
尼勒斯
ImagServerApp
0.0.1-第一步
com.google.code.gson
格森
2.5
com.google.inject
圭斯
4
com.google.inject.extensions
guice servlet
4

听起来您的war不包括Guice servlet jar。如果您使用maven构建war,那么您可能需要在pom中添加对guice servlet的依赖项

<dependency>
    <groupId>com.google.inject.extensions</groupId>
    <artifactId>guice-servlet</artifactId>
    <version>4.0</version>
</dependency>

com.google.inject.extensions
guice servlet
4

No,我按照指示在pom中添加了它。将my pom.xml内容添加到question.NoClassDefFoundException,当Tomcat无法找到正在调用的文件的路径时,会导致此异常。请确保您在$Tomcat_Home/your project directory/WEB-INF/lib文件夹中添加了所有JAR,并且所有java文件都包含在WEB.xml中,java类驻留在$Tomcat_Home/your project directory/WEB-INF/classes文件夹中。您是如何解决这个问题的?我没有看到这里标记的重复项…在我看来,这不是一个更通用的类not found异常答案的重复项。可以找到有关如何准确设置所述GuiceServletContextListener的详细信息
<dependency>
    <groupId>com.google.inject.extensions</groupId>
    <artifactId>guice-servlet</artifactId>
    <version>4.0</version>
</dependency>