无法使用ehcache在karaf 2.3.2中部署CXF休息服务

时间:2013-09-20 15:04:32

标签: cxf ehcache apache-karaf

我有以下问题:尝试使用cxf在karaf 2.3.2中将休息服务部署为一个包,发生以下异常:

   Exception in thread "SpringOsgiExtenderThread-8" java.lang.NoClassDefFoundError: net/sf/ehcache/constructs/web/AlreadyCommittedException
   ...
   Caused by: java.lang.ClassNotFoundException: net.sf.ehcache.constructs.web.AlreadyCommittedException not found by org.apache.servicemix.bundles.ehcache [149]

我将问题跟踪到cxf导入的ehcache包中的错误清单

    Installing bundle mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ehcache/2.5.1_1

请参阅以下关于服务组合的错误报告:https://issues.apache.org/jira/browse/SMX4-1303

我现在的问题:我知道这在ehcache 2.6.XX中得到修复,我怎么能解决这个问题,知道cxf 2.7.5和2.7.6(最新版本)都导入了bugged bundle? 我设法解决了一次,但我不记得我做了什么:/ 这是我安装的功能:

     <feature name="wsserv" version="${project.version}" description="wsserv">
       <configfile finalname="/etc/wsserv.cfg">mvn:com.mycorp.karaf.datasources/wsserv/${project.version}/cfg</configfile>
        <bundle>wrap:mvn:mysql/mysql-connector-java/5.1.14</bundle>
        <feature version="3.2.3.RELEASE">spring-jdbc</feature>
        <feature version="3.2.3.RELEASE">spring-web</feature>
        <feature version="2.7.5">cxf</feature>
        <bundle>wrap:mvn:net.sf.ehcache/ehcache-web/2.0.3</bundle>
        <bundle>wrap:mvn:commons-collections/commons-collections/3.2.1</bundle>
        <bundle>mvn:com.mycorp.karaf.datasources/wsserv/${project.version}</bundle>
         <bundle>mvn:com.mycorp.karaf.webservices/wsserv.common/${project.version}</bundle>
         <bundle>mvn:com.mycorp.karaf.webservices/wsserv.dao/${project.version}</bundle>
         <bundle>mvn:com.mycorp.karaf.webservices/wsserv.business/${project.version}</bundle>
         <bundle>mvn:com.mycorp.karaf.webservices/wsserv.api/${project.version}</bundle>
  </feature>

由于

1 个答案:

答案 0 :(得分:0)

您遇到的此错误是典型的分类加载。没有详细说明 - wourkaround将使ehcache-web成为servicemix-ehcache的一个片段包。