hao0089 发表于 2017-2-7 13:02:39

websphere中web的路径找不到问题?tomcat正常,websphere中找不到路径

  websphere中web的路径找不到问题?tomcat正常,websphere中找不到路径
  案例:
  


项目中一些文件路径为
WEB-INF
|-- classes
|-- xwork.xml

|-- webwork-config
|-- xwork-config-pay.xml
|-- ……
|-- xwork-config-XXX.xml
xwork的配置:
<include file="../webwork-config/xwork-config-pay.xml"/>
  在tomcat中运行一切正常,不过在websphere中就不正常了,提示找不到文件:xwork-config-pay.xml
  

  猜测原因:
websphere中classes被单独的classloader加载后存在一个空间,与WebRoot的加载空间被隔离开来了
而在tomcat是由同一个loader加载的,所以相对路径未变,可以正确找到文件
  解决方法一:
  


修改为如下结构
WEB-INF
|-- classes
|-- xwork.xml
|-- webwork-config
|-- xwork-config-pay.xml
|-- ……
|-- xwork-config-XXX.xml

中xwork中配置修改为:
<include file="webwork-config/xwork-config-pay.xml"/>

  经过测试一切OK!
  解决方法二:
  当然就是吧xwork.xml配置文件不放入classes中而是WEB-INF目录下就可以了
  总结:对于classes和jar中的路径一个通用路径就是classpath:XXX,他们都是相对于classpath路径的,spring就提供了此机制,但是其他开源项目可能没有考虑全面单classes和jar中的资源被加载后可能相对于原来在WebRoot中的路径就发生了变化^ ^
页: [1]
查看完整版本: websphere中web的路径找不到问题?tomcat正常,websphere中找不到路径