系统中的很多 WEB 工程需要共享一套资源文件,预将资源文件独立到 Linux 系统中。 
那么,Struts 配置文件中的 message-resources 是否可以配置成 war 包外的目录中?请各位大虾帮忙,十分感谢!

解决方案 »

  1.   

    可以的.! 我们单位现在的项目 配置文件就在war包外面.!
    这个文件的位置不固定的,随便用户放哪里.! 所以你的程序在服务器启动的时候就要搜索硬盘上是否有这个文件,如果有就读取, 如果没有就报个错, 告诉用户说 xxx配置文件不存在, 请添加配置文件之后重新启动
      

  2.   

    不想把整个配置文件放到 war 包外面,只是打算将资源文件放到 war 包的外面,各个组件均访问此目录下的资源文件,这样是否可以呢?
      

  3.   

    这样做的目的是为了资源文件共享,各个服务无需关心资源文件。 现在预这样实现: 将资源文件放到系统中的某目录,所以工程 war 包中的 struts 配置文件的 resource-messages 路径均指向系统中的此目录,以便访问共享的资源文件。 目前这样做无法找到此资源文件,请问是否有方法解决? 谢谢。
      

  4.   

    在日志中没有看到任何错误信息。 但是根据 struts 的原理介绍来看,资源文件是需要相对于工程的 WEB-INF/classes 目录的,因此应该必须位于 war 中。
      

  5.   

    给你些提示:写一个MyListener类,实现ServletContextListener
    里面有一个初始化和销毁方法,  初始化方法里面在你的硬盘上查找一定目录结构的文件夹或者特定名字的文件,  比如说就找message-resources.properties文件吧..  如果没找到这个文件就抛异常让服务器down掉.!  告诉用户说缺少xxx文件.! (我们单位是查找有特定目录结构的文件夹)你可以把你所有的资源文件都丢一个文件夹下, 在listener里找这个文件夹,再在这个文件夹中判断是否有你要的文件不就ok?