maven对不同的包引用发生的错误
pom.xml文件
<?xml version="1.0" encoding="UTF-8"?><project>
<modelVersion>4.0.0</modelVersion>
<groupId>MyXMLParese</groupId>
<artifactId>MyXMLParese</artifactId>
<version>0.0.1-SNAPSHOT</version>
<description></description> [来源 www.iocblog.net]
<dependencies>
<dependency>
<groupId>mycom</groupId>
<artifactId>smproxy</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>fop</groupId>
<artifactId>fop</artifactId>
<version>0.20.5</version>
</dependency>
</dependencies>
</project>
错误提示
Exception in thread "main" java.lang.ClassCastException: org.apache.xerces.dom.DeferredTextImpl
at java.util.XMLUtils.importProperties(XMLUtils.java:97)
at java.util.XMLUtils.load(XMLUtils.java:69)
at java.util.Properties.loadFromXML(Properties.java:701)
at LoadSampleXML.main(LoadSampleXML.java:8)
配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>Hi</comment>
<entry key="foo">bar</entry>
<entry key="fu">baz</entry>
</properties>
源码
import java.util.*;
import java.io.*;
public class LoadSampleXML {
public static void main(String args[]) throws Exception {
Properties prop = new Properties();
FileInputStream fis = new FileInputStream("sampleprops.xml");
prop.loadFromXML(fis);
prop.list(System.out);
System.out.println("\nThe foo property: " + prop.getProperty("foo"));
}
}
分析
fop的依赖pom.xml 有
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.2.1</version>
</dependency>
而在smproxy包里里面也有xerces,,如果将
<dependency>
<groupId>mycom</groupId>
<artifactId>smproxy</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>fop</groupId>
<artifactId>fop</artifactId>
<version>0.20.5</version>
</dependency>
当中任意一个或两个都注悉掉,那程序没任何问题
在引用maven的依赖时,需要注意 依赖包的依赖,有可能会导致程序出错
文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。