2014-04-02 8 views
12

Używam netbeans-8, jdk 7,tomcat 8.05. stworzyłem webapp w netbeans i dodał javax.json api do mojego projektu, kodu nie wykazuje żadnych błędów, ale gdy uruchamiam mojego serwletu poniżej błędu występuje.HTTP status 500 - Dostawca nie org.glassfish.json.JsonProviderImpl znaleźć

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 

Odpowiedz

23

Interfejs javax.json (podany w jar JSON API) jest dobry tylko do kompilowania aplikacji.

Jeśli chcesz uruchomić aplikację, trzeba pobrać JSON Processing RI jar, jak wyjaśniono tutaj: https://jsonp.java.net/download.html

JSON tworzenie RI słoik zawiera klasę org.glassfish.json.JsonProviderImpl brakuje.

5

Udało mi się sprawić, aby działał on w mojej aplikacji webowej w NetBeans, ręcznie instalując jar JSON Processing RI.

Cała procedura jest:

  • Pobierz słoika: JSON Processing RI jar
  • prawym przyciskiem myszy na projekt -> Zależności i dodać nową zależność zapewniając atrapę ID grupy, ID Artifact i numer wersji.
  • prawym przyciskiem myszy na nowo utworzonym uzależnienia i wybierz „Ręczna instalacja artefakt”, zapewniają pobranego słoik
  • Odbuduj projekt, teraz powinno działać
+0

To była jedyna rzecz, że pracował dla mnie. – Bimde

14

Od this answer można zastąpić javax.json zależności od jego Implementacja org.glassfish.

Maven repo daje:

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

Po dodaniu do listy zależności, bezużyteczne (( –