1、S2SH框架整合S2SH框架整合一、首先建立工程MyS2SH,其目录如下图所示:二、添加Spring Capabilities。注意:最好选择Copy checked 选项,这样对包的管理比较好。选择合适的路径,放置applicationContext.xml包。选择Finish按钮,完成Spring的添加。 org.springframework.web.context.ContextLoaderListener contextConfigLocation /WEB-INF/classes/applicationContext*.xml三、添加Hibernate同样,将Hibernate包交
2、由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.LocalSessionFactoryBe
3、anAdd Library四、添加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也能使用高版
4、本的“antlr-2.7.6.jar”文件,因此我们需要在Struts2中把低版本的文件移除掉。 在“UsersCenter”项目里面的“Struts2 Core Libraries”上点击鼠标右键,选择弹出菜单中的“Build Path”“Remove from Build Path”,将现有使用的Struts2库文件从项目中移除。 把Struts2的库文件从项目中去掉之后,UsersCenter项目马上出现了若干个错误,这是正常的现象,等一会儿我们再把正确的Struts2库文件加回去,错误提示就会消失 点击MyEclipse的主菜单“Window”“Preferences”,在出现的窗体左
5、侧选择“MyEclipse”“Project Capabilities”“Struts2”,并选中右侧下拉框中的“Struts 2 Core Libraries”。 鼠标点击选中库文件列表中的“antlr-2.7.2.jar”项,然后点击“Remove”将其删除(当然,如果你一不小心删除了的话,可以点击窗体右下角的“Restore Defaults”来还原,再次删掉antlr-2.7.2.jar即可),然后点击“Apply”按钮以使修改生效,最后点击“OK”按钮关闭即可。 接下来在项目“UsersCenter”上点击鼠标右键,选择弹出菜单中的“Build Path”“Add Libraries
6、”。 选中“MyEclipse Libraries”项。 在下面的窗体中,找到“Struts 2 Core Libraries”并勾选它,点击“Finish”按钮结束添加以前移除的Struts2库 经过上面的步骤,UsersCenter项目中的“Struts2 Core Libraries”文件列表中就没有了“antlr-2.7.2.jar”项。 别着急运行项目,正是因为前面我们运行过一次项目,导致Tomcat下面已经存在“antlr-2.7.2.jar”文件,尽管重新设置过项目中用到的Struts2核心库文件,但自动发布到Tomcat目录下面的这个低版本的文件还在,需要我们手工进行删除。 在
7、MyEclipse中,找到下面的“Servers”视图,鼠标右键点击“UsersCenter”项,选择弹出菜单中的“Remove deployment” 好了,现在运行应该是没有问题的。 2、Illegal access: this web application instance has been stopped already. Could not load .BindException. java.lang.IllegalStateException原因是因为在tomcat重启的时候,因为之前的tomcat中的线程还没有完全关闭,新启动tomcat就会报这个异常。解决办法一:把tomca
8、t的server.xml中对应的reloadable=true改成false解决方法二:将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”
9、这个类,ContextLoaderListener这个类是在spring-web.jar包下,我仔细检查了项目jar环境,发现该jar包确实存在,而且也能找到编译后的ContextLoaderListener.class文件。测试:Login.jsp 用户名: 密码: Succ.jsp 登录成功! LoginAction.javapublic class LoginAction extends ActionSupport private String username; private String password; private UserDAO userDAO; /*省略了getter和setter方法*/ public String execute() throws Exception System.out.println(username:+username+,password:+password); boolean b=userDAO.login(username, password); if(b) return SUCCESS; else return fail; Struts.xml /succ.jsp /index.jsp ApplicationContext.xml
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1