2014-04-02 18 views
12

Tôi đang sử dụng netbeans-8, jdk 7,tomcat 8.05. Tôi tạo ra một ứng dụng web trong netbeans và thêm javax.json api để dự án của tôi, mã cho thấy không có lỗi, nhưng khi tôi chạy servlet tôi lỗi dưới đây xảy ra.HTTP Status 500 - Nhà cung cấp org.glassfish.json.JsonProviderImpl không tìm thấy

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 

Trả lời

23

javax.json api (được cung cấp trong bình API chế biến JSON) chỉ tốt để biên dịch ứng dụng.

Nếu bạn muốn chạy ứng dụng, bạn phải tải về JSON Processing RI jar, như đã giải thích ở đây: https://jsonp.java.net/download.html

Các JSON Processing RI jar chứa các lớp org.glassfish.json.JsonProviderImpl bạn đang thiếu.

5

Tôi đã quản lý để làm cho nó hoạt động trong webapp của tôi trong NetBeans bằng cách cài đặt thủ công trình xử lý JSON RI.

Thủ tục hoàn chỉnh là:

  • Tải jar: JSON Processing RI jar
  • Nhấp chuột phải vào Project -> Dependencies và thêm phụ thuộc mới cung cấp giả Group ID, Artifact ID và số phiên bản.
  • Nhấp chuột phải vào các sự phụ thuộc mới được tạo ra và chọn "Cài đặt thủ công tạo tác", cung cấp các jar tải
  • Rebuild dự án, bây giờ nó nên làm việc
+0

Đây là điều duy nhất mà làm việc cho tôi. – Bimde

14

Từ this answer bạn có thể thay thế javax.json phụ thuộc bởi nó triển khai thực hiện org.glassfish.

Maven repo, cung cấp cho:

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

Sau khi thêm danh sách này vào danh sách phụ thuộc, không sử dụng (( –

Các vấn đề liên quan