我创建了一个动态 Web 项目,其中输入参数来自 UI(Index.html) 到 servlet.java
,但是当我尝试在 oAuthBean.java 中调用 auth 时
文件给我一个错误。
附加导航 View :
异常(exception):
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)
最佳答案
看起来您的 servlet 使用 Apache http 客户端(这是 org.apache.http.HttpEntity
的来源),但相应的依赖项 jar 不存在于生成的部署中,很可能是因为有Maven 和 Eclipse WTP 插件之间缺乏配置胶水,它部署到 Tomcat 并从 IDE 运行它。出现这种情况是因为 Maven 项目似乎是在 Eclipse 之外创建的。
选项 1. 保持原样并快速修复(更糟)
尝试在您的项目根文件夹下执行:
mvn eclipse:eclipse -Dwtpversion=2.0
然后重新打开 Eclipse 工作区
根据 Maven Eclipse plugin documentation当显式设置 wtpversion
标志时,maven 会为 WTP 插件(包括 Tomcat 插件)生成必要的工作区配置,以便让它们了解如何在从 Eclipse 部署期间获取 Maven 依赖项
选项 2. 依赖与 Maven 的内置 IDE 集成(最适合长期使用)
检查 following great answer其中,在某种程度上,描述了为什么以及如何依赖内置 Eclipse Maven 支持。这种方法也消除了 IDE 部署中缺少依赖项的问题,但是需要更多的努力将项目迁移到,但是当您的项目处于开始阶段时,这是非常小的
关于java - 获取 HTTP 状态 500 - Servlet 执行抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45871854/