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> 
 <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的依赖时,需要注意 依赖包的依赖,有可能会导致程序出错

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值