问题标签 [servletexception]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jsf - 找不到属性的 javax.el.ELException
我有以下html文件:
LoginBean 如下:
尽管 LoginBean 上存在 loginPro 方法,但我仍继续收到以下消息:
javax.servlet.ServletException:/index.xhtml:在类型 beans.LoginBean javax.faces.webapp.FacesServlet.service(FacesServlet.java:659) org.apache.tomcat.websocket.server.WsFilter 上找不到属性“loginPro”。 doFilter(WsFilter.java:52)
有什么意见吗?
java - Tomcat 将 HttpServlet 抛出的 ServletExceptions 记录为“严重”,尽管以推荐的方式进行处理
问题描述
当我的 HttpServlet 抛出 ServletException 时,Tomcat 正在记录一条包含堆栈跟踪的 SEVERE 消息,尽管它已正确重定向到 web.xml 中的另一个 HttpServlet。
Tomcat 使用堆栈跟踪记录以下消息:
我做了什么?
首先,MyHttpServlet 抛出一个 ServletException,在它的 doGet() 方法中包装了一个 CustomException(Exception 的子类):
然后,抛出的CustomException被重定向到MyServletExceptionHandler(映射到位置'/MyServletExceptionHandler'。这个重定向在web.xml中以如下方式定义:
最后,MyServletExceptionHandler 接收到抛出的异常并打印出来:
这会导致预期的“MyServletExceptionHandler 捕获 Throwable: CustomException”打印,所以这确实有效,但不知何故 Tomcat 也会记录上面提到的 SEVERE 消息,包括该堆栈跟踪。这弄乱了我的日志记录。
我为什么要这样?
根据 Java Beat 的OCEJWCD 6 Mock Exam – 4,上述方法是处理 Servlet 中的异常处理的正确方法。问题 29 状态(剧透警告:粗体为正确答案):
如果发生从 java.lang.Exception 扩展的业务异常,以下哪项是向客户端发送错误页面的明智方法?
- 捕获异常并使用 RequestDispatcher 将请求转发到错误页面
- 不要捕获异常并在 web.xml 中定义“异常到错误页面”映射
- 捕获异常,将其包装到 ServletException 中并在 web.xml 中定义“业务异常到错误页面”映射
- 捕获异常,将其包装到 ServletException 中,并在 web.xml 中定义 'ServletException to error-page' 映射
- 什么都不做,servlet容器会自动发送一个默认的错误页面
第三个答案(标记为正确)清楚地表明我重新引导异常的方式是一个明智的解决方案。
进一步讨论材料
我在此页面上找到了以下引用(来自 CodeRanch.com 的 Tom Holloway 的 10-2-2012)
实际上,ServletException 在 webapp 中无处可去,因此让它出现在主控制台上并没有那么不合理,因为它表明应用程序本身没有处理问题。
事实上,Javadocs 是这样描述 ServletException 构造函数的:
“用指定的消息构造一个新的 servlet 异常。该消息可以写入服务器日志和/或显示给用户。”
请注意,它明确表示服务器日志。
服务器可以在这里以多种方式参与。首先,您应该能够在 web.xml 中定义一个通用异常处理程序,以允许应用程序处理异常,该处理程序不仅可以记录到应用程序日志,还可以确定应该采取什么恢复操作(如果有)采取(更通用的服务器代码无法做到的事情)。其次,您可以定义一个自定义错误页面,在这种情况下,Tomcat 将捕获 ServletException 并调度该页面。但是请注意,操作词是 page。与登录屏幕一样,这些页面直接从 Tomcat 调用,因此无法通过 servlet 进行路由。换句话说,使用 HTML 或 JSP,而不是 Struts 或 JSF。
然而,底线是抛出 ServletExceptions 是糟糕的应用程序设计的标志。这意味着某人太懒或太匆忙而无法正确处理问题。与此相比,记录错误的位置是次要的。
这句话让我质疑 Java Beat 的 OCEJWCD 模拟考试(上面提到过)和我自己的解决方案作为良好实践。你认为业务异常应该由另一个 Servlet 处理吗?如果是这样,您认为 Servlet 容器 (Tomcat) 是否应该记录这些异常的堆栈跟踪?如果没有,那么最佳做法是什么?
最后的评论
- 抛出 RuntimeExceptions 而不是 ServletExceptions 会导致相同的 SEVERE 日志。
- 此 Bitbucket 存储库提供了该问题的一个工作示例。
java - 异常中的Spring mvc空servlet名称
我在 spring mvc 中有下一个问题。
这是我要测试的控制器中的方法:
弹簧配置文件
网络 XML
测试
我在控制器中有更多方法和更多测试,但只有 1 不起作用。我有以下例外:
javax.servlet.ServletException:无法在名称为“”的 servlet 中解析名称为“组”的视图
为什么servlet名称为空?当我运行我的应用程序时,控制器中的 getGroups() 方法工作正常,但没有通过测试。
当我将视图解析器从 ftl 更改为 jsp
它与此视图解析器完美配合。
jsp - ServletException:tmpFile.renameTo(classFile) 失败
在将战争部署到 JBOSS 7.1.0 之后,我遇到了下面提到的异常。错误信息
'[ServletException in:/WEB-INF/modules/pages/SomeJspPage.jsp] tmpFile.renameTo(classFile) 失败'
显示在 jsp 页面中,并且在 server.log 上生成以下异常
发现当 Jboss 服务器重新启动时,该特定页面的问题得到解决,但可能涉及任何其他 jsp 页面。
谁能知道如何解决这个问题?
servlets - Netbeans 中的 Servlet 异常
我在 JSP 中的登录表单是:
我的 Servlet 是
这是我的 Web.xml
我收到错误 HTTP 状态 404说明请求的资源不可用
**或者我收到错误 HTTP 状态 500 ** 说明 java.servlet.ServletException: Wrapper could not find servlet p1.cust_care
如果有人有解决方案通知
java - 尝试运行 servlet 时出现 Servlet 异常
我是 servlet 的新手。我正在低于 sevlets 异常。
我的 web.xml 代码。
调用此 servlet 的 Html 表单。
我得到的例外。
根本原因。
最后一天类似的代码工作正常。但我也在使用 git SVN,我用相同的代码设置了一个创建新项目。但它不工作。我也下载了一些样本,但没有工作。
这是我的 LoginServlet 类。它位于 JavaResources->src-mypackage
jsp - renderURL 在 MVCPortlet jsp 页面上不起作用
嗨,我在 liferay 上构建了一个 MVCPortlet。我使用了一个 view.jsp,它使用 renderURL 指向另外两个 jsp 页面,但是每当我单击两个链接之一时,我都会在 eclipse 控制台中遇到异常。
这是portlet的view.jsp的代码
我还有两个文件 addNewSite.jsp 和 listWebSites.jsp 位于 portlet 项目的同一目录中
这是堆栈跟踪。
java - Etat HTTP 500 - javax.servlet.ServletException:javax.servlet.jsp.JspException:找不到 ActionMappings 或 ActionFormBeans 集合
我是 Struts 的新手,我遵循有关如何创建 Struts Web 应用程序的教程。这是我创建的文件。
web.xml
Struts-config.xml
索引.jsp
登录操作.java
登录表单.java
但是在运行时,出现以下错误
Etat HTTP 500 - javax.servlet.ServletException:javax.servlet.jsp.JspException:找不到 ActionMappings 或 ActionFormBeans 集合
编辑:完整的堆栈跟踪
我用谷歌搜索并尝试了所有提出的解决方案,但错误仍然存在。任何想法请。
PS:我使用 Struts 1.1
jakarta-ee - HTTP 500 javax.servlet.ServletException:找不到文件
我正在开发一个 J2EE 应用程序,它在从 Eclipse 运行时运行良好,但是当我将它部署到 tomcat 上时出现以下异常,我不明白出了什么问题,因为我需要刷新几次,直到页面显示
(eclipse在尝试导出war时返回空文件,所以我通过在tomcat/webapps/我的项目中复制WebContent中的所有文件进行部署,并在我的WEB-INF中复制类)
menu_dashboard_top.jsp 在 WebContent 中,它不是一个 servlet,只是一个 jsp 页面,其中包含我在所有网页中包含的菜单
我已经在 web.xml 中映射了我的所有 servlet。这是我的 web.xml 文件
java - Apache Tomcat Servlet - 线程“主”java.lang.ClassFormatError 中的异常
我正在尝试在 Apache Tomcat 服务器中运行 java.class 文件。我使用 Maven 构建。
我使用以下命令:
这是错误:
还有我的 Java 版本:
我已经阅读了几个关于这个错误的帖子,但到目前为止我还没有成功解决这个问题。任何帮助将不胜感激!