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

Rav*_*ula 16 java json tomcat netbeans

我正在使用netbeans-8, jdk 7,tomcat 8.05.我创建了一个webapp netbeans并将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
Run Code Online (Sandbox Code Playgroud)

Mar*_*ris 25

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

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

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


Juh*_*uh_ 23

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

Maven回购,给出:

<dependency>
  <groupId>org.glassfish</groupId>
  <artifactId>javax.json</artifactId>
  <version>1.0.4</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

  • 将此添加到依赖项列表后,没有用(( (2认同)

Mar*_*ene 5

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

完整的程序是:

  • 下载jar:JSON处理RI jar
  • 右键单击Project - > Dependencies并添加新依赖项,提供虚拟组ID,工件ID和版本号.
  • 右键单击新创建的依赖项并选择"手动安装工件",提供下载的jar
  • 重建项目,现在它应该工作