Myeclipse下打包spring+jms集成的项目,解决打成的jar包报无法找到xml的context的schema的问题

描述:最近做一个项目,具体什么项目就不说了,主要是将项目打成jar包在linux服务器上运行。

现象:jar包打好了,未打包之前项目能在IDE上完美运行。但是打成jar包之后,在linux和本机上报错,错误:unable to load XML

schma......后边还有很多。就是无法加载spring中的xml头中的context的xsd文件。

过程:这个问题整整搞了一天。网上也查了很多资料,将引入的xsd头uri改成相对路径呀、还有什么classpath引入xsd呀、反正能试的都试了,

结果还是报这个错误,当我快要没办法的时候,终于看到曙光了:有兴趣的看看下边这两个URL的人说的,他们说的才算是正解。

http://www.pigg.co/spring-namespace-exception.html

http://code.google.com/p/google-web-toolkit/issues/detail?id=5728

问题正如他们分析的那样,在ant打成jar包的时候,由于把项目中的所有jar包也打进去的,每个jar包下的META-INF下边的spring.handlers、spring.schemas、

spring.tools正是放他们本地xsd文件的引用的地方,由于ant打包,里边jar包一起打,这时候里边的spring的一系列jar包相当于解压了。他们的META-INF文件夹一样,

但是里边的内容就覆盖掉了,导致引用的xsd文件只有最后一个覆盖的jar包的META-INF里边的xsd引用,所以不管你这时候applicationContext.xml再怎么改,打出的jar包

永远会报找不到xsd的schma引用。可能本人表述不是很清楚。具体的可以看给的两个url里边的内容。

解决方法:上边给的两个url里边也给了两个解决方法,实际上只有一个。他们都是同一个解决方法,就是重新打包META-INF,可是这里我确实没瞧出来META-INF还

能怎么打包??我的解决方案是重写spring.handlers、spring.schemas、spring.tools三个文件,将需要的xsd文件全部在相应的jar包里边找到写进去,并覆盖进新打的项目

jar包里边,然后运行,成功。

希望大家有这方面的问题多多交流,这玩意问题网上实在难找啊。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值