【问题标题】:javax.servlet.ServletException: Servlet.destroy() for servlet jsp threw exceptionjavax.servlet.ServletException:servlet jsp 的 Servlet.destroy() 抛出异常
【发布时间】:2014-10-06 02:41:17
【问题描述】:

有时我会在 Eclipse 上收到此错误:

Grave: Servlet jsp threw unload() exception
javax.servlet.ServletException: Servlet.destroy() for servlet jsp threw exception
    at org.apache.catalina.core.StandardWrapper.unload(StandardWrapper.java:1486)
    at org.apache.catalina.core.StandardWrapper.stopInternal(StandardWrapper.java:1823)
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
    at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5463)
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
    at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3913)
    at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:426)
    at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1345)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1530)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1540)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1540)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1519)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NoSuchFieldError: deferredExpression
    at org.apache.taglibs.standard.tag.common.core.ForEachSupport.release(ForEachSupport.java:178)
    at org.apache.jasper.runtime.TagHandlerPool.release(TagHandlerPool.java:165)
    at org.apache.jsp.Include.Apertura_jsp._jspDestroy(Apertura_jsp.java:45)
    at org.apache.jasper.runtime.HttpJspBase.destroy(HttpJspBase.java:60)
    at org.apache.jasper.servlet.JspServletWrapper.destroy(JspServletWrapper.java:478)
    at org.apache.jasper.compiler.JspRuntimeContext.destroy(JspRuntimeContext.java:317)
    at org.apache.jasper.servlet.JspServlet.destroy(JspServlet.java:354)
    at org.apache.catalina.core.StandardWrapper.unload(StandardWrapper.java:1465)
    ... 12 more

在 Ecplise 在控制台窗口上打印此内容后发生

ago 12, 2014 11:14:40 PM org.apache.catalina.core.StandardContext reload
Informazioni: Reloading Context with name [/Jeans2] has started
ago 12, 2014 11:14:40 PM org.apache.catalina.core.ApplicationContext log

我认为这意味着 Eclipse 正在尝试编译我的类等。 无论如何,我的项目在 eclipse 完成后停止工作,我得到了那个错误

我发现了一些类似的帖子,但我没有找到适合我的问题的解决方案。 根据其他帖子的解决方案,我做了这些事情:

1) 我的WEB-INF/lib文件夹下没有jstl jar文件

2) 我的 java 构建路径中没有重复的 jar 文件

有人遇到我的问题吗?

我发现了这个: 在运行时抛出此错误的主要原因是“您可能不小心(实际上是有意地)从类或接口中删除了一个字段(公共或受保护),并单独重新编译了已编辑的类或接口。 "

也许如果 eclipse 停止每 2 分钟重新编译一次我的项目,我就不会收到这个错误,对吧?我的意思是,实际上我的应用程序没有任何错误,对吗?

【问题讨论】:

  • 如果在重新加载 Web 应用程序的上下文后发生异常,我认为它与编译没有直接关系。如果您发现的是真的,我会说它与 eclipse 热部署功能有关。尝试禁用它,看看它是否有帮助(双击您的服务器以访问其设置,然后在“发布”下选择“从不自动发布”)。

标签: java jsp servlets jstl


【解决方案1】:

这似乎是 Eclipse Build Automatically 选项产生的问题。只需转到 Project/Build Automatically 将其关闭,然后选择它以取消选中它。在此之后,您必须通过右键单击它并选择 Build Project 选项来手动编译您的项目。

【讨论】:

  • 是的,如果我关闭“Eclipse Build Automatically 选项”我没有问题。我想要确定这是一个 Eclipse 问题,我想确保在服务器上部署我的项目时不会出现问题
  • 不,这不会在生产服务器中发生,除非您每 5 分钟在那里部署一次更改。
  • 谢谢。祝你有美好的一天:)
猜你喜欢
  • 2012-05-22
  • 1970-01-01
  • 2021-09-02
  • 1970-01-01
  • 2017-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多