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
HTTP Status 500 - Provider org.glassfish.json.JsonProviderImpl not found
提问by Ravi Chandra Durvasula
I am using netbeans-8, jdk 7,tomcat 8.05.
I created a webapp in netbeans
and added javax.json
api 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.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
回答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>