相关疑难解决方法(0)

如何指定特定的JAXB实现?

好像我过去曾经做过一次这样的事情,但是我找不到任何关于我做了什么才能让它发挥作用的参考.

我有一个Web应用程序,我想在其中指定一个不同于我的web服务器/ jre提供的JAXB实现.我从maven下载了相应的工件,看到jar在我的战争中正确打包,但是,当我启动我的Web应用程序时,我发现它仍在使用捆绑的JRE实现.

我依旧记得有关我可以配置的属性文件的一些内容,但是找不到它需要如何配置的引用.此外,如果我想要使用的实现是相同的(只是一个较新的版本),类名将与在JRE中打包相同.如何指定我想使用WAR中捆绑的那些?

编辑

我目前正在运行JBoss 7.0.2,使用Oracle JDK 1.6_0_27,JRE附带的JAXB RI(我认为它是v2.1).我正在尝试升级到JAXB RI 2.2.5(在MvnRepository上找到).

我今天早上做了一点挖掘,发现我的日志中有一条奇怪的错误消息:

09:43:18,325 WARN  [org.jboss.as.server.deployment] (MSC service thread 1-12) Class Path entry jaxb-api.jar in "/C:/servers/jboss-as-7.0.2.Final/standalone/deployments/LendingSimulationServiceEAR.ear/LendingSimulationService.war/WEB-INF/lib/jaxb-impl-2.2.5.jar"  does not point to a valid jar for a Class-Path reference.
09:43:18,325 WARN  [org.jboss.as.server.deployment] (MSC service thread 1-12) Class Path entry activation.jar in "/C:/servers/jboss-as-7.0.2.Final/standalone/deployments/LendingSimulationServiceEAR.ear/LendingSimulationService.war/WEB-INF/lib/jaxb-impl-2.2.5.jar"  does not point to a valid jar for a Class-Path reference.
09:43:18,326 WARN  [org.jboss.as.server.deployment] (MSC service thread 1-12) Class Path entry jsr173_1.0_api.jar in "/C:/servers/jboss-as-7.0.2.Final/standalone/deployments/LendingSimulationServiceEAR.ear/LendingSimulationService.war/WEB-INF/lib/jaxb-impl-2.2.5.jar"  does not point to a valid …
Run Code Online (Sandbox Code Playgroud)

java jboss jaxb java-ee

21
推荐指数
1
解决办法
3万
查看次数

Eclipse 4.12 - java.lang.ClassNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory

运行我的 eclipse 插件时出现以下错误。Eclipse 使用 4.12 和 java11。它曾经在 eclipse 4.6.3 + java8 中工作正常。

javax.xml.bind.JAXBException: Provider com.sun.xml.internal.bind.v2.ContextFactory not found
 - with linked exception:
[java.lang.ClassNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory cannot be found by com.my.cep.studio.cluster.topology_0.0.0]

!ENTRY com.my.cep.diagramming 4 0   at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:146)
    at javax.xml.bind.ContextFinder.find(ContextFinder.java:289)
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:412)
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:375)
    at com.my.cep.studio.cluster.topology.editors.ClusterTopologyDiagramManager.parseFile(ClusterTopologyDiagramManager.java:193)
    at com.my.cep.studio.cluster.topology.editors.ClusterTopologyDiagramManager.openModel(ClusterTopologyDiagramManager.java:175)
    at com.my.cep.diagramming.drawing.BaseDiagramManager.createDrawingCanvas(BaseDiagramManager.java:233)
    at com.my.cep.diagramming.drawing.DiagramManager$2.run(DiagramManager.java:259)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.ClassNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory cannot …
Run Code Online (Sandbox Code Playgroud)

eclipse eclipse-plugin eclipse-rcp java-11

17
推荐指数
5
解决办法
4万
查看次数

JAXBContextFactory 地狱 - java.lang.ClassNotFoundException:com.ibm.xml.xlxp2.jaxb.JAXBContextFactory

我在我的开发环境中不断收到以下错误。我用

  • 火星日食 4.5.1
  • Oracle JDK 1.7(内部版本 1.7.0_79-b15)或 1.8(内部版本 1.8.0_65-b17)
  • Apache Ant 运行代码以及 Eclipse 运行代码
  • Ivy 用于依赖管理,其中我包括以下内容

    <!-- 3rd party dependencies -->
    <dependency org="log4j" name="log4j" rev="1.2.16" conf="test->default"/>
    <dependency org="commons-httpclient" name="commons-httpclient" rev="3.1" conf="compile->default"/>
    <dependency org="org.jvnet.jaxb2_commons" name="jaxb2-basics-runtime" rev="0.6.4" conf="default->runtime"/>
    <dependency org="org.jvnet.jaxb2_commons" name="jaxb2-basics-tools" rev="0.6.4" conf="default->runtime"/>
    <dependency org="org.jvnet.jaxb2_commons" name="jaxb2-basics" rev="0.6.4" conf="default->runtime"/>
    
    Run Code Online (Sandbox Code Playgroud)

我看过有关此主题的其他帖子,但他们的答案没有多大帮助。我尝试使用 jaxb.properties 但这并没有改变行为。

javax.xml.bind.context.factory=com.sun.tools.xjc.runtime.JAXBContextFactory


Exception in thread "main" javax.xml.bind.JAXBException
 - with linked exception:
[java.lang.ClassNotFoundException: com.ibm.xml.xlxp2.jaxb.JAXBContextFactory]
    at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:227)
    at javax.xml.bind.ContextFinder.find(ContextFinder.java:432)
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:637)
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:584)
    at com.acme.merge.util.ProjectsInformation.unMarshal(ProjectsInformation.java:24)
    at com.acme.merge.controller.MergeController.main(MergeController.java:44)
Caused by: java.lang.ClassNotFoundException: com.ibm.xml.xlxp2.jaxb.JAXBContextFactory
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at …
Run Code Online (Sandbox Code Playgroud)

java xml jaxb

3
推荐指数
1
解决办法
5700
查看次数

标签 统计

java ×2

jaxb ×2

eclipse ×1

eclipse-plugin ×1

eclipse-rcp ×1

java-11 ×1

java-ee ×1

jboss ×1

xml ×1