我是靠谱客的博主 乐观棒球,最近开发中收集的这篇文章主要介绍OSGI环境下的一个错误:javax.xml.bind.JAXBException: ClassCastException,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

    在OSGI环境下(felix)使用dosgi-cxf发布webservice发现出现这样的错误:

    java.lang.RuntimeException:
    Provider com.sun.xml.internal.bind.v2.ContextFactory could not be instantiated:
    javax.xml.bind.JAXBException: ClassCastException:
    attempting to cast jar:file:/usr/local/java/jdk1.6.0_32/jre/lib/rt.jar!/javax/xml/bind/JAXBContext.class to bundle://89.0:1/javax/xml/bind/JAXBContext.class.
    Please make sure that you are specifying the proper ClassLoader 

    而且在本地window的运行环境里没有这个错误,但是一到了Linux上就出现这个问题。经过分析和查看以后发现在OSGI环境里有个组件叫做:

    org.apache.servicemix.specs.jaxb-api-2.2,对应的jar包是:org.apache.servicemix.specs.jaxb-api-2.2-2.2.0.jar,另外在felix的配置文件中配置类似如下:

    jre-1.7=
    com.sun.org.apache.xpath.internal.jaxp;
    javax.accessibility;
    javax.activation;
    javax.activity;
    javax.annotation.processing;
    javax.annotation;
    javax.crypto.interfaces;
    javax.crypto.spec;
    javax.crypto;
    javax.imageio.event;
    javax.imageio.metadata;
    javax.imageio.plugins.bmp;
    javax.imageio.plugins.jpeg;
    javax.imageio.spi;
    javax.imageio.stream;
    javax.imageio;
    javax.jws.soap;
    javax.jws;javax.lang.model.element;
    javax.xml.bind.attachment;
    javax.xml.bind.helpers;
    javax.xml.bind.util;
    javax.xml.bind;

        原来是二者冲突了,找到原因就好办了。首先想到的是可以去掉felix的配置也可以去掉那个组件。于是都试了下,去掉组件是可以的,但是去掉配置还不行。先解决问题吧,记下来等以后有时间再查具体原因。

最后

以上就是乐观棒球为你收集整理的OSGI环境下的一个错误:javax.xml.bind.JAXBException: ClassCastException的全部内容,希望文章能够帮你解决OSGI环境下的一个错误:javax.xml.bind.JAXBException: ClassCastException所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部