首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LinkageError :原因: java.lang.LinkageError:违反加载器约束:解析字段"DATETIME“时

LinkageError :原因: java.lang.LinkageError:违反加载器约束:解析字段"DATETIME“时
EN

Stack Overflow用户
提问于 2020-07-17 17:39:18
回答 1查看 545关注 0票数 1

我正面临着一个问题。不能得到解决方案,如果有人可以帮助我。我正在我的代码中实现JAXB,以便通过XSD和XSLT进行XML验证。错误是JRE和Weblogic服务器之间的类冲突。应用程序无法理解要引用哪一个。

Java版本:7 Weblogic: 10.3.3 (Weblogic 11g)

代码语言:javascript
复制
Caused by: java.lang.LinkageError: loader constraint violation: when resolving field "DATETIME" the class loader (instance of weblogic/utils/classloaders/ChangeAwareClassLoader) of the referring class, javax/xml/datatype/DatatypeConstants, and the class loader (instance of <bootloader>) for the field's resolved type, loader constraint violation: when resolving field "DATETIME" the class loader 
    at com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl.<clinit>(RuntimeBuiltinLeafInfoImpl.java:224)
    at com.sun.xml.bind.v2.model.impl.RuntimeTypeInfoSetImpl.<init>(RuntimeTypeInfoSetImpl.java:61)
    at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.createTypeInfoSet(RuntimeModelBuilder.java:127)
    at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.createTypeInfoSet(RuntimeModelBuilder.java:79)
    at com.sun.xml.bind.v2.model.impl.ModelBuilder.<init>(ModelBuilder.java:151)
    at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.<init>(RuntimeModelBuilder.java:87)
    at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:422)
    at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:286)
    at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:139)
    at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:117)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:211)
    at javax.xml.bind.ContextFinder.find(ContextFinder.java:372)
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:574)
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:522)

提前感谢您的帮助。

EN

回答 1

Stack Overflow用户

发布于 2020-07-23 18:29:20

在这里的日志中,错误显示冲突在DataTypeConstants中。实际上,我分析了weblogic中的类冲突。然后我开始了解到冲突中并不存在DataTypeConstants名称。我的错误出现在线路上:

代码语言:javascript
复制
JAXBContext obj = JAXBContext.newInstance(MyClass.class);

这一行显示了NullPointerException。Jaxb-api.jar出现在我的库中,所以JAXBContext是从他们的库中加载的,内部的DataTypeConstants发生了冲突。我删除了Jaxb-api.jar,然后weblogic从JRE的rt.jar获取了我的JAXBContext和DataTypeConstants。因为这两个类都在一个jar中,所以rt.jar优先选择加载DataTypeConstants。

要了解如何分析weblogic中的类冲突,下面的链接将会有所帮助。访问https://dzone.com/articles/weblogic-classloader-analysishttps://blog.eisele.net/2011/01/using-new-weblogic-classloader-analysis.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62951299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档