java.lang.SecurityException: sealing violation: 无法密封包 com.sun.xml.bind: 已经加载

java.lang.SecurityException: sealing violation: can't seal package com.sun.xml.bind: already loaded

谁能帮我解决我的 weblogic 服务器中的这些错误。

Caused by: java.lang.SecurityException: sealing violation: can't seal package com.sun.xml.bind: already loaded
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:242)
    at java.net.URLClassLoader.access[=12=]0(URLClassLoader.java:58)
    at java.net.URLClassLoader.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at com.sun.xml.bind.v2.runtime.JAXBContextImpl.run(JAXBContextImpl.java:295)
    at com.sun.xml.bind.v2.runtime.JAXBContextImpl.run(JAXBContextImpl.java:294)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:293)
    at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:146)
    at com.sun.xml.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1169)
    at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:147)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:202)
    at javax.xml.bind.ContextFinder.find(ContextFinder.java:363)
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:574)
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:522)
    at com.sun.xml.ws.spi.ProviderImpl.run(ProviderImpl.java:235)
    at com.sun.xml.ws.spi.ProviderImpl.run(ProviderImpl.java:232)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.xml.ws.spi.ProviderImpl.getEPRJaxbContext(ProviderImpl.java:232)
    at com.sun.xml.ws.spi.ProviderImpl.<clinit>(ProviderImpl.java:95)

为什么这个异常是通用的,只显示包 "package com.sun.xml.bind"?

最终我们按照以下步骤找到了解决此问题的方法,

1) 出现了类似 java.lang.SecurityException: sealing violation: can't seal package com.sun.xml.bind: already loaded 的问题,但是没有找到相关的 jar jaxb-impl.jar

2) 我们采用此 jaxb-impl.jar 并添加到 class 路径中,流程成功。

3) 当正确的 jar 集未加载到 class 路径中或 class 存在于多个 jar 中时,会出现此类问题。 我们应该尝试使用与包 com.sun.xml.bind

相关的罐子