S2SH框架整合.docx
- 文档编号:7675282
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:15
- 大小:544.29KB
S2SH框架整合.docx
《S2SH框架整合.docx》由会员分享,可在线阅读,更多相关《S2SH框架整合.docx(15页珍藏版)》请在冰豆网上搜索。
S2SH框架整合
S2SH框架整合
一、首先建立工程MyS2SH,其目录如下图所示:
二、添加SpringCapabilities。
注意:
最好选择Copychecked选项,这样对包的管理比较好。
选择合适的路径,放置applicationContext.xml包。
选择Finish按钮,完成Spring的添加。
org.springframework.web.context.ContextLoaderListener
三、添加Hibernate
同样,将Hibernate包交由WEB-INF/lib管理。
将Hibernate配置交由Spring管理。
选择一个DataSource。
此时,会抛出两个异常。
(mons.dbcp.BasicDataSource、org.springframework.orm.hibernate3.LocalSessionFactoryBean)
其中,mons.dbcp.BasicDataSource抛出了异常,
这是由于少包(commons-dbcp-1.4.jar、commons-pool-1.5.5.jar)的缘故,
其中,org.springframework.orm.hibernate3.LocalSessionFactoryBean
AddLibrary
四、添加Struts2。
虽然,加入了Struts2框架,但是我们仍然将Struts和Spring整合,整合步骤如下:
1、加入Struts2-Spring-plugin-2.1.8.1.jar
五、出现的异常解决:
1、NoSuchMethodError:
antlr.collections.AST.getLine()
产生这一问题的原因在于Struts2和Hibernate共存时有两个名为“antlr-2.7.2.jar”和“antlr-2.7.6.jar”的文件因为版本问题导致冲突,Struts2用的是低版本,Hibernate必须用高版本。
好在Struts2也能使用高版本的“antlr-2.7.6.jar”文件,因此我们需要在Struts2中把低版本的文件移除掉。
在“UsersCenter”项目里面的“Struts2CoreLibraries”上点击鼠标右键,选择弹出菜单中的“BuildPath”->“RemovefromBuildPath”,将现有使用的Struts2库文件从项目中移除。
把Struts2的库文件从项目中去掉之后,UsersCenter项目马上出现了若干个错误,这是正常的现象,等一会儿我们再把正确的Struts2库文件加回去,错误提示就会消失
点击MyEclipse的主菜单“Window”->“Preferences”,在出现的窗体左侧选择“MyEclipse”->“ProjectCapabilities”->“Struts2”,并选中右侧下拉框中的“Struts2CoreLibraries”。
鼠标点击选中库文件列表中的“antlr-2.7.2.jar”项,然后点击“Remove”将其删除(当然,如果你一不小心删除了的话,可以点击窗体右下角的“RestoreDefaults”来还原,再次删掉antlr-2.7.2.jar即可),然后点击“Apply”按钮以使修改生效,最后点击“OK”按钮关闭即可。
接下来在项目“UsersCenter”上点击鼠标右键,选择弹出菜单中的“BuildPath”->“AddLibraries”。
选中“MyEclipseLibraries”项。
在下面的窗体中,找到“Struts2CoreLibraries”并勾选它,点击“Finish”按钮结束添加以前移除的Struts2库
经过上面的步骤,UsersCenter项目中的“Struts2CoreLibraries”文件列表中就没有了“antlr-2.7.2.jar”项。
别着急运行项目,正是因为前面我们运行过一次项目,导致Tomcat下面已经存在“antlr-2.7.2.jar”文件,尽管重新设置过项目中用到的Struts2核心库文件,但自动发布到Tomcat目录下面的这个低版本的文件还在,需要我们手工进行删除。
在MyEclipse中,找到下面的“Servers”视图,鼠标右键点击“UsersCenter”项,选择弹出菜单中的“Removedeployment”
好了,现在运行应该是没有问题的。
2、Illegalaccess:
thiswebapplicationinstancehasbeenstoppedalready.Couldnotload.BindException.java.lang.IllegalStateException
原因是因为在tomcat重启的时候,因为之前的tomcat中的线程还没有完全关闭,新启动tomcat就会报这个异常。
解决办法一:
把tomcat的server.xml 中对应
解决方法二:
将WEBROOT/WEB-INF/lib文件夹中的mysql-connector-java-5.1.13-bin.jar包删掉,因为%TOMCAT_HOME%/WEB-INF/lib文件夹已经有了。
3、java.lang.ClassNotFoundException:
org.springframework.web.context.ContextLoaderListener
这种错误意思很明确:
找不到“org.springframework.web.context.ContextLoaderListener”这个类,ContextLoaderListener这个类是在spring-web.jar包下,我仔细检查了项目jar环境,发现该jar包确实存在,而且也能找到编译后的ContextLoaderListener.class文件。
测试:
Login.jsp
用户名:
密码:
Succ.jsp
登录成功!
propertyvalue="userAction.username"/> LoginAction.java publicclassLoginActionextendsActionSupport{ privateStringusername; privateStringpassword; privateUserDAOuserDAO; /*省略了getter和setter方法*/ publicStringexecute()throwsException{ System.out.println("username: "+username+",password: "+password); booleanb=userDAO.login(username,password); if(b) returnSUCCESS; else return"fail"; } } Struts.xml —将Struts2的Action交由Spring处理,这里的class只要写上beanid即可--> ApplicationContext.xml
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- S2SH 框架 整合