简体   繁体   English

泽西岛500错误NoClassDefFoundError:org / json / JSONException

[英]Jersey 500 Error NoClassDefFoundError: org/json/JSONException

Before you mark it as DUPLICATE please understand I've checked all the relevant links but to no avail. 在将其标记为DUPLICATE之前,请理解我已经检查了所有相关链接,但无济于事。

I'm calling the following Service. 我正在致电以下服务。

@Path("/courses")
public class CourseService {

//  @GET
//  @Produces(MediaType.TEXT_PLAIN)
//  public String hello(){
//      return "Hello World !!!";
//  }

    private DataService _service;

    public CourseService(String jsonData) throws ParseException, IOException, JSONException {
        _service = new DataService(jsonData);
    }

    @GET
    @Produces(MediaType.APPLICATION_XML)
    public ArrayList<Course> getAllCourses(){
        return _service.get_handler().getAllCourses();

    }
}

If I just run the commented portion of the code my application runs fine and produces "Hello World" 如果我只运行代码的注释部分,我的应用程序将运行良好并生成“ Hello World”

But then when I run my actual service it gives me the following error. 但是,当我运行我的实际服务时,它给了我以下错误。

type Exception report

message Servlet.init() for servlet Jersey Web Application threw exception

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Servlet.init() for servlet Jersey Web Application threw exception
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1502)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1458)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.lang.Thread.run(Thread.java:745)
root cause

java.lang.NoClassDefFoundError: org/json/JSONException
    java.lang.Class.getDeclaredConstructors0(Native Method)
    java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
    java.lang.Class.getConstructors(Class.java:1651)
    org.glassfish.jersey.server.model.MethodHandler$ClassBasedMethodHandler.<init>(MethodHandler.java:265)
    org.glassfish.jersey.server.model.MethodHandler.create(MethodHandler.java:155)
    org.glassfish.jersey.server.model.ResourceMethod$Builder.createInvocable(ResourceMethod.java:550)
    org.glassfish.jersey.server.model.ResourceMethod$Builder.build(ResourceMethod.java:536)
    org.glassfish.jersey.server.model.Resource$Builder.processMethodBuilders(Resource.java:663)
    org.glassfish.jersey.server.model.Resource$Builder.buildResourceData(Resource.java:599)
    org.glassfish.jersey.server.model.Resource$Builder.build(Resource.java:655)
    org.glassfish.jersey.server.model.Resource.from(Resource.java:798)
    org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:465)
    org.glassfish.jersey.server.ApplicationHandler.access$500(ApplicationHandler.java:184)
    org.glassfish.jersey.server.ApplicationHandler$3.call(ApplicationHandler.java:350)
    org.glassfish.jersey.server.ApplicationHandler$3.call(ApplicationHandler.java:347)
    org.glassfish.jersey.internal.Errors.process(Errors.java:315)
    org.glassfish.jersey.internal.Errors.process(Errors.java:297)
    org.glassfish.jersey.internal.Errors.processWithException(Errors.java:255)
    org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:347)
    org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:392)
    org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:177)
    org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:369)
    javax.servlet.GenericServlet.init(GenericServlet.java:158)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1502)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1458)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.lang.Thread.run(Thread.java:745)

This is the structure of my Project Directory 这是我的项目目录的结构

在此处输入图片说明 I've tested my CourseService using a TestClient and it works fine. 我已经使用TestClient测试了CourseService,并且效果很好。 What am I doing wrong. 我究竟做错了什么。

You shouldn't be defining dependencies like that. 您不应该像这样定义依赖项。 All your dependencies should be managed with something like maven or gradle. 应该使用诸如maven或gradle之类的东西来管理所有依赖项。 That being said, did you add it the jar to the class path? 话虽这么说,您是否将jar添加到类路径中?

Since your using maven, you would want to add this to your <dependencies> section. 由于您使用的是maven,因此您希望将其添加到<dependencies>部分。 For example: 例如:

<dependencies>
    <!-- other dependencies -->
    <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <!-- or w.e. version you wanted to use. -->
        <!-- See http://mvnrepository.com/artifact/org.json/json-->
        <version>20160212</version> 
     </dependency>
     <!-- other dependencies -->
</dependencies>

Eclipse should automatically add dependencies like the one above to your class path. Eclipse应该自动将类似上面的依赖项添加到类路径中。

Check out one of the official tutorials on maven: https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html 查看有关Maven的官方教程之一: https : //maven.apache.org/guides/getting-started/maven-in-five-minutes.html

java.lang.NoClassDefFoundError: org/json/JSONException java.lang.NoClassDefFoundError:org / json / JSONException

Please make sure JSONException is defined and accessible. 请确保定义了JSONException并且可以访问。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Java:NoClassDefFoundError:org / json / JSONException - Java: NoClassDefFoundError: org/json/JSONException 处女座服务器抛出java.lang.NoClassDefFoundError:org / json / JSONException部署Java包时出错 - Virgo Server Throwing java.lang.NoClassDefFoundError: org/json/JSONException Error while deploying a Java package JApplet java.lang.NoClassDefFoundError:org / json / JSONException - JApplet java.lang.NoClassDefFoundError: org/json/JSONException Intellij Java:java.lang.NoClassDefFoundError:org/json/JSONException - Intellij Java: java.lang.NoClassDefFoundError: org/json/JSONException 错误:org.json.JSONException:没有沼泽值 - Error: org.json.JSONException: No value for bog 错误500-NoClassDefFoundError:org / hsqldb / lib / LongValueHashMap - Error 500 - NoClassDefFoundError: org/hsqldb/lib/LongValueHashMap org.json.JSONException:名称JSON提取错误没有值 - org.json.JSONException: No value for Name JSON extraction error JSON错误org.json.JSONException:项目无值 - JSON error org.json.JSONException: No value for item json与Jersey:NoClassDefFoundError - json with Jersey: NoClassDefFoundError WebDriver 和 ChromeDriver:无法修复 org/json/JSONException 错误 - WebDriver and ChromeDriver: Unable to fix org/json/JSONException error
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM