- 浏览: 46153 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
airdream:
toeo 写道
# public class BaseActi ...
spring+hibernate+struts 自己总结出的方法。 -
toeo:
# public class BaseAction exten ...
spring+hibernate+struts 自己总结出的方法。 -
foxwise:
开源吧
Tapestry+Ibatis+Spring+ajax+css 写的Digg网站。效果不错! -
airdream:
tapestry 的缺点吧,但5.0改进了,没研究的
Tapestry+Ibatis+Spring+ajax+css 写的Digg网站。效果不错! -
airdream:
个人做的
Tapestry+Ibatis+Spring+ajax+css 写的Digg网站。效果不错!
- 1.地址栏中:http://localhost:8088/sshtest/user.do?act=register
- 报错:HTTP Status 404 - Servlet action is not available
- 原因是:struts-config.xml配置文件中的请求处理器类出错了(找不到类路径)
- <controller processorClass="com.xj.requestprocessor.MyProcessor"></controller>
- 解决办法:
- <controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor">
- </controller>
1.地址栏中:http://localhost:8088/sshtest/user.do?act=register 报错:HTTP Status 404 - Servlet action is not available 原因是:struts-config.xml配置文件中的请求处理器类出错了(找不到类路径) <controller processorClass="com.xj.requestprocessor.MyProcessor"></controller> 解决办法: <controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"> </controller>
- 2.报错 :javax.servlet.ServletException: Cannot find ActionMappings or ActionFormBeans collection
- 原因: 工程里面的struts包.有损坏或某些struts包没有存在.
- 解决办法:重新创建一个工程,并且导入struts,然后将导入的struts包copy到目前的工厂的
- WEB-INf/lib目录,重新部署,重新启动服务,就ok了
2.报错 :javax.servlet.ServletException: Cannot find ActionMappings or ActionFormBeans collection 原因: 工程里面的struts包.有损坏或某些struts包没有存在. 解决办法:重新创建一个工程,并且导入struts,然后将导入的struts包copy到目前的工厂的 WEB-INf/lib目录,重新部署,重新启动服务,就ok了
- 3.报错:java.lang.Long cannot be cast to java.lang.Integer
- Long 无法转化成Integer类型.
- 这个异常 经常出现在hinbernate分页查询的时候.
- 例如:
- 注: super.pageQuery(hql,null,null,null);调用了一个父类的一个封装方法.查询时候使用
- List list = this.getHibernateTemplate().executeFind(new HibernateCallback(){});
- /**
- * 查询所有用户记录总数
- */
- public Integer getUsersCount() {
- String hql = "select count(*) from Users";
- List list = super.pageQuery(hql, null, null, null);
- return (Integer) list.get(0);
- }
- 原因:
- 这里在Hibernate2.0之前版本list.get(0)返回的是Integer类型.
- 但是在Hibernate3.0以后版本list.get(0)返回的是Long类型.
- 所以在这里不可以由Long型强转成Integer类型.
- 解决办法:
- public Integer getUsersCount() {
- String hql = "select count(*) from Users";
- List list = super.pageQuery(hql, null, null, null);
- Number num = (Number) list.get(0);
- return num.intValue();
- }
- 注:java.lang.Number是Integer,Long的父类.
3.报错:java.lang.Long cannot be cast to java.lang.Integer Long 无法转化成Integer类型. 这个异常 经常出现在hinbernate分页查询的时候. 例如: 注: super.pageQuery(hql,null,null,null);调用了一个父类的一个封装方法.查询时候使用 List list = this.getHibernateTemplate().executeFind(new HibernateCallback(){}); /** * 查询所有用户记录总数 */ public Integer getUsersCount() { String hql = "select count(*) from Users"; List list = super.pageQuery(hql, null, null, null); return (Integer) list.get(0); } 原因: 这里在Hibernate2.0之前版本list.get(0)返回的是Integer类型. 但是在Hibernate3.0以后版本list.get(0)返回的是Long类型. 所以在这里不可以由Long型强转成Integer类型. 解决办法: public Integer getUsersCount() { String hql = "select count(*) from Users"; List list = super.pageQuery(hql, null, null, null); Number num = (Number) list.get(0); return num.intValue(); } 注:java.lang.Number是Integer,Long的父类.
- 4.报错:java.lang.NoSuchMethodError org.objectweb.asm.ClassVisitor.visit
- (IILjavalangString;LjavalangString;[LjavalangString;LjavalangString;)V.txt
- 原因: 由于某些Spring和Hibernate的版本问题,其中导入包的时候,某些jar包发生了冲突.
- 解决办法: 删除工程下面WEB-INF/lib/asm-2.2.3.jar,然后在MyEclipse中刷新工程,
- 再重新部署工程,然后重启 Tomcat.
4.报错:java.lang.NoSuchMethodError org.objectweb.asm.ClassVisitor.visit (IILjavalangString;LjavalangString;[LjavalangString;LjavalangString;)V.txt 原因: 由于某些Spring和Hibernate的版本问题,其中导入包的时候,某些jar包发生了冲突. 解决办法: 删除工程下面WEB-INF/lib/asm-2.2.3.jar,然后在MyEclipse中刷新工程, 再重新部署工程,然后重启 Tomcat.
- 5. 报错 : Servlet Action is not available
- (1). 将struts-config.xml文件中的
- <plug-in
- className="org.springframework.web.struts.ContextLoaderPlugIn">
- <set-property property="contextConfigLocation"
- value="/WEB-INF/applicationContext.xml" />
- </plug-in> 去掉
- (2).然后在web.xml文件中加上这段代码就可以了.
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>/WEB-INF/applicationContext.xml</param-value>
- </context-param>
- <servlet>
- <servlet-name>context</servlet-name>
- <servlet-class>
- org.springframework.web.context.ContextLoaderServlet
- </servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
5. 报错 : Servlet Action is not available
(1). 将struts-config.xml文件中的
<plug-in
className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/applicationContext.xml" />
</plug-in> 去掉
(2).然后在web.xml文件中加上这段代码就可以了.
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
- 6.报错:'sessionFactory' or 'hibernateTemplate' is required
- 原因: 在dao操作类中需要注入HibernateTemplate来创建sessionFactory.
- 或者直接注入sessionFactory.
- 错误的写法:
- <bean id="depsdao" class="com.xj.dao.impl.DepsDao"
- lazy-init="true">
- </bean>
- <bean id="userdao" class="com.xj.dao.impl.UsersDao"
- lazy-init="true">
- </bean>
- 解决办法:
- 要将这2个对象中的某一个注入到dao中.
- 第一种方法:
- <bean id="depsdao" class="com.xj.dao.impl.DepsDao"
- lazy-init="true">
- <property name="sessionFactory">
- <ref bean="sessionFactory" />
- </property>
- </bean>
- 第二种方法:
- <bean id="hibernateTemplate"
- class="org.springframework.orm.hibernate3.HibernateTemplate">
- <property name="sessionFactory" ref="sessionFactory"></property>
- </bean>
- <bean id="depsdao" class="com.xj.dao.impl.DepsDao"
- lazy-init="true">
- <property name="hibernateTemplate">
- <ref bean="hibernateTemplate" />
- </property>
- </bean>
6.报错:'sessionFactory' or 'hibernateTemplate' is required 原因: 在dao操作类中需要注入HibernateTemplate来创建sessionFactory. 或者直接注入sessionFactory. 错误的写法: <bean id="depsdao" class="com.xj.dao.impl.DepsDao" lazy-init="true"> </bean> <bean id="userdao" class="com.xj.dao.impl.UsersDao" lazy-init="true"> </bean> 解决办法: 要将这2个对象中的某一个注入到dao中. 第一种方法: <bean id="depsdao" class="com.xj.dao.impl.DepsDao" lazy-init="true"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> 第二种方法: <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <bean id="depsdao" class="com.xj.dao.impl.DepsDao" lazy-init="true"> <property name="hibernateTemplate"> <ref bean="hibernateTemplate" /> </property> </bean>
- 7.报错: java.lang.IllegalStateException: No WebApplicationContext found:
- no ContextLoaderListener registered?
- 原因: web.xml文件中的配置写错了
- 解决办法:在web.xml中加上
- <context-param>
- <param-name> contextConfigLocation </param-name>
- <param-value>
- /WEB-INF/classes/applicationContext.xml
- </param-value>
- </context-param>
- <servlet>
- <servlet-name> context </servlet-name>
- <servlet-class>
- org.springframework.web.context.ContextLoaderServlet
- </servlet-class>
- <load-on-startup> 1 </load-on-startup>
- </servlet>
7.报错: java.lang.IllegalStateException: No WebApplicationContext found: no ContextLoaderListener registered? 原因: web.xml文件中的配置写错了 解决办法:在web.xml中加上 <context-param> <param-name> contextConfigLocation </param-name> <param-value> /WEB-INF/classes/applicationContext.xml </param-value> </context-param> <servlet> <servlet-name> context </servlet-name> <servlet-class> org.springframework.web.context.ContextLoaderServlet </servlet-class> <load-on-startup> 1 </load-on-startup> </servlet>
- 8.报错:No bean named 'sessionFactory' is defined
- 错误可能原因1:
- 在web.xml中加载applicationContext.xml文件的时候没有加载成功,看你的路径是否 正确,
- 这个配置错误,服务器启动的时候不会报错
- 错误可能原因2:
- 没有删除asm-2.2.3.jar文件.一定要直接从磁盘目录删除.然后刷新工程,重新部署 重启服务.
8.报错:No bean named 'sessionFactory' is defined
错误可能原因1:
在web.xml中加载applicationContext.xml文件的时候没有加载成功,看你的路径是否 正确,
这个配置错误,服务器启动的时候不会报错
错误可能原因2:
没有删除asm-2.2.3.jar文件.一定要直接从磁盘目录删除.然后刷新工程,重新部署 重启服务.
- 9.报错:sessionFactory或者hibernateTemplate找不到
- 有的时候,我们明明就在dao中注入了sessionFactory或hibernate,但是还是总是报错,说
- sessionFactory或者hibernateTemplate找不到
- 下面这种情况会引发这种情况:
- 在struts中的formbean中的reset方法,往往我们用来初始化界面的一些显示值.
- 如一个注册,可能在这里先查询数据库,找到所有的部门信息,然后绑定在界面的下拉框中.
- 所以可能会在reset方法中调用业务层方法.(也有可能请求页面之前,先经过一个servlet或jsp,
- 在servlet里面调用业务层方法)
- 如果你在formbean中是这样写会报上面的错误:
- ApplicationContext ap = new FileSystemXmlApplicationContext(
- new String[] {
- "E:\\MyWorkPlace\\sshtest\\WebRoot\\WEB-INF\\applicationContext.xml",
- "E:\\MyWorkPlace\\sshtest\\WebRoot\\WEB-INF\\operatorbeans.xml",
- "E:\\MyWorkPlace\\sshtest\\WebRoot\\WEB-INF\\actionbeans.xml" });
- IUserService us = (IUserService) ap.getBean("userservice");
- 然后用us 直接调用方法.
- 原因: 在这里ApplicationContext ap = new FileSystemXmlApplicationContext(
- new String[] {});
- 启动的实际上是另外一个spring容器,而不是刚刚启动服务的时候创建的那个spring容器.
- 解决办法:
- 在reset方法中:
- ServletContext context = servlet.getServletContext();
- ApplicationContext app = (ApplicationContext) context.getAttribute
- (WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
- IDeptService ds = (IDeptService) app.getBean("deptservice");
- this.depList = ds.selectAllDeps();
- 注:servlet是struts框架中间的一个对象,保存了web容器的很多信息
- 那么之前是怎样设置进去的呢?
- // context.setAttribute(
- WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE,启动的时候创建的那个spring器);
9.报错:sessionFactory或者hibernateTemplate找不到 有的时候,我们明明就在dao中注入了sessionFactory或hibernate,但是还是总是报错,说 sessionFactory或者hibernateTemplate找不到 下面这种情况会引发这种情况: 在struts中的formbean中的reset方法,往往我们用来初始化界面的一些显示值. 如一个注册,可能在这里先查询数据库,找到所有的部门信息,然后绑定在界面的下拉框中. 所以可能会在reset方法中调用业务层方法.(也有可能请求页面之前,先经过一个servlet或jsp, 在servlet里面调用业务层方法) 如果你在formbean中是这样写会报上面的错误: ApplicationContext ap = new FileSystemXmlApplicationContext( new String[] { "E:\\MyWorkPlace\\sshtest\\WebRoot\\WEB-INF\\applicationContext.xml", "E:\\MyWorkPlace\\sshtest\\WebRoot\\WEB-INF\\operatorbeans.xml", "E:\\MyWorkPlace\\sshtest\\WebRoot\\WEB-INF\\actionbeans.xml" }); IUserService us = (IUserService) ap.getBean("userservice"); 然后用us 直接调用方法. 原因: 在这里ApplicationContext ap = new FileSystemXmlApplicationContext( new String[] {}); 启动的实际上是另外一个spring容器,而不是刚刚启动服务的时候创建的那个spring容器. 解决办法: 在reset方法中: ServletContext context = servlet.getServletContext(); ApplicationContext app = (ApplicationContext) context.getAttribute (WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE); IDeptService ds = (IDeptService) app.getBean("deptservice"); this.depList = ds.selectAllDeps(); 注:servlet是struts框架中间的一个对象,保存了web容器的很多信息 那么之前是怎样设置进去的呢? // context.setAttribute( WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE,启动的时候创建的那个spring器);
- 10.报错: org.apache.jasper.JasperException: $Proxy3 cannot be cast to
- com.xj.service.impl.RoleService
- java.lang.ClassCastException: $Proxy3 cannot be cast to com.xj.service.impl.RoleService
- 原因:很明显又是一个代理时候,强转错误:
- ServletContext context = servlet.getServletContext();
- ApplicationContext app = (ApplicationContext) context.getAttribute
- (WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
- IDeptService ds = (DeptService) app.getBean("deptservice");
- this.depList = ds.selectAllDeps();
- 就是这段示例代码中的 IDeptService ds = (DeptService) app.getBean ("deptservice");出错了
- 不能直接强转成接口的实现类,一定要转成接口.
- IDeptService ds = (IDeptService) app.getBean("deptservice");
发表评论
-
spring+hibernate+struts 自己总结出的方法。
2009-03-04 02:29 1357其实很简单,只需要两步: 1.在Web.xml文件中加入下面代 ... -
spring+hibernate+struts 整合的三种方法,我只用第三种可以。
2009-03-04 02:17 1076一.用spring的DelegatingRequestProc ... -
Spring Hibernate Struts
2008-12-16 20:22 959<?xml version="1.0&qu ... -
Tapestry+Ibatis+Spring+ajax+css 写的Digg网站。效果不错!
2007-02-09 22:42 3866Tapestry + Ibatis + Spring+ ... -
spring+velocity自动发送邮件
2007-02-09 22:26 19311.下载spring及velocity类库, email配置 ...
相关推荐
Spring4.0+Hibernate4.0+Struts2.3整合案例:实现增删改查。 ===================== application.xml: xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=...
一个spring+struts+hibernate的例子,是eclipse的工程,用tomcat5和mysql,文件夹下包含所有的源码和库,另外还有一个.sql的文件用于建立数据库。大家觉得它有什么不好,欢迎交流
一个简单的spring+struts2+hibernate+mybatis整合(数据库脚本放在项目资源文件的sql目录下) 因为没想好mvc用springmvc好,还是struts2好 所以没有整合进去
简单struts+spring+hibernate搭建,配置,适合初学者
搭建 Struts2+Spring+Hibernate 框架中的 Action 单元测试环境需要解决三个主要问题:如何测试 Action?如何解决 JPA 中的 Lazy 机制?如何做用户 Session 管理?通过使用 StrutsSpringTestCase 和 junit4.jar,可以...
Spring5.0.3 + Hibernate5.0.7 + Struts2.5.13全注解整合(SSH全注解整合)Spring5.0.3 + Hibernate5.0.7 + Struts2.5.13全注解整合(SSH全注解整合)Spring5.0.3 + Hibernate5.0.7 + Struts2.5.13全注解整合(SSH全注解...
DWR+Struts+spring+hibernate的订货系统,自己添加的dwr功能
《图书管理系统spring+struts+hibernate》是一款基于Java技术栈开发的图书管理软件,其核心框架包括Spring、Struts和Hibernate。该系统利用MySQL作为数据库存储数据,提供了完整的数据库备份,确保了数据的安全性与...
在“Spring+Hibernate+Struts”系统中,Hibernate 负责处理数据库操作,将Java对象映射到数据库表,从而避免了繁琐的SQL代码编写。通过 Hibernate,开发者可以轻松地进行数据的增删改查操作,同时支持事务管理和缓存...
Struts1+Spring+Hibernate整合注册登录(BLing原创).part1.rar 有二个文件
SSH整合是指将Spring、Hibernate和Struts这三大Java开源框架集成在一起,用于构建高效、灵活的企业级Web应用程序。这三个框架分别负责不同的职责:Spring作为应用的基石,提供依赖注入(DI)和面向切面编程(AOP),...
Struts2+Spring+Hibernate和Struts2+Spring+Ibatis是两种常见的Java Web应用程序集成框架,它们分别基于ORM框架Hibernate和轻量级数据访问框架Ibatis。这两种框架结合Spring,旨在提供一个强大的、可扩展的、易于...
基于struts+spring+hibernate+oracle的移动ssh项目源码 基于struts+spring+hibernate+oracle的移动ssh项目源码 基于struts+spring+hibernate+oracle的移动ssh项目源码 基于struts+spring+hibernate+oracle的移动ssh...
struts2+spring+hibernate 配置文件struts2+spring+hibernate 配置文件
标题 "spring+hibernate+struts" 指涉的是一个经典的Java Web开发框架组合,也被称为SSH(Spring、Struts和Hibernate)三位一体。这个组合在2000年代中期到后期非常流行,用于构建企业级应用。下面将详细阐述这三个...
农业网站 (ssh) struts 2 +spring+ hibernate农业网站 (ssh) struts 2 +spring+ hibernate农业网站 (ssh) struts 2 +spring+ hibernate农业网站 (ssh) struts 2 +spring+ hibernate农业网站 (ssh) struts ...
spring+hibernate+struts教程
SSH三大框架,即Struts、Spring和Hibernate,是Java Web开发中的常用技术组合,它们各自负责不同的职责:Struts作为MVC模式中的Controller层,处理用户请求并转发到相应的业务逻辑;Spring则作为核心容器,负责依赖...
在这个项目中,"struts+spring+hibernate(mysql)用户登录及文件上传",开发者整合了这三个框架,并结合MySQL数据库实现了一个完整的用户管理系统,包括用户身份验证和文件上传功能。 首先,Struts是MVC(Model-View...
基于spring实现的网上订餐系统(struts+spring+hibernate+SQL Server) 基于spring实现的网上订餐系统(struts+spring+hibernate+SQL Server) 基于spring实现的网上订餐系统(struts+spring+hibernate+SQL Server) 基于...