运行jar文件失败classpath下的资源文件找不到 130

我弄了一个程序用到了spring配置如下:ApplicationContextact=newClassPathXmlApplicationContext("classpa... 我弄了一个程序用到了spring配置
如下:
ApplicationContext act = new ClassPathXmlApplicationContext(
"classpath:applicationContext.xml");
maven建的项目,目录结构为:

用eclipse的时候可以直接用main方法运行
但是我用eclipse里面的export导出jar包的时候却报了spring加载配置文件失败,find not found exception
jar包结构:

求高手帮忙解答问题。
展开
 我来答
百度网友845f74e61
推荐于2017-12-16 · TA获得超过6929个赞
知道大有可为答主
回答量:4050
采纳率:50%
帮助的人:1637万
展开全部

我没有用过 spring

classpath:applicationContext.xml  这个配置,

如你图中所示,放在了resources中,那么在工程中是可以运行的?

只是打包到jar 中以后找不到?


提几点猜测

  1. resources中的配置文件,没有找包进去。

  2. ClassPathXmlApplicationContext  这个可能不支持 jar中的使。

        不知道有没有支持流的文法,如果有,你可能改成  

      InputStream stream = this.getClass().getResourceAsStream("/resources/spring.xml");

这样来加载,试一下。

追问

可以用Resource来加载的。但即使这样写了

act = new ResourceXmlApplicationContext(new UrlResource( Thread.currentThread().getClass().getResource("/applicationContext.xml")));

还是出错

追答
你打包以后
/applicationContext.xml
这个在顶级目录中?
不是
/resources/applicationContext.xml
这样?

你给出的信息中,好象是找不到http://www.sparingframework.org/............
这个命名空间。
结束之2012
2013-05-27 · 超过70用户采纳过TA的回答
知道小有建树答主
回答量:176
采纳率:0%
帮助的人:139万
展开全部
ApplicationContext act = new ClassPathXmlApplicationContext(
"classpath:applicationContext.xml"); 这一句话, 你打包完了之后,它在load applicationContext.xml 的时候 路径变了。
实在找不到对的路径, 就把那个配置文件拿出来,hard code 写进去(仅仅 做testing)
追问
没懂什么意思诶。“hard code 写进去(仅仅 做testing)”

我如果把jar包里面的资源文件取出来的话,那么,在加载spring配置的时候又会出现一些解析文件错误,什么spring schema namespace错的
追答
你那个错误 应该是找不到对应的配置文件
把你的配置文件拿出来 放在一个写死的路径下面(c:\\...)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-05-26
展开全部
下面的图片,是编译后的目录结构?

那恐怕
new ClassPathXmlApplicationContext("classpath:resources/applicationContext.xml");

或换成
FileSystemXmlApplicationContext
new FileSystemXmlApplicationContext("resources/applicationContext.xml");
更多追问追答
追问

刚尝试了用classpath:resources/applicationContext.xml

eclipse运行是找不到文件,

jar包运行文件是找到了,但是

追答
这些配置文件,不应该放到子目录里面,像现在还报LOG4J也错了。
如果放子目里面,很多的配置都要另外指定。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式