`
uule
  • 浏览: 6311509 次
  • 性别: Icon_minigender_1
  • 来自: 一片神奇的土地
社区版块
存档分类
最新评论

问题总结

 
阅读更多

1、javax.servlet.jsp.JspException: No getter method for property agentname of bean

可能是from的action设置问题!

<html:form action="/amendmentReport" styleId="form1" styleClass="x-form">

 

2、Unknown entity

原因有两个:

a、导包错误

import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import org.hibernate.annotations.Entity;//这是就出问题了哦

@Entity
@Table(name="test_person")
public class Person implements Serializable

 后面修改了引入的Entity

import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import javax.persistence.Entity;//引入这个类就正确了

@Entity
@Table(name="test_person")
public class Person implements Serializable

 b、可能是没有在cfg文件中加入 *.hbm.xml造成的

 

3、Premature end of file. Nested exception: Premature end of file.

DOM4J 操作XML:

可能是这次读取前该文件已被读取过,但却没有关闭或其他原因造成的。

关闭或去掉上次读取即可!

 

4、hibernate配置文件中的schema相当于角色

<hibernate-mapping>
    <class name="com.techson.himsnanhwa.admin.hibernate.hbm.Eglmealtype" table="vw_mst_meal" schema="techson">

 

5、JSP

<c:forEach>之类的标签在进入JSP页面时就初始化,所以只可这样用:

 

<c:forEach items="${AIRPORSTLIST}" var="item" varStatus="i">
	airPortsArr.push({"cityCode":"${item.cities.cityCode}","countryName":"${applicationScope.CITYLISTBYCODEMAP[item.cities.cityCode].countryName}"});
</c:forEach>

 

items值不可为进入时才开始计算的值。

 

"${applicationScope.CITYLISTBYCODEMAP[item.cities.cityCode].countryName}"

  也是。

Map<String, Countries> tempMap = new HashMap<String, Countries>();

tempMap.put(cityCode, countr);

 

6、java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory

或Caused by: java.lang.UnsupportedClassVersionError: Bad version number in .class file

 

都是改变编译器即可!

 


 

 

java.lang.UnsupportedClassVersionError: Bad version number in .class file

出现这个问题时,要注意三个方面,网上都是简单的说了一下,现总结如下:

1、你所用的代码的jdk与目前的编译环境的jdk不一样,在当前工程上点右键选择"属性",进去后在Java build path进去修改即可。
2、进到当前工程的属性后,选择"Java Compiler"进去后将"Compiler Compliance level"改成当前jdk的版本
3、windows->preferences->MyEclipse Enterprise Workbench->Servers->Tomcat->选择一人版本的tomcat->JDK->修改成当前使用的 JDK版本即可。
将以上三步都修改好后,一开始所提的错误就没有了,如果有的时候不改第三个,这个错误会一直存在。

 

7、日期转换:

java.sql.Date d8 = new java.sql.Date(d6.getTime()); 

这样即可使日期格式为数据库中格式。

 

8、Unable to read TLD "META-INF/tld/tiles-jsp.tld" from JAR filer

 

 在Eclipse中用tomcat启动项目,出现Unable to read TLD "META-INF/tld/tiles-jsp.tld" from JAR filer 错误异常

 发现是在项目WEB-INF/lib文件夹中引入jsp-api.jar文件导致的,因为tomcat已经有这个jar包,在项目jar包中再次引入导致错误, 把它从WEB-INF/lib文件夹中删除,重新编译运行就好了.

 

 

 9.AJAX请求不进入后台,可能是因为缺少contentType

加上contentType: "application/json; charset=utf-8",  尝试下

 

 10.Multiple Contexts have a path of

在eclipse里面启动tomcat的时候,看到报错,multiple contexts have a path。需要把server.xml更正一下,去掉重复的context。

 

或者把工作空间里的server文件夹都删掉,重新添加服务器。

 

Eclipse: running on server error: “Multiple Contexts have a path of …”

D:\haihangwork\Servers\Tomcat v6.0 Server at localhost-config在工作空间下。

 

11 前台传到后台,非乱码,但保存到数据库里为乱码

解决:

在tomcat的server.xml里8080端口的Connector后加上:

URIEncoding="utf8"

即可

<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" URIEncoding="utf8"/>

 

 

 

 

 

2 异常 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的使用方法之一。

 

3 异常 No action instance for path /xxxx could be created 

 

可能原因 

 特别提示:因为有很多中情况会导致这个错误的发生,所以推荐大家调高你的web服务器的日志/调试级别,这样可以从更多的信息中看到潜在的、在试图创建action类时发生的错误,这个action类你已经在struts-config.xml中设置了关联(即添加了标签)。 

 

在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). 

拼写错误,这个也时有发生,并且不易找到,特别注意第一个字母的大小写和包的名称。 

 

在struts-config.xml中指定的action类没有继承自Stuts的Action类,或者你自定义的Action类没有继承自Struts提供的Action类。 

 

你的action类必须继承自Struts提供的Action类。 

 

你的classpath的问题。例如web server没有发现你的资源文件,资源文件必须在WEB-INF/classes/目录下。 

 

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

 

可能原因 

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

 

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

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

 

可能原因 

 不是标识Struts actionServlet的标记就是映射.do扩展名的标记或者两者都没有在web.xml中声明。 

 

在struts-config.xml中的打字或者拼写错误也可导致这个异常的发生。例如缺少一个标记的关闭符号/>。最好使用struts console工具检查一下。 

 

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

 

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

 

6 Exception 

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

 Probable Causes 

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

 

另外要注意可能你不经意使用的无主体的标记,如,这样web 服务器解析时就当作一个无主体的标记,随后使用的所有标记都被认为是在这个标记之外的,如又使用了

 

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

 

 

 

 

 

 

 

 

  • 大小: 54 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics