您的位置:首页 > 编程语言 > Java开发

基于Struts+Hibernate开发过程中遇到的错误

2014-05-18 13:22 357 查看
1.import javax.servlet.http.HttpServletRequest 导入包出错

导入包出错,通常是包未引入,HttpServletRequest包是浏览器通过http发出的请求, 需要将tomcat/lib 目录下的 servlet-api.jar导入。但是导入后仍然不行,重启eclipse也无法让他生效
最后通过 project -clean来生效的。

2.JSP界面中加入了form标签后就报错



解决办法:将tomcat/lib目录下的el-api,ecj-4.3.1jre拷贝过来了

3.使用<c:forEach>标签,报错 Failed to load or instantiate TagLibraryValidator class



首先在jsp界面开头添加文件
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

然后在工程目录下WEB-INF/lib目录下添加
servlet-api.jar和standard.jar

4.Abandoned connection cleanup thread] but has failed to stop it. This is very
likely to create a memo
每次启动tomcat,没有关闭就启动,tomcat报内存泄露。解决就是关闭Eclipse,重启电脑。之后每次启动tomcat都是关闭后再启动。

5.使用MySQL数据库。root作为连接名,连接一段时间后出现连接被拒绝的情况
默认root用户不支持远程控制,在mysql控制台更改了root权限,仍然不起作用。最后使用了 navicat(mysql 可视化工具)创建了一个新用户,重新配置连接。

6.数据库表a,前台向a表写入一条数据,立即查询,发现没有表a没有更新。而查看数据库服务器中的表a,数据已经更新。但在myeclipse中重新连接数据库后。再查询时,数据得到更新。
查询方法是使用hibernate自动生成的dao
public List findByProperty(String propertyName, Object value) {

log.debug("finding Product instance with property: " + propertyName

+ ", value: " + value);

try {

String queryString = "from Product as model where model."

+ propertyName + "= ?";

Query queryObject = getsession().createQuery(queryString);

queryObject.setParameter(0, value);

return queryObject.list();

} catch (RuntimeException re) {

log.error("find by property name failed", re);

throw re;

}

}

问题就是出现在session上。
hibernate框架操作数据库是通过org.hibernate.Session来实现的。而Session是由org.hibernate.SessionFactory来管理的。
Configuration conf=new Configuration().configure();//需要每次重新创建配置连接
org.hibernate.SessionFactory sessionFactory=conf.buildSessionFactory();
Session session=sessionFactory.openSession();

而自动生成的dao文件中getsession()方法中只有
public class BaseHibernateDAO implements IBaseHibernateDAO {

public Session getSession() {

return HibernateSessionFactory.getSession();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: