【问题标题】:javax.servlet.ServletException: org.glassfish.jersey.server.ContainerException: java.lang.NoClassDefFoundError: org/json/JSONObjectjavax.servlet.ServletException:org.glassfish.jersey.server.ContainerException:java.lang.NoClassDefFoundError:org/json/JSONObject
【发布时间】:2018-07-28 02:03:25
【问题描述】:

我在 IntelliJ 中有一个简单的 Java 类,如下所示:

import javax.ws.rs.*;
import javax.ws.rs.core.*;
import java.io.*;
import java.util.List;

@Path("/hello")
public class Hello {
     @GET
     @Path("/{param}")
     public Response getMsg(@PathParam("param") String msg) {
          String output = "Jersey say : " + msg;
          return Response.status(200).entity(output).build();
   }
@POST
@Path("/jsonRequest")
@Produces(MediaType.APPLICATION_JSON)
public Response getJson(String url) throws InterruptedException, IOException 
{
    JSONObject json= JSONInteraction.readJsonFromUrl(url);
    Response.ResponseBuilder response = Response.ok(json);
    return response.build();
}
}

我还包含了一个 json 的 maven 依赖项:

 <!-- https://mvnrepository.com/artifact/org.json/json -->
 <dependency>
      <groupId>org.json</groupId>
      <artifactId>json</artifactId>
      <version>20180130</version>
 </dependency>

我的 war 文件部署如下所示:

启动服务器并部署项目后,即使添加了所有依赖项,我仍然会收到 javax.servlet.ServletException: org.glassfish.jersey.server.ContainerException: java.lang.NoClassDefFoundError: org/json/JSONObject当我尝试在 POSTMAN 上运行 POST 请求时。当我执行 GET 请求时,我得到了正确的结果,因为它与 JSON 无关。

我已经阅读了几乎所有的 StackOverflow 解决方案,但没有任何帮助。有人可以帮我解决这个问题吗?欢迎提出任何建议。

【问题讨论】:

    标签: java json maven intellij-idea war


    【解决方案1】:

    请做:

    • 检查你是否在 WAR 中添加了 json 库 - 解压你的 WAR 并检查里面是否是 json-20180130.jar
    • 检查您的服务器类加载器是否不包含任何其他带有 org.json.JSONObject 类的 jar(对于 Tomcat:{CATALINA_HOME}/lib) - 如果包含并且这不是您的服务器安装包中提供的 JAR,请删除它- 它可能与从您的 WAR 加载的类冲突
    • 请仔细阅读应用程序启动期间创建的服务器日志:请搜索有关类加载器中的重复类问题、加载 JAR 失败等问题的任何信息。

    如果没有帮助,请补充:

    • pom.xml
    • 整个堆栈跟踪
    • servlet 容器的名称和版本

    【讨论】:

      猜你喜欢
      • 2016-10-12
      • 1970-01-01
      • 2015-02-14
      • 2014-10-18
      • 1970-01-01
      • 2023-02-24
      • 2019-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多