XML文档部署到Tomcat服务器上总是加载出错

config.xnl 起初文档路径是在src/Dao/config.xml

在Dao目录下BaseDao类中,解析config.xml文件路径 path="/Dao/config.xml",似乎正常,可运行Tomcat总是报错,系统找不到指定文件路径

我又将其放在src/WEB-INFO等文件根目录下,依然显示系统找不到指定文件路径。百度一番,各种建议均无效后,花两小时调试后,总结两种方法

第一种:通过url可以直接请求到服务器资源,那么就将config.xml文件放在Web根目录下,然后将url路径传给解析器,就如这样

private String config="http://localhost:8081/ch06/config.xml";

这里的协议和端口号可以通过这种方法得到

String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

,但依赖请求,看起来很是别扭。

第二种:后来又想起Hibernate中加载配置文件路径就是这么干的,为什么它的能行,找到Hibernate3的的包里面Configuration.class文件后,用反编译软件打开,

发现里面用IO流加载路径资源的,经过一番琢磨,终于给搞定了,路径还是上面的path路径,在BaseDao类中代码如下

private  InputStream config=this.getClass().getResourceAsStream("/Dao/config.xml");
parser.parse(config, gh);

再运行Tomcat,果断出结果。