Java EE 项目找不到 Gson



我正在为类构建一个Java EE项目,并试图使用谷歌的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();
    }
}

. lang。NoClassDefFoundError: com/google/gson/gsonatedu.neumont.writingCenter.servlets.user.appointments.UserAppointmentsJsonServlet.doGet (UserAppointmentsJsonServlet.java: 35)(HttpServlet.java:734javax.servlet.http.HttpServlet.service (HttpServlet.java: 847)org.apache.catalina.core.StandardWrapper.service (StandardWrapper.java: 1539)在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java: 343)在org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java: 217)在edu.neumont.writingCenter.filters.SetRootFilter.doFilter (SetRootFilter.java: 43)在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java: 256)在org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java: 217)在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)调用(WebPipeline.java:98com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke (PESessionLockingStandardPipeline.java: 91)在org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java: 162)在org.apache.catalina.connector.CoyoteAdapter.doService (CoyoteAdapter.java: 330)在org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java: 231)在com.sun.enterprise.v3.services.impl.ContainerMapper.service (ContainerMapper.java: 174)在com.sun.grizzly.http.ProcessorTask.invokeAdapter (ProcessorTask.java: 828)在com.sun.grizzly.http.ProcessorTask.doProcess (ProcessorTask.java: 725)在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.java: 59)运行(ContextTask.java:71) atcom.sun.grizzly.util.AbstractThreadPool Worker.doWork美元(AbstractThreadPool.java: 532)在com.sun.grizzly.util.AbstractThreadPool Worker.run美元(AbstractThreadPool.java: 513)java.lang.Thread.run(Thread.java:662)google.gson. gson atorg.glassfish.web.loader.WebappClassLoader.loadClass (WebappClassLoader.java: 1519)在org.glassfish.web.loader.WebappClassLoader.loadClass (WebappClassLoader.java: 1369)…33更多

CNF异常意味着您的CLASSPATH中缺少一个JAR。试着把它放到WAR文件的WEB-INF/lib中,重新打包,然后重新部署。

如果您得到另一个CNF异常,继续添加jar,直到它们消失。

最新更新