Java servlet 应用程序在我的本地电脑上工作,但在我的服务器开发上不工作

标签 java tomcat servlets centos

我已经将我的 java servlet web 应用程序部署到我的服务器上。显示了我的 Web 界面,但是当我尝试从我的网页注册/登录时,它抛出了 HTTP Status 500 ? Internal Server Error exception like below

Root Cause

java.lang.NoClassDefFoundError: org/apache/commons/codec/digest/DigestUtils com.mockup.Register.doPost(Register.java:38) javax.servlet.http.HttpServlet.service(HttpServlet.java:652) javax.servlet.http.HttpServlet.service(HttpServlet.java:733) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) Root Cause

java.lang.ClassNotFoundException: org.apache.commons.codec.digest.DigestUtils org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1358) org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1180) com.mockup.Register.doPost(Register.java:38) javax.servlet.http.HttpServlet.service(HttpServlet.java:652) javax.servlet.http.HttpServlet.service(HttpServlet.java:733) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)


描述说

The server encountered an unexpected condition that prevented it from fulfilling the request.


pom.xml
<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.googlecode.json-simple</groupId>
    <artifactId>json-simple</artifactId>
    <packaging>bundle</packaging>
    <name>JSON.simple</name>
    <version>1.1.1</version>
    <description>A simple Java toolkit for JSON</description>
    <url>http://code.google.com/p/json-simple/</url>
    <licenses>
        <license>
            <name>The Apache Software License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
    </licenses>
    <developers>
        <developer>
            <id>Yidong</id>
            <name>Yidong Fang</name>
            <roles>
                <role>architect</role>
                <role>developer</role>
            </roles>
            <timezone>+8</timezone>
        </developer>
    </developers>
    <scm>
        <connection>scm:svn:http://json-simple.googlecode.com/svn/trunk/</connection>
        <developerConnection>scm:svn:http://json-simple.googlecode.com/svn/trunk/</developerConnection>
        <url>http://json-simple.googlecode.com/svn/trunk/</url>
    </scm>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
        </dependency>
    </dependencies>
    
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <version>2.3.6</version>
                <extensions>true</extensions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                  <source>1.2</source>
                  <target>1.2</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
我在使用 centos 8 OS 的服务器上安装了 tomcat 8.5。在我的本地计算机上一切正常,但是当我部署到我的服务器时,它抛出了这个错误。对不起,如果我不能清楚地传达我的信息,但希望它有所帮助

最佳答案

好吧,堆栈跟踪很容易解释:

java.lang.ClassNotFoundException: org.apache.commons.codec.digest.DigestUtils
当您在服务器上部署应用程序时,应用程序无法加载上述类。这可能是因为正在加载的 apache commons jar 的版本在您的服务器中与您本地的不同,或者您没有提供依赖项。请分享您的 pom.xml 以进行更多分析,并分享整个堆栈跟踪。
如果您使用的是 maven,请确保已将其添加到 pom 中,例如:
<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <version>1.15</version>
</dependency>

关于Java servlet 应用程序在我的本地电脑上工作,但在我的服务器开发上不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64458204/

相关文章:

java - 无法连接到发现主机 - hazelcast

java - 为 JSF 元素设置正确的值

java - 没有对象分配的 for 循环如何导致 JVM 抖动?

java数据库管理连接错误

java - 这个 jar 构建中缺少什么?

SpringMVC - 无法访问 index.jsp 中的 JS 和 CSS 文件

spring - 嵌入式tomcat Spring boot中的ssl设置

tomcat - IntelliJ 项目在 Tomcat 中返回 404,而在 GlassFish 中运行良好

java - 编码/解码HttpPost UTF-8 Java

java - SimpleUrlHandlerMapping NoSuchFieldError : null