Java HTTP 状态 500 - 提供程序 org.glassfish.json.JsonProviderImpl 未找到

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/22812113/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-13 18:04:45  来源:igfitidea点击:

HTTP Status 500 - Provider org.glassfish.json.JsonProviderImpl not found

javajsontomcatnetbeans

提问by Ravi Chandra Durvasula

I am using netbeans-8, jdk 7,tomcat 8.05.I created a webapp in netbeansand added javax.jsonapi to my project, the code shows no errors, but when i run my servlet the below error occurs.

我正在使用netbeans-8, jdk 7,tomcat 8.05.我在其中创建了一个 webappnetbeans并将javax.jsonapi添加到我的项目中,代码显示没有错误,但是当我运行我的 servlet 时出现以下错误。

HTTP Status 500 - Provider org.glassfish.json.JsonProviderImpl not found

type Exception report

message Provider org.glassfish.json.JsonProviderImpl not found

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

exception

javax.json.JsonException: Provider org.glassfish.json.JsonProviderImpl not found
    javax.json.spi.JsonProvider.provider(JsonProvider.java:97)
    javax.json.Json.createObjectBuilder(Json.java:266)
    NewServlet.doGet(NewServlet.java:24)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
root cause

java.lang.ClassNotFoundException: org.glassfish.json.JsonProviderImpl
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1284)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1132)
    java.lang.Class.forName0(Native Method)
    java.lang.Class.forName(Class.java:190)
    javax.json.spi.JsonProvider.provider(JsonProvider.java:94)
    javax.json.Json.createObjectBuilder(Json.java:266)
    NewServlet.doGet(NewServlet.java:24)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
note The full stack trace of the root cause is available in the Apache Tomcat/8.0.3 logs.

Apache Tomcat/8.0.3

回答by M. Luisa Carrión

The javax.json api (provided in the JSON Processing API jar) is good only for compiling the application.

javax.json api(在 JSON Processing API jar 中提供)仅适用于编译应用程序。

If you want to run the application, you have to download the JSON Processing RI jar, as explained here: https://jsonp.java.net/download.html

如果要运行该应用程序,则必须下载JSON Processing RI jar,如下所述:https: //jsonp.java.net/download.html

The JSON Processing RI jar contains the org.glassfish.json.JsonProviderImpl class you are missing.

JSON Processing RI jar 包含您缺少的 org.glassfish.json.JsonProviderImpl 类。

回答by Marco Mene

I managed to make it work in my webapp in NetBeans by manually installing the JSON Processing RI jar.

通过手动安装 JSON Processing RI jar,我设法使其在 NetBeans 中的 webapp 中工作。

The complete procedure is:

完整的程序是:

  • Download the jar: JSON Processing RI jar
  • Right-click on Project --> Dependencies and add new dependency providing dummy Group ID, Artifact ID and Version number.
  • Right-click on the newly created dependency and select "Manually install artifact", provide the downloaded jar
  • Rebuild project, now it should work
  • 下载 jar:JSON 处理 RI jar
  • 右键单击 Project --> Dependencies 并添加新的依赖项,提供虚拟组 ID、工件 ID 和版本号。
  • 在新创建的依赖上右键,选择“手动安装神器”,提供下载的jar
  • 重建项目,现在应该可以工作了

回答by Juh_

From this answeryou could replace javax.json dependency by its org.glassfish implementation.

这个答案中,您可以通过其 org.glassfish 实现替换 javax.json 依赖项。

Maven repo, gives:

Maven repo,给出:

<dependency>
  <groupId>org.glassfish</groupId>
  <artifactId>javax.json</artifactId>
  <version>1.0.4</version>
</dependency>