- 浏览: 575791 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (411)
- webservice (3)
- oracle (37)
- sqlserver (8)
- j2ee (56)
- linux (7)
- javaweb (47)
- office (1)
- struts (23)
- hibernate (11)
- spring (29)
- 网络 (2)
- tomcat (13)
- tongweb (0)
- weblogic (0)
- powerdesiginer (3)
- svn (3)
- js (20)
- ie (2)
- 编译 (3)
- css (2)
- 操作系统 (5)
- Android (41)
- jbpm4.3 (1)
- fckeditor (3)
- 操作excel (2)
- db2常用命令 (1)
- ibatis (5)
- mysql (16)
- 表达式语言 (1)
- java方式调用存储过程 (1)
- ca (1)
- linux客户端 (1)
- 电子数码 (1)
- 行业应用 (12)
- 开发工具 (4)
- 面试 (1)
- 计算机原理 (1)
- NOSQL (5)
- 虚拟机 (1)
- nginx (0)
- velocity (2)
- jndi (1)
- spring mvc (39)
- springmvc (32)
- 安全 (5)
- htmleditor (6)
- iphone4 (1)
- html (4)
- jstl (2)
- ckeditor (5)
- 连接池 (1)
- jquery (6)
- 分页 (1)
- 技术研发规则 (1)
- javamail (1)
- maven (2)
- upload (1)
- log (1)
- 测试 (10)
- spring roo (1)
- 版本控制 (2)
- find bugs (0)
- jsf (0)
- springroo (0)
- 小道理 (1)
- 小道理,技术标准 (1)
- jsf (0)
- bitbao (2)
- redmine (3)
- 团队意识 (1)
- mybatis (2)
- jquery mobile (1)
- flexpaper (0)
- json (4)
- URLRewriteFilte (1)
- html5 (1)
- 都乐保活动 (0)
- openfire (0)
- TreeMap (1)
- build (0)
- javaweb,tag (0)
- algorithm (1)
- tag (2)
- 扯淡 (0)
- mac (2)
- 叶一火(老一) (1)
- 游玩 (1)
- 编码 (1)
- 上线部署 (0)
- 研发管理 (0)
- thumbnailator (2)
- 旅游 (0)
- bingweibo (1)
- 杂谈 (4)
- ktv (1)
- weibo (1)
- 爱情 (2)
- 饮食 (1)
- MediaWiki (1)
- git (1)
- 版本库 (1)
- servlet (1)
- 感悟 (1)
- 人生 (1)
- highcharts (1)
- poi (0)
- websphere (0)
- php (1)
最新评论
-
woshixushigang:
good
org.springframework.beans.TypeMismatchException: Failed to convert property valu -
nathanleewei:
org.springframework.jdbc.core.B ...
org.springframework.beans.TypeMismatchException: Failed to convert property valu -
浪禾木:
请问是ckeditor\contents.css吗?改过以后 ...
ckeditor自动换行问题 -
simusuishi:
刚哥威武!
ckeditor取值赋值问题 -
a455642158:
收割完毕……
Android开源项目源码下载(不断更新中)
终于,终于将SSH整合成功了,弄了几个小时,可以休息了(有的朋友弄了半个月,甚至重装了系统也没弄好,哎,庆幸啊)。碰到问题千万不要放弃,要相信没有解决不了的问题!
项目结构图:
jsp部分为:index.jsp;success.jsp;fail.jsp
UserDAO.java,User.hbm.xml自动生成,HibernateSessionFactory是多余的。
相关的配置文件、类文件详细信息,请参看Struts+Spring+Hibernate/SSH整合开发详细二
以前是整过这三个框架的,可是工作期间都不曾用过,不知不觉之中,学的东西全忘了。这次又要开始找工作了,看着招聘启事上都写着:要求熟练掌握Struts,Hibernate或Spring框架……,没得办法,重新学呗。
Spring in Action中文版下载地址(ftp协议) ftp://222.214.218.61/book5/20080228/cf8b35cc-5bcd-4973-b6b7-37ae3ec78391.rar 如果无法下载,可以在http://www.gougou.com里重新搜索
首先开始搭建项目环境,步骤如下:
使用平台:MyEclipse 6.0
框架版本:Struts 1.2 Hibernate 3.0 Spring 2.0
1> 添加过程:
<1> 新建项目。 Package Explorer视图下,右键单击 New -> Web Project;
<2> 添加Struts框架。菜单栏MyEclipse -> Capabilities,或者右键单击新建的项目名,选择快捷菜单中的"MyEclipse"下的二级菜单;设置相关的包名后,请写一个Struts的小例子,用来测试Struts是否可用;
<3> 添加Spring。步骤同2所述,只不过这次是加入Spring Capabilities。详细添加步骤如下图所示;
<4> 配置数据源。打开数据库视图,Windows -> Open Perspective -> MyEclipse DataBase Explorer。新建数据源, 在DB Browser下,右键单击 New ,配置信息类似下图,
点击Next,选择"Display all schemas","Finish"完工。
<5> 点击MyEclipse右上角 >>按钮,返回到MyEclipse Java Enterprise视图。按类似于2的步骤,添加Hibernate框架,详细步骤如图所示
请选择Hibernate 3.0的版本
<6>通过MyEclipse生成操作数据库的Dao类(UserDao),并自动生成映射表的配置文件(在本示例中包含在applicationContext.xml中),将视图切换到MyEclipse Database Explorer,打开我们在前面配置的数据链接,选择我们操作的表User,右键单击,选择:Hibernate Reverse Engineering。详细步骤如下图所示:
<7> 至此,项目环境己经搭建完成。
需要指出的是,为了使用日志管理的功能,你只须拷贝log4j.properties即可,将其放入到src根目录下。
log4j.properties配置内容如下(对具体配置不太了解的朋友可以在这之后学一下,此处,你只须修改日志文件存储路径即可):
log4j.rootLogger=info,A1
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.Append=true
# log文件存储路径,请转换为相应的目录
log4j.appender.A1.File=E:/workspace/ssh2/logs/log4j.log
log4j.appender.A1.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} Method: %l%n%m%n 。
# 无详细类名、方法名信息
#log4j.appender.A1.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} %m%n
# -X号:X信息输出时左对齐;
# %p:日志信息级别
# %d{}:日志信息产生时间
# %c:日志信息所在地(类名)
# %m:产生的日志具体信息
# %n:输出日志信息换行
Spring,Hibernate已经整合在一起了,现在需要将Struts与Spring进行整合。Spring与Struts整合实现方式
第一,在struts-config.xml中加入
<!--配置一个插件去集成spring -->
<plug-in
className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" />
</plug-in>
第二,修改struts-config.xml中action节点的配置信息,将原来定义的
<action path="/validateUser"
type="com.wuwei.struts.action.ValidateUserAction" name="userForm">
<forward name="success" path="/success.jsp"></forward>
<forward name="fail" path="/fail.jsp"></forward>
</action>
中的type改为: type="org.springframework.web.struts.DelegatingActionProxy">或者你也可以不改,而在<plug-in>标签前加入如下定义
<!-- 加上controller就不用再配置action的type属性了/或者说type属性不用改为
type="org.springframework.web.struts.DelegatingActionProxy" -->
<controller
processorClass="org.springframework.web.struts.DelegatingRequestProcessor">
</controller>
第三,在applicationContext.xml中为ValidateUserAction添加定义,将userDao的实例化加给Spring,这也是Spring中的依赖注入
<!-- Struts -->
<bean name="/validateUser"
class="com.wuwei.struts.action.ValidateUserAction">
<property name="userDAO" ref="userDao" />
</bean>
当然,这里ref(引用)的Bean userDao也是在applicationContext.xml中己定义好的
<!-- 通过HibernateDaoSupport来操作数据库,需要植入sessionFactory
UserDao继承自HibernateDaoSupport
-->
<bean id="userDao" class="com.wuwei.struts.dao.UserDAO">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
相关的配置文件、类文件详细信息,请参看Struts+Spring+Hibernate/SSH整合开发详细二
如此这般,现在可以运行你的程序了。为了测试三个框架是否整合成功,你可以在action里什么都不做,只是写一条输入语句即可。因为搭建SSH项目时,最容易碰到的错误就是:Servlet action is not available。如果连action都访问不了,后面的就不需要谈了(文章B http://blog.csdn.net/shendiaodaxia/archive/2007/12/29/2002805.aspx应该可以解决此类问题)。测试不成功?依然是Servlet action is not available?这个时候log4j.log就起到关键作用了,你可以看下里面出现了什么异常。我在调试时碰到了:
1. java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor 和
2. net.sf.cglib.core.CodeGenerationException: java.lang.reflect.InvocationTargetException-->null
Caused by: java.lang.reflect.InvocationTargetException
Caused by: java.lang.SecurityException: class "com.wuwei.struts.bean.User$$EnhancerByCGLIB$$1016ffbf"'s signer information does not match signer information of other classes in the same package
的错误。
1的解决办法是:
在使用Spring的AOP编程时,会用到这几个lib:
(版本不一样,文件名也不一样)
asm-2.2.3.jar
asm-commons-2.2.3.jar
asm-util-2.2.3.jar
asm-attrs.jar
其中asm-2.2.3.jar与asm.jar存在类上的冲突!!!
使用其中之一或两者都使用,可能会出现如下错误:
java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor
java.lang.NoClassDefFoundError: org/objectweb/asm/commons/EmptyVisitor
java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit。。。。。。
解决办法是:
1.去掉类路径上的关于Hibernate的3个lib
asm.jar
asm-attrs.jar
cglib-2.1.3.jar
2.加入Spring中的以下4个lib
asm-2.2.3.jar
asm-commons-2.2.3.jar
asm-util-2.2.3.jar
cglib-nodep-2.1_3.jar
2的解决办法是:
在….hbm.xml文件中,将class标签的lazy属性改为false(默认为true)<class name="com.wuwei.struts.bean.User" table="user" lazy="false">。如果有schema="dbo" catalog="test"配置信息,请将其删除
再次运行,打印语句成功 "I'm in a Action" 搭建成功!
补充:
我用的是SQLServer数据库,测试表是User表,调试时出现了
java.sql.SQLException: 在关键字 'user' 附近有语法错误。这是因为MS SQL中的User表是系统表,不能直接查询select username from user,需要将user用中括号包围[user],同样,为了保证hibernate能正常工作,需将user.hbm.xml中class元素的table改为 table="[user]"
发表评论
-
spring mvc 乐观锁遇到的问题
2013-05-29 17:29 1997乐观锁问题:updateTime @version ... -
RESTFUL
2013-05-29 17:21 0a -
hibernate命名查询问题
2013-01-30 16:38 1314hibernate 注解 @OneToOne(fetc ... -
hibernate [Null value was assigned to a property of primitive type setter of sco
2012-12-25 19:51 1113今天开发时候 hibernate 查询报错,分析原因如下: ... -
hibernate4注解配置,纠结的一对多双向关联
2012-12-20 11:16 1761目前负责中行风险管理系统的数据核对加工模块,业务以及逻辑都已经 ... -
hibernate4 注解配置失误导致生成的表关联关系不对
2012-12-18 19:52 1227最近做ibm 风险管理系统,配置hibernate 注解时候看 ... -
spring mvc responseBody 会把特殊字符转义
2012-07-26 19:53 4503框架用的spring 采用spring mvc 方式进行图片上 ... -
spring mvc 自己遇到的几个错误
2012-06-13 14:36 1195where 1=1 and t.name like '%&q ... -
Request method 'POST' not supported
2012-06-08 10:53 5202项目采用spring mvc框架实现,插入数据时候采用 ... -
spring mvc title展示的几种写法
2012-05-18 17:16 1087我记录的是工作中遇到的,容易忽视的问题,高手可以绕行了。积累也 ... -
spring mvc 由页面到类再传给页面可不必放在modelmap
2012-05-09 11:43 0防止表单重复提交,可以用redirect @Reque ... -
500 Internal Server Error
2012-05-02 14:23 2784spring mvc restfull形式调用api 报 ... -
multipart/form-data>加上之后spring的表单标签失效及无法正常获取参数
2012-03-04 14:27 0<form:form modelAttrib ... -
spring mvc RESTful url
2012-02-25 16:40 1453详细讲解spring rest使用,简单例子如下: ... -
spring jdbc queryForList数据库字段空值报错
2012-02-15 16:29 2224List<Map<String, Object&g ... -
Spring jdbc
2012-02-15 14:50 0Spring 不仅仅是一个IoC container。 其提 ... -
spring mvc 批量操作
2012-02-15 14:15 1708用SimpleJdbcTemplate实现批量新增和批量修改。 ... -
spring roo和jsf构建后台项目
2012-02-09 13:38 01、tomcat lib 需要 el-api-2.2.jar和 ... -
eclipse+SpringRoo可以自动反转成实体类...
2012-02-03 13:12 01、今天发现springroo原来这么强大,不但可以自动生成基 ... -
eclipse codestyle和formate
2011-12-26 11:20 1056北京都乐宝软件信息技术公司的代码风格
相关推荐
SSH整合在JavaWeb开发中是一项重要的技术组合,它包含了三个主要的开源框架:Spring、Struts和Hibernate。这些框架分别负责应用的业务逻辑管理、视图层控制和数据持久化。接下来,我们将深入探讨SSH整合的关键知识点...
SSH整合jar包是一个集合了所有在Java开发中用于Spring、Struts和Hibernate(SSH)集成应用所需的库文件的压缩包。SSH是Java企业级开发中非常流行的一种框架组合,它能够帮助开发者快速构建高效、可维护的企业级Web...
SSH整合是Java Web开发中的一种常见模式,它结合了Struts2、Spring和Hibernate三个开源框架,以实现高效、灵活的MVC(Model-View-Controller)架构。在这个"ssh整合jar包"中,包含了这三个框架的核心库和其他必要的...
SSH整合,全称为Struts2、Spring和Hibernate的整合,是Java Web开发中常见的技术栈。这三种框架分别负责表现层、业务层和持久层的管理,通过合理的整合,可以构建出高效、灵活且易于维护的Web应用。下面将详细介绍...
SSH整合是Java Web开发中常见的一个技术组合,指的是Spring、Struts和Hibernate三个开源框架的集成。Spring提供了依赖注入和面向切面编程的能力,Struts则处理MVC(Model-View-Controller)架构中的控制器部分,而...
SSH整合是Java开发中一种常见的框架集成方式,它结合了Struts2、Spring和Hibernate三个开源框架,以实现高效、灵活的企业级应用开发。这里提到的"ssh整合所需所有架包"是一个包含这三个框架相应版本的集合,确保它们...
SSH整合是Java Web开发中的一个常见实践,它指的是Struts 2、Hibernate和Spring这三大框架的集成。这个"SSH整合实例源码"提供了一种实际应用这些框架的方法,帮助开发者理解如何在项目中有效地结合它们。以下是关于...
SSH整合经典实例主要涉及到的是Java开发中的三大框架:Spring、Struts和Hibernate的集成应用,这些框架在J2EE体系中被广泛使用,为开发者提供了高效、便捷的开发环境。SSH整合是Java企业级开发中一种常见的解决方案...
SSH整合在IT行业中通常指的是Struts、Hibernate和Spring三大框架的集成应用,它们是Java Web开发中的重要组件,尤其在企业级应用系统中广泛应用。银行管理系统是一个典型的业务复杂、安全性要求高的应用场景,SSH...
SSH整合项目指的是在Java开发中,使用Spring、Struts2和Hibernate这三个开源框架进行集成的Web应用程序项目。这个项目描述中提到的是一个已经搭建完成的框架,但是去掉了Hibernate的配置文件,可能意味着项目选择了...
SSH整合是Java开发中一种常见的框架组合,包括Spring、Struts和Hibernate三个核心组件。Spring提供了依赖注入(DI)和面向切面编程(AOP),Struts负责MVC模式的实现,而Hibernate则是用于对象关系映射(ORM)。在这...
SSH整合是Java Web开发中的一种常见技术栈,主要包括Spring、Struts和Hibernate这三个框架的集成。这个名为"SSH整合小项目"的资源提供了一个实践示例,帮助开发者理解和掌握这三大框架协同工作的机制。 首先,...
SSH整合在IT行业中通常指的是Spring、Struts和Hibernate这三个开源框架的集成应用。Spring作为核心容器,负责管理对象(依赖注入DI)和事务处理;Struts则是MVC(Model-View-Controller)设计模式的实现,处理用户...
SSH整合是软件开发中一种常见的技术实践,主要指的是Spring、Struts和Hibernate这三大开源框架的集成应用。这个小案例提供了SSH整合的具体实现,对于项目研发具有很高的实用价值。下面我们将详细探讨SSH整合的关键...
这个"ssh整合实例1"可能是针对初学者的一个教程,旨在帮助他们理解如何配置和使用SSH来连接到远程服务器。在Linux和Unix系统中,SSH广泛用于执行命令、传输文件以及管理服务器,而其安全性得益于数据的加密。 SSH...
SSH整合是指在Java Web开发中,将Spring、Struts2和Hibernate这三大开源框架进行集成,以实现高效、灵活和可扩展的业务应用。这些框架分别负责不同的职责:Spring作为核心容器,管理对象的依赖注入;Struts2是MVC...
SSH整合是软件开发中的一种常见技术,主要用于Spring、Struts和Hibernate这三大开源框架的集成。这篇文章将深入探讨SSH整合的原理以及实现步骤,帮助初学者掌握这一关键技能。 **一、SSH框架简介** 1. **Spring...
这个"ssh整合例子及其他的实验"主题涵盖了如何在不同的IT环境中设置和使用SSH,以及进行相关的技术实验。 首先,SSH整合通常指的是将SSH与应用程序服务器如Spring、Struts或Hibernate等Java EE框架相结合,以便通过...