2015-04-06 234 views
1

我在Eclipse中使用JDK 1.8将Unmarshaller xml转换为Java。这条线呕吐JDK 1.8 JAXB:提供程序com.sun.xml.bind.v2.ContextFactory找不到

JAXBContext jc = JAXBContext.newInstance("com.dtd"); 


javax.xml.bind.JAXBException: Provider com.sun.xml.bind.v2.ContextFactory not found 
- with linked exception: 
[java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory] 
    at javax.xml.bind.ContextFinder.newInstance(Unknown Source) 

一切都从jdk1.8加载。例如:

[从C的装填javax.xml.bind.ContextFinder:\ Program Files文件\的Java \ jre1.8.0_25 \ LIB \ rt.jar中]

哪里是com.sun.xml.bind。 v2.ContextFactory?

+0

[Java类使用jaxb api失败在jira与:提供者com.sun.xml.bind.v2.ContextFactory找不到](http://stackoverflow.com/questions/3093963/java-class-using -jaxb-api-failing-in-jira-with-provider-com-sun-xml-bind-v2-co) – Barett

回答

2

我在我的类路径中有hive-jdbc-1.1.0-standalone.jar。删除它解决了问题。

+0

我在SquirrelSQL中遇到过这个问题。从我的Java类路径移动hive-jdbc - *。jar解决了这个问题。 – HansHarhoff

1

一些东西去尝试:

  1. 检查在类路径中的错别字。

  2. 尝试添加jaxb impl。 (而不是JAXB-API)

  3. 与添加模块依赖线清单文件: 依赖性:com.sun.xml.bind服务

  4. 读了这一点:http://community.jboss.org/docs/DOC-16722