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

时间:2014-04-02 12:51:37

标签: java json tomcat netbeans

我正在使用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

3 个答案:

答案 0 :(得分:24)

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

答案 1 :(得分:23)

this answer开始,您可以通过其org.glassfish实现替换javax.json依赖项。

Maven repo,给出:

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

答案 2 :(得分:5)

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

完整的程序是:

  • 下载jar:JSON Processing RI jar
  • 右键单击Project - &gt;依赖关系并添加新的依赖关系,提供虚拟组ID,工件ID和版本号。
  • 右键单击新创建的依赖项,然后选择“手动安装工件”,提供下载的jar
  • 重建项目,现在应该可以正常工作