【问题标题】:Getting HTTP Status 500 - Servlet execution threw an exception获取 HTTP 状态 500 - Servlet 执行引发异常
【发布时间】:2017-08-24 22:29:26
【问题描述】:

我创建了一个动态 Web 项目,其中输入参数来自 UI(Index.html) 并转到 servlet.java,但是当我尝试在 oAuthBean.java 文件中调用 auth 时,它给了我一个错误。

附加导航视图:

例外:

Aug 24, 2017 3:18:42 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [clientCredServlet1] in context with path [/Java-Credit-Offers-Example] threw exception [Servlet execution threw an exception] with root cause
java.lang.ClassNotFoundException: org.apache.http.HttpEntity
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167)
    at controller.clientCredServlet.doPost(clientCredServlet.java:45)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:94)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:502)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1132)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1539)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1495)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)

【问题讨论】:

  • 欢迎来到 SO。如果您向我们提供代码和项目配置等更多信息,我们才能提供帮助?

标签: java tomcat


【解决方案1】:

看起来您的 servlet 使用 Apache http 客户端(这是 org.apache.http.HttpEntity 的来源),但相应的依赖 jar 在生成的部署中不存在,很可能是因为 Maven 和 Eclipse WTP 插件之间缺少配置胶水它从 IDE 部署并运行您的 Tomcat。出现这种缺失是因为 Maven 项目似乎是在 Eclipse 之外创建的。

选项 1. 保持现状并进行快速修复(更糟)

尝试在你的项目根文件夹下执行:

mvn eclipse:eclipse -Dwtpversion=2.0

然后重新打开 Eclipse 工作区

根据Maven Eclipse plugin documentation,当wtpversion标志被显式设置时,maven为WTP插件(包括Tomcat插件)生成必要的工作区配置,以便让他们了解如何在Eclipse部署期间获取Maven依赖项

选项 2。依赖内置 IDE 与 Maven 的集成(最适合长期使用)

检查following great answer,它大致描述了为什么以及如何依赖内置 Eclipse Maven 支持。这种方法也消除了 IDE 部署中缺少依赖项的问题,但需要花费更多的精力将项目迁移到其中,但是当您的项目处于开始阶段时,这非常小

【讨论】:

    猜你喜欢
    • 2014-10-26
    • 2015-08-23
    • 2012-11-18
    • 2015-09-26
    • 2013-01-25
    • 2017-11-28
    • 2015-07-27
    • 2018-06-29
    • 1970-01-01
    相关资源
    最近更新 更多