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

我使用netbeans-8, jdk 7,tomcat 8.05. 我在netbeans创建了一个webapp并将javax.json api添加到我的项目中,代码显示没有错误,但是当我运行我的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 

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类。

从这个答案你可以用它的org.glassfish实现替换javax.json依赖。

Maven回购 ,给出:

  org.glassfish javax.json 1.0.4  

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

完整的程序是:

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