我有以下问题:尝试使用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>
由于
答案 0 :(得分:0)
您遇到的此错误是典型的分类加载。没有详细说明 - wourkaround将使ehcache-web成为servicemix-ehcache的一个片段包。