在Stackoverflow上阅读有关同一错误的很多帖子。 但我仍然收到以下错误(Stacktrace):
Jul 31, 2014 3:08:54 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet TEST_Authenticate threw exception
java.lang.ClassNotFoundException: com.google.gson.Gson
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at TEST_Authenticate.doGet(TEST_Authenticate.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:770)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:744)
第70行在我的代码中如下:
out.println(new Gson().toJson(TESTAuthenticate("myemail@mydomain.com")));
我正在使用Netbeans,这是我项目的结构。
我已将JAR包含在我的服务器lib
文件夹中,如上图所示。
有人在this post回答“您是否已将jar添加到您的webapp的/ WEB-INF / lib文件夹中?”但是,我没有在{{1}中看到lib
文件夹如上图所示。我想知道我做错了什么?
更新了显示WEB-INF
答案 0 :(得分:1)
我从未使用过NetBeans,但我认为你必须在Tomcat引擎本身的内部类路径和应用程序的类路径之间做出改变。 Tomcat将其分离,因此Web应用程序不需要使用Tomcat使用的相同版本的库。 是不是还有另一种方法来定义项目与gson库的依赖关系? F.E.使用maven依赖项并生成项目文件。
我注意到第二件事:gson-2.2.4-javadoc.jar的内容是什么?它包含类或只是javadoc html文件。
通常在构建war文件(使用maven)时,这些依赖项将被添加到生成的.war文件中的WEB-INF / lib文件夹中。