簡體   English   中英

Java EE項目找不到Gson

[英]Java EE project can't find Gson

我正在為類構建一個Java EE項目,並試圖使用Google的Gson包將JSON發送到Servlet內部項目的另一部分。 當我訪問映射到上述Servlet的URL時,我希望看到原始的JSON,但是會收到ClassNotFoundException

import com.google.gson.Gson;
import edu.neumont.writingCenter.json.Event;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;


@WebServlet("/user/appointments/json")
public class UserAppointmentsJsonServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, 
                         HttpServletResponse response) 
                                        throws ServletException, IOException {
        response.setContentType("application/json");
        PrintWriter out = response.getWriter();

        List<Event> events = new ArrayList<Event>();
        for (int i =0; i < 10; i++) {
            Event event = new Event();
            event.setId(i);
            event.setTitle("Test " + i);
            event.setAllDay(false);
            event.setStart(new Date());
            event.setEnd(new Date());
            events.add(event);
        }

        Gson gson = new Gson();
        out.print(gson.toJson(events));
        out.flush();

    }
}

java.lang.NoClassDefFoundError:com / google / gson / Gson,位於edu.neumont.writingCenter.servlets.user.appointments.UserAppointmentsJsonServlet.doGet(UserAppointmentsJsonServlet.java:35),位於javax.servlet.http.HttpServlet.service(HttpServlet.java) :734),位於org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1539)的javax.servlet.http.HttpServlet.service(HttpServlet.java:847),位於org.apache.catalina.core.ApplicationFilterChain。 org.apache.catalina.core上的internalDoFilter(ApplicationFilterChain.java:343)org.apache上的edu.neumont.writingCenter.filters.SetRootFilter.doFilter(SetRootFilter.java:43)上的org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)上的.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java :279),位於org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:175),位於org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655),位於org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595),位於com.sun。 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)上的enterprise.web.WebPipeline.invoke(WebPipeline.java:98) 162)在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)在org.apache.catalina.connector.CoyoteAdapter.java:330在com.sun.enterprise.v3.services com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828)的com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725)的.impl.ContainerMapper.service(ContainerMapper.java:174) )com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019)處com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225) 在com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)在com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)在com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) )的com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)的com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)的com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask。 com.sun.grizzly.ContextTask.run(ContextTask.java:71)的com.sun.grizzly.util.AbstractThreadPool $ Worker.doWork(AbstractThreadPool.java:532)的com.sun.grizzly.util的java:59) java.lang.Thread.run(Thread.java:662)上的.AbstractThreadPool $ Worker.run(AbstractThreadPool.java:513)原因:java.lang.ClassNotFoundException:org.glassfish.web上的com.google.gson.Gson org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1369)的.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1519)... 另外33個

CNF異常表示您從CLASSPATH中缺少JAR。 嘗試將其放在WAR文件的WEB-INF / lib中,重新打包並重新部署。

如果遇到另一個CNF異常,請繼續添加JAR,直到它們消失。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM