论坛首页 Java企业应用论坛

【解惑】深入jar包:从jar包中读取资源文件

浏览 112238 次
精华帖 (4) :: 良好帖 (15) :: 新手帖 (9) :: 隐藏帖 (1)
作者 正文
   发表时间:2009-12-30   最后修改:2009-12-30
如果我想在spring的配置文件中引用jar中的hibernate映射xml文件,怎么办?
<property name="mappingResources">
    <list>
        <value>com/dao/maps/Order.hbm.xml</value>       
     </list>
</property>

Order.hbm.xml这个文件是放在一个框架的jar中的。
如果我不在自己的项目内相同目录创建Order.hbm.xml这个文件,则系统启动加载该文件时抛出文件不存在的异常。
0 请登录后投票
   发表时间:2009-12-30  
这有啥好奇怪的,你随便找个开源项目看看,他们读取配置文件都是从classpath开始算路径的,你那个bin文件夹明显是eclipse中定义的class存放目录,最后打包bin是不会存在的,也就是说相对资源而言真正的根路径是/resources而不是/bin/resources。
个人理解,不知道对不对,请指正。
0 请登录后投票
   发表时间:2010-09-03  
巨人的肩膀,让我茅舍顿开
0 请登录后投票
   发表时间:2010-09-03   最后修改:2010-09-03
1,万能的SpringResource
Resource rs = new ClassPathResource("以/分隔jar资源");
2,差不多可以用用的ClassLoader
InputStream strean = Thread.currentThread().getContextClassLoader().getResourceAsStream("以/分隔jar资源");
3,恶心的JarFile-JarEntry

0 请登录后投票
   发表时间:2010-09-04  
evilseed 写道
如果我想在spring的配置文件中引用jar中的hibernate映射xml文件,怎么办?
<property name="mappingResources">
    <list>
        <value>com/dao/maps/Order.hbm.xml</value>       
     </list>
</property>

Order.hbm.xml这个文件是放在一个框架的jar中的。
如果我不在自己的项目内相同目录创建Order.hbm.xml这个文件,则系统启动加载该文件时抛出文件不存在的异常。


      <property name="mappingJarLocations">
            <list>
                <value>WEB-INF/lib/test.jar</value>
            </list>
        </property>
0 请登录后投票
   发表时间:2010-09-05  
遇到点奇怪的问题
getClass().getResource(...) 空指针
getClass().getClassLoader().getResource(...) 正常
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics