gpt4 book ai didi

javax.servlet.ServletException : org. glassfish.jersey.server.ContainerException : java. lang.NoClassDefFoundError:org/json/JSONObject

转载 作者:行者123 更新时间:2023-12-02 11:37:14 25 4
gpt4 key购买 nike

我在 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 文件部署如下所示:

enter image description here

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

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

最佳答案

请执行:

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

如果没有帮助,请添加:

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

关于javax.servlet.ServletException : org. glassfish.jersey.server.ContainerException : java. lang.NoClassDefFoundError:org/json/JSONObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48839019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com