`
lijun87
  • 浏览: 268323 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Jsp常见异常(转)

阅读更多
异常

javax.servlet.jsp.JspException: Cannot retrieve mapping for action /Login (/Login是你的action名字)  

可能原因

action没有再struts-config.xml 中定义,或没有找到匹配的action,例如在JSP文件中使用 <html:form action="Login.do".将表单提交给

Login.do处理,如果出现上述异常,请查看struts-config.xml中的定义部分,有时可能是打错了字符或者是某些不符合规则,可以使用struts console工具来检查。

-----------------------------------------------------------------------------------------------------------------

异常

org.apache.jasper.JasperException: Cannot retrieve definition for form bean null

可能原因       

这个异常是因为Struts根据struts-config.xml中的mapping没有找到action期望的form bean。大部分的情况可能是因为在form-bean中设置的name属性和action中设置的name属性不匹配所致。换句话说,action和form都应该各自有一个name属性,并且要精确匹配,包括大小写。这个错误当没有name属性和action关联时也会发生,如果没有在action中指定name属性,那么就没有name属性和action相关联。当然当action制作某些控制时,譬如根据参数值跳转到相应的jsp页面,而不是处理表单数据,这是就不用name属性,这也是action的使用方法之一。

-----------------------------------------------------------------------------------------------------------------

异常

No action instance for path /xxxx could be created

可能原因

特别提示:因为有很多中情况会导致这个错误的发生,所以推荐大家调高你的web服务器的日志/调试级别,这样可以从更多的信息中看到潜在的、在试图创建action类时发生的错误,这个action类你已经在struts-config.xml中设置了关联(即添加了<action>标签)。在struts-config.xml中通过action标签的class属性指定的action类不能被找到有很多种原因,例如:定位编译后的.class文件失败。Failure to place compiled .class file for the action in the classpath (在web开发中,class的的位置在r WEB-INF/classes,所以你的action class必须要在这个目录下。例如你的action类位于WEB-INF/classes/action/Login.class,那么在struts-config.xml中设置action的属性type时就是action.Login).拼写错误,这个也时有发生,并且不易找到,特别注意第一个字母的大小写和包的名称。

-----------------------------------------------------------------------------------------------------------------

异常

javax.servlet.jsp.JspException: No getter method for property username of bean org.apache.struts.taglib.html.BEAN

可能原因

没有位form bean中的某个变量定义getter 方法

这个错误主要发生在表单提交的FormBean中,用struts标记<html:text property=”username”>时,在FormBean中必须有一个getUsername()方法。注意字母“U”。

-----------------------------------------------------------------------------------------------------------------

异常

java.lang.NoClassDefFoundError: org/apache/struts/action/ActionForm

可能原因

这个错误主要发生在在classpath中找不到相应的Java .class文件。如果这个错误发生在web应用程序的运行时,主要是因为指定的class文件不在web server的classpath中(/WEB-INF/classes 和 /WEB-INF/lib)。在上面的错误中,原因是找不到ActionForm类。

-----------------------------------------------------------------------------------------------------------------

异常

javax.servlet.jsp.JspException: Exception creating bean of class org.apache.struts.action.ActionForm: {1}

可能原因

Instantiating Struts-provided ActionForm class directly instead of instantiating a class derived off ActionForm. This might occur implicitly if you specify that a form-bean is this Struts ActionForm class rather than specifying a child of this class for the form-bean.Not associating an ActionForm-descended class with an action can also lead to this error.

-----------------------------------------------------------------------------------------------------------------

异常

javax.servlet.jsp.JspException: Cannot find ActionMappings or ActionFormBeans collection

可能原因

不是标识Struts actionServlet的<servlet>标记就是映射.do扩展名的<sevlet-mapping>标记或者两者都没有在web.xml中声明。在struts-config.xml中的打字或者拼写错误也可导致这个异常的发生。例如缺少一个标记的关闭符号/>。最好使用struts console工具检查一下。

另外,load-on-startup必须在web.xml中声明,这要么是一个空标记,要么指定一个数值,这个数值用来表servlet运行的优先级,数值越大优先级越低。

还有一个和使用load-on-startup有关的是使用Struts预编译JSP文件时也可能导致这个异常。

-----------------------------------------------------------------------------------------------------------------

异常

java.lang.NullPointerException at org.apache.struts.util.RequestUtils.forwardURL(RequestUtils.java:1223)

可能原因

在struts-config.xml中的forward元素缺少path属性。例如应该是如下形式:

<forward name="userhome" path="/user/userhome.jsp"/>

-----------------------------------------------------------------------------------------------------------------

异常

javax.servlet.jsp.JspException: Cannot find bean org.apache.struts.taglib.html.BEAN in any scope

 

Probable Causes

试图在Struts的form标记外使用form的子元素。这常常发生在你在</html:form>后面使用Struts的html标记。

另外要注意可能你不经意使用的无主体的标记,如<html:form … />,这样web 服务器解析时就当作一个无主体的标记,随后使用的所有

<html>标记都被认为是在这个标记之外的,如又使用了<html:text property=”id”>

还有就是在使用taglib引入HTML标记库时,你使用的prefix的值不是html。

-----------------------------------------------------------------------------------------------------------------

异常

javax.servlet.jsp.JspException: Missing message for key xx.xx.xx

Probable Causes

这个key的值对没有在资源文件ApplicationResources.properties中定义。如果你使用eclipse时经常碰到这样的情况,当项目重新编译时,

eclipse会自动将classes目录下的资源文件删除。

资源文件ApplicationResources.properties 不在classpath中应将资源文件放到 WEB-INF/classes 目录下,当然要在struts-config.xml中

定义)

-----------------------------------------------------------------------------------------------------------------

异常

Cannot find message resources under key org.apache.struts.action.MESSAGE

可能原因

很显然,这个错误是发生在使用资源文件时,而Struts没有找到资源文件。

Implicitly trying to use message resources that are not available (such as using empty html:options tag instead of specifying

the options in its body -- this assumes options are specified in ApplicationResources.properties file)

XML parser issues -- too many, too few, incorrect/incompatible versions

-----------------------------------------------------------------------------------------------------------------

异常

Strange and seemingly random characters in HTML and on screen, but not in original JSP or servlet.

可能原因

混和使用Struts的html:form标记和标准的HTML标记不正确。

使用的编码样式在本页中不支持。

-----------------------------------------------------------------------------------------------------------------

异常

"Document contained no data" in Netscape

No data rendered (completely empty) page in Microsoft Internet Explorer

可能原因

使用一个Action的派生类而没有实现perform()方法或execute()方法。在Struts1.0中实现的是perform()方法,在Struts1.1中实现的是

execute()方法,但Struts1.1向后兼容perform()方法。

但你使用Struts1.1创建一个Action的派生类,并且实现了execute()方法,而你在Struts1.0中运行的话,就会得到"Document contained no

data" error message in Netscape or a completely empty (no HTML whatsoever) page rendered in Microsoft Internet Explorer.”的

错误信息。

---------------------------------------------------------------------------------------------------------------------------

异常

ServletException: BeanUtils.populate

解决方案

在用Struts上传文件时,遇到了javax.servlet.ServletException: BeanUtils.populate异常。

我的ActionServlet并没有用到BeanUtils这些工具类。后来仔细检查代码发现是在jsp文件里的form忘了加enctype=&quot;multipart/form-

data&quot; 了。所以写程序遇到错误或异常应该从多方面考虑问题存在的可能性,想到系统提示信息以外的东西。

----------------------------------------------------------------------------------------------------------------------------

1. 定义Action后, 如果指定了name, 那么必须要定义一个与它同名的FormBean才能进行form映射.

2. 如果定义Action后, 提交页面时出现 "No input attribute for mapping path..." 错误, 则需要在其input属性中定义转向的页面.

3. 如果插入新的数据时出现 "Batch update row count wrong:..." 错误, 则说明XXX.hbm.xml中指定的key的类型为原始类型(int, long),

因为这种类型会自动分配值, 而这个值往往会让系统认为已经存在该记录, 正确的方法是使用java.lang.Integer或java.lang.Long对象.

4. 如果插入数据时出现 "argument type mismatch" 错误, 可能是你使用了Date等特殊对象, 因为struts不能自动从String型转换成Date型,

所以, 你需要在Action中手动把String型转换成Date型.

5. Hibernate中, Query的iterator()比list()方法快很多.

6. 如果出现 "equal symbol expected" 错误, 说明你的strtus标签中包含另一个标签或者变量, 例如:

<html:select property="test" onchange="<%=test%>"/>

或者

<html:hidden property="test" value="<bean:write name="t" property="p"/>"/>

这样的情况...

---------------------------------------------------------------------------------------------------------------------------

错误:

Exception in thread "main" org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update

原因与解决:

     因为Hibernate Tools(或者Eclipse本身的Database Explorer)生成*.hbn.xml工具中包含有catalog="***"(*表示数据库名称)这样的

属性,将该属性删除就可以了

---------------------------------------------------------------------------------------------------------------------------

错误:

org.hibernate.ObjectDeletedException: deleted object would be re-saved by cascade (remove deleted object from associations)

原因与解决:

方法1 删除Set方的cascade

方法2 解决关联关系后,再删除

方法3 在many-to-one方增加cascade 但值不能是none

最后一招:

检查一下hashCode equals是否使用了id作为唯一标示的选项了;我用uuid.hex时是没有问题的;但是用了native,就不行了,怎么办?删除啊



----------------------------------------------------------------------------------------------------------------------------

问题:

今天用Tomcat 5.5.12,发现原来很好用的系统不能用了,反复测试发现页面中不能包含 taglib,否则会出现以下提示:

HTTP Status 500 -type Exception report

Message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: /index.jsp(1,1) Unable to read TLD "META-INF/tlds/struts-bean.tld" from JAR file

"file:*****/WEB-INF/lib/struts.jar":

原因:

更新了工程用的lib文件夹下的jar,发布时也发布了servlet.jar和jsp-api.jar。

解决:

把jsp-api.jar删除就解决这个问题了。

-----------------------------------------------------------------------------------------------------------------------------

错误: java.lang.NullPointerException

原因: 发现 dao 实例、 manage 实例等需要注入的东西没有被注入(俗称空指针异常)

解决:这个时候,你应该查看日志文件;默认是应用服务器的 log 文件,比如 Tomcat 就是 [Tomcat 安装目录 ]/logs ;你会发现提示你:

可能是:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sf' defined in ServletContext

resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception is

org.hibernate.HibernateException: could not configure from URL: file:src/hibernate.cfg.xml

org.hibernate.HibernateException: could not configure from URL: file:src/hibernate.cfg.xml

……………………….

Caused by: java.io.FileNotFoundException: src\hibernate.cfg.xml

可能是:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in

ServletContext resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception is

org.hibernate.MappingException: Resource: com/mcc/coupon/model/UserRole.hbm.xml not found

org.hibernate.MappingException: Resource: com/mcc/coupon/model/UserRole.hbm.xml not found

然后你就知道原因是因为配置文件的解析出了错误,这个通过 Web 页面是看不出来的。

更多的是持久化影射文件出的错误;导致了没有被解析;当然你需要的功能就无法使用了。

----------------------------------------------------------------------------------------------------------------------------

错误:

StandardWrapperValve[action]: Servlet.service() for servlet action threw exception

javax.servlet.jsp.JspException: Cannot retrieve mapping for action /settlementTypeManage

或者:

     type Status report

     message Servlet action is not available

     description The requested resource (Servlet action is not available) is not available.

原因: 同 上

----------------------------------------------------------------------------------------------------------------------------

错误

StandardWrapperValve[jsp]: Servlet.service() for servlet jsp threw exception

java.lang.ClassNotFoundException: org.apache.struts.taglib.bean.CookieTei

界面错误具体描述:

org.apache.jasper.JasperException: Failed to load or instantiate TagExtraInfo class: org.apache.struts.taglib.bean.CookieTei


     原因与解决:

   <方案一>你的“html:”开头的标签没有放在一个<html:form>中

      <方案二>重新启动你的应用服务器,自动就没有这个问题了
分享到:
评论

相关推荐

    Jsp中常见异常解答

    ### JSP中常见异常解答 在Java Server Pages (JSP) 开发过程中,开发者经常会遇到各种各样的异常情况。正确理解和处理这些异常对于确保应用程序的稳定性和用户体验至关重要。本文将详细解析JSP开发中常见的异常及其...

    jsp常见异常总结 希望有所帮助

    **JSP(Java Server Pages)常见异常总结** 在开发基于JSP的应用程序时,开发者经常会遇到各种异常。这些异常可能是由于语法错误、运行时问题、配置错误或是与服务器交互过程中的其他问题引起的。理解并有效地处理...

    jsp常见异常

    ### JSP常见异常详解 在Java Server Pages (JSP) 的开发过程中,遇到各种异常是不可避免的。这些异常不仅能够揭示代码中的错误,还能帮助开发者理解应用程序的运行环境配置是否正确。下面,我们将深入探讨几个常见...

    java和jsp编程常见到的异常解决方案

    这是关于java和jsp编程常见到的异常解决方案,是很关键的一个知识!

    jsp问题处理集,解决大多数jsp的常见问题

    在Java服务器页面(JSP)开发中,遇到各种问题是很常见的。这个"jsp问题处理集"显然旨在为初学者提供一个宝贵的资源库,帮助他们解决在实践中遇到的问题。以下是JSP的一些关键知识点,以及可能遇到的常见问题及其...

    jsp转pdf项目示例

    【JSP转PDF项目示例】是一个典型的IT项目,它主要关注的是如何将基于Java Server Pages(JSP)和HTML的网页内容转换成便于离线阅读和打印的PDF格式。这个项目提供了一种方法,使得用户能够将网页内容保存为PDF文档,...

    jsp实现将office文件转换成PDF格式

    在IT行业中,转换文件格式是一项常见的任务,尤其在办公自动化领域。本篇文章将详细探讨如何使用JSP(Java Server Pages)技术将Office文件,如Word文档(.doc或.docx)、PowerPoint演示文稿(.ppt或.pptx)等转换为...

    struts常见异常及处理

    ### Struts 常见异常及处理 #### 1. javax.servlet.ServletException: Must specify type attribute if name is specified - **异常描述**:当在 JSP 页面中使用自定义标签时,如果标签中定义了 `name` 属性,则...

    jsp考试面试常见考点整理

    ### JSP考试面试常见考点详解 #### 一、Servlet与CGI的区别 Servlet与CGI(Common Gateway Interface)作为两种不同的Web应用程序技术,在处理客户端请求的方式上有显著差异。 **Servlet**: - **基于Java**:...

    JSP学习电子教案JSP

    常见的JSP动作有: - `jsp:include`:动态地包含另一个页面。 - `jsp:forward`:将请求转发给另一个页面。 - `jsp:params`:传递参数给包含或转发的页面。 - `&lt;jsp:useBean&gt;`:创建或查找JavaBean,并将其绑定到页面...

    JSP语法中文版(jsp基础语法)

    常见动作有: - **jsp:include**:动态地包含另一个文件,与include指令不同,它可以传递参数。 - **jsp:forward**:将请求转发到另一个页面。 - **jsp:param**:为动作传递参数。 - **jsp:useBean**:查找或创建一...

    JAVA,JSP,SERVLET课件及一些常见问题解决方法

    单元练习)"和"downFile"这些文件可能是实际的Java或JSP代码示例,用于演示如何在JSP中使用JavaBean进行客户数据访问、文件上传、数据库操作等常见任务。 学习这些内容可以帮助开发者构建完整的Web应用程序,包括...

    Jsp技术大全 Jsp完全教程

    - JSTL是一套标准的标签库,提供了处理常见任务(如迭代、条件判断、XML操作等)的标签,减少了对脚本元素的依赖。 8. **MVC模式**: - JSP通常与Servlet结合使用,实现Model-View-Controller模式。Servlet处理...

    jsp多表增删改查翻页_jsp_jspmvc_

    5. **异常处理**:在JSP中如何优雅地捕获和处理异常,提供友好的错误信息。 6. **数据库设计**:涉及多个表的增删改查,意味着需要了解数据库的关系模型,以及如何通过SQL语句进行多表操作。 7. **安全性**:虽然...

    jsp页面人民币小写转大写

    "jsp页面人民币小写转大写"这个话题就是其中之一。在处理金融数据时,为了保证准确性和规范性,通常会将金额从小写的阿拉伯数字转换为大写的汉字数字,这在财务报表、发票等正式文档中尤其常见。在JSP(JavaServer ...

    jsp应用开发详解 jsp电子书

    10. **错误处理和异常处理**:学习如何在JSP中设置错误页面,处理运行时异常,以及使用try-catch-finally语句块进行异常处理。 11. **JSP与JavaBean**:了解JavaBean的规范,如何在JSP中使用JavaBean来封装数据和...

    jsp新闻管理系统

    5. **异常处理**: 系统应能处理可能出现的错误和异常,如数据库连接失败、SQL执行异常等,提供合适的错误提示。 **开发流程** 1. **需求分析**: 明确新闻管理系统的功能需求,如新闻发布、分类管理、评论功能等。 ...

    jsp中文手册.chm & JSP中文入门帮助手册.CHM

    帮助手册可能涵盖了JSP开发中常见的问题,例如内存泄漏、线程安全问题、编码问题等,并提供了相应的解决方案。 这两份手册对于JSP的学习者来说是非常宝贵的资源,它们不仅提供了理论知识,还包含了大量的实例和...

    JSP实现留言板功能

    在Web开发中,JavaServer Pages(JSP)是一种常见的技术,用于构建动态网页。本教程将深入探讨如何使用JSP来实现一个简单的留言板功能,这通常包括用户提交留言、查看历史留言以及管理员进行管理等多个方面。 1. **...

    Jsp链接Mysql+Jsp注册表单(学习笔记).

    在Web开发中,JavaServer Pages(JSP)和MySQL数据库的结合是常见的技术栈,用于构建动态、数据驱动的网站。本学习笔记将详细讲解如何使用JSP连接MySQL数据库,并创建一个简单的用户注册表单。 1. **JSP简介** JSP...

Global site tag (gtag.js) - Google Analytics