搭建SSH框架遇到的struts.xml找不到spring定义的bean的错误(配置文件的路径问题)

最近想写一个jsp的课程作业,打算用了jsp就打算使用一下著名的ssh框架,最近几天一直都在使用原生eclipse搭建ssh,还真的遇到了很多问题,最后不断的改包,修正,我最终的ssh框架是Struts2.3.8+Spring3.2.16+Hibernate4.1.7,之前尝试用hibernate5搭建,但是transactionManager那里一直创建失败,后来找了种种方法,改了两次hibernate版本,最后使用4.1.7final版本,总的来说吧,几乎找不到原生的ssh搭建教程,我是先搭建起来struts2然后搭建Spring,后来结合网上的一个SpringMVC+hibernate的教程搭建最后的部分,网上的基本都是myeclipse点击就搭建好了,我觉得自己搭建一遍的话,怎么说也对这个流程有了更深的认识。

好了,现在主要说一下我遇到的题目的问题,真的是这个问题完全是我自己强迫症所致,也是因为这种强迫症,导致我一开始搭建就遇到很多问题。。。

如图,这是我之前的项目结构:

搭建SSH框架遇到的struts.xml找不到spring定义的bean的错误(配置文件的路径问题)_第1张图片


我一定要把我的配置文件全部放到与 src同级的config的目录下,所以在web.xml和applicationContext.xml的配置文件的路径都要改动一番,如在web.xml配置就要这样:

搭建SSH框架遇到的struts.xml找不到spring定义的bean的错误(配置文件的路径问题)_第2张图片

但是,我们都知道,当部署到服务器上的时候,src就是再classes文件夹里面,我们可以这么认为config也在里面,而且通过上面的方法的确是可以获取配置文件的信息,但是当struts和spring混合的时候,spring里面定义的bean不能被struts.xml接受。

所以,我把文件结构改为如下所示:

搭建SSH框架遇到的struts.xml找不到spring定义的bean的错误(配置文件的路径问题)_第3张图片

然后,就好了==,而且之前一直报错的properties的配置信息也好了

搭建SSH框架遇到的struts.xml找不到spring定义的bean的错误(配置文件的路径问题)_第4张图片

晚饭之后时候的更新=================================================================

但是,一个偶然的机会,我把我的项目移到另外一个电脑的时候,又开始报错了。。。说什么也找不到applicationContext.xml这个配置文件,但是我明明就已经在web.xml配置好了它的路径啊(classpath:config/applicationContext.xml)。最后,我折服了,把所有的配置文件全部放到src根目录下面,于是,一切都好了==

恩,在此做个提示吧,为了解决这个问题还真是找了不少东西,我的框架也传上来了:http://download.csdn.net/detail/nijiayy/9468590 如果有需要的话,大家可以看看~共同学习!


晚上时候的更新=====================================================================

因为,我要把这个项目框架从我的笔记本转移到我的台式机上,所以,我上面更新不就发现了一个问题嘛。毕竟我还是个新手,一下子就接触ssh这三个框架,还有点一时半会的消化不了,但是,随着配置的一步步完成,再根据网上的教程,真的发现ssh框架真的方便太多(之前我也写过MVC的servlet所以有个对比)。但是在做基于spring注解的单元测试的时候,就又出现了找不到配置文件的情况,查找之余,我偶然发现了一篇博文(http://www.cnblogs.com/zhujiabin/p/5027086.html)这篇文章,最后一段就是顺便的提一下关于eclipse的.classpath的问题,我之前还真的没有研究过这个。然后我就又创建了一个和src同级的config,进入.classpath(这个文件eclipse里面看不到的,要去文件夹里面找就在工程的根目录下),我发现了如下的关于config的配置:

<classpathentry kind="src" path="src"/>

<classpathentry kind="src" path="config"/>

其实这里就已经说明,config文件夹的作用和src是一样的,也就是说,config文件夹里面的内容编译之后也会成为classes下面的文件,它和src其实是等同的。我原来不理解这里,以为config不会进入classes所以就构建了我最开始的classpath*:../config.applicationContext.xml这样的路径,奇怪的是,这样的路径竟然在和struts整合之前都是可以运行的,其实那时候我在单元测试的时候,我的context的获得方式是new ClassPathXmlApplicationContext("applicationContext.xml");这分明就是说明这个配置文件在classes根目录下嘛,可惜当时没有领悟到这个,毕竟一下子被这个三个框架弄得太蒙。。。好了,不废话了,既然config和src是等同的话,那么配置路径就是classpath:applicationContext.xml,经测试,成功~这里还有一个这样结构的一个SSH框架(http://download.csdn.net/detail/nijiayy/9468732),这个是通过使用注解的方式写了一个简单的注册功能,麻雀虽小,五脏俱全嘛,有需要的朋友,可以下载看看哈~


你可能感兴趣的:(eclipse,ssh,oracle12C)