现在的位置: 首页 > 综合 > 正文

rt.jar和xml-api.jar中的Node

2017年03月23日 ⁄ 综合 ⁄ 共 922字 ⁄ 字号 评论关闭

开发这么久,今天遇到两个小问题比较棘手,由于项目是maven来管理的,基本上不需要考虑jar包的问题,但今天自己移动项目的时候发现,myeclipse的项目移动到eclipse竟然报错了,问题就是org.w3c.dom.Node这个类在myeclipse中是引用的rt.jar这个jre中的jar包。可是在eclipse中引用的竟然是xml-api.jar中的Node。如果说包名不一致,我们可以用包名加类名来解决这个问题。但这个比较变态就是都一样的。

于是就google了一下,不过也没看到合理的解释,后来有请教了一个比较有经验的人,他让我把哪里依赖这个xml-api.jar的地方把这个依赖去掉。但是我不知道去掉这个依赖hibernate会不会出错。纠结啊。结果竟然没问题。那就把修改的地方贴出来下:

<dependency>
<groupId>org.apache.ws.commons.util</groupId>
<artifactId>ws-commons-util</artifactId>
<version>1.0.2</version>
<exclusions>
<exclusion>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
</exclusion>
</exclusions>
</dependency>

这个问题就这样的搞定了,接下来还有个问题,就是The method is ambiguous for the type 这样的错误,说是方法模糊,其实这个确实是这样的,

比如你的方法void get(int a,Object ... obj)和void get(Object... obj)当你这样调用的时候get(10),那两种方法都可以匹配上,结果就报上面那样的错误

了,于是这次百度了下。别人的解决办法是这样的,打开eclipse.ini然后在-vmargs后加上-DtolerateIllegalAmbiguousVarargsInvocation=true这样一句

话,重启就好了,但我却重启了两次才好。第一次点重启,没用,第二次关了再开就好了。

每天学会一点点,这样就是一种进步。

抱歉!评论已关闭.