ssh整合一些问题(转)
spring+hibernate+struts整合开发框架搭建
在myeclipse当中先为项目添加spring支持,这时候没有有关hibernate的选项,不用着急,按步骤添加完spring支持就行,下面还有机会。
接着为项目添加hibernate支持。这时候,会看到myeclipse已经检测到添加了spring支持,所以会显示有关spring的选项,这时候把所有的选项都勾上(有的包现在用不到,但是以后会用的。先添加吧。)最后确定添加完成。
接着为项目添加struts支持,这个比较容易。
最后就是有关于配置文件的编写了,把applicationContext.xml文件move到WEB-INF目录下,打开struts-config.xml文件,在<message-resources>结点的前面和后面添加配置代码,形成如下代码段:
<controllerprocessorclass="org.springframework.web.struts.DelegatingRequestProcessor"/>
这句的作用是将struts的控制权交给spring
<message-resourcesparameter="com.yourcompany.struts.ApplicationResources"/>
<plug-inclassname="org.springframework.web.struts.ContextLoaderPlugIn">
<set-propertyproperty="contextConfigLocation"value="/WEB-INF/applicationContext.xml"/>
</plug-in>
这句的作用是让struts能够找到applicationContext.xml配置文件并加载它。
至此,所有简单的配置完成。然后部署到tomcat,启动服务器,如果控制台打印的信息没有异常或错误,那么恭喜,ssh框架搭建成功!如果有异常,就要着手处理,常见的异常及解决办法如下:
1、java.lang.ClassNotFoundException:org.springframework.web.context.ContextLoaderListener
解决方法:spring的jar包没有被加载或者没有添加到构建路径,重新设置即可。
2、严重:action:null
java.lang.ClassNotFoundException:org.springframework.web.struts.ContextLoaderPlugIn
atorg.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)
atorg.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
atorg.apache.struts.util.RequestUtils.applicationClass(RequestUtils.java:117)……………………
解决方法:SH开发的初期会有很多人碰到这个错误,原因是在struts-config.xml中配置了org.springframework.web.struts.ContextLoaderPlugIn
<plug-inclassname="org.springframework.web.struts.ContextLoaderPlugIn">
<set-propertyproperty="contextConfigLocation"value="/WEB-INF/applicationContext.xml"/>
</plug-in>
然而又加载不到这个类,当然会报ClassNotFoundException
这个类是和Struts的整合类,并没有在spring-core.jar等文件中,而是在spring-webmvc-struts.jar中。
把spring-webmvc-struts.jar加载到ClassPath中就OK了。
3、java.lang.ClassNotFoundException:org.apache.struts.action.ActionServlet
解决方法:导入struts包或者重新加载struts的相关包到构建路径下面可以解决问题。