【发布时间】: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 热部署功能有关。尝试禁用它,看看它是否有帮助(双击您的服务器以访问其设置,然后在“发布”下选择“从不自动发布”)。