首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用声明性服务和Karaf -程序集的Apache jax-rs服务

使用声明性服务和Karaf -程序集的Apache jax-rs服务
EN

Stack Overflow用户
提问于 2016-09-12 07:45:30
回答 1查看 604关注 0票数 1

这是一个复杂的配置问题,我在这里有一个示例项目(开发分支)-> https://github.com/gadieichhorn/play.karaf.calculator/tree/develop

我打包了这些特性,并使用了karaf组装工件,试图用我已经部署的项目创建一个定制的karaf发行版。

到目前为止,我可以在本地的karaf上部署这个特性/kar,但是当我创建一个定制的karaf程序集时,create服务就不能工作了。

打包过程是自动化的:构建->特性/kar ->组装->集成测试(pax-test) -> docker ->验收。

代码语言:javascript
复制
2016-09-12 02:14:52,245 | WARN  | qtp18647439-126  | AbstractJAXBProvider             | 40 - org.apache.cxf.cxf-rt-frontend-jaxrs - 3.1.6 | javax.xml.bind.JAXBException

 - with linked exception:

[java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory not found by cxf-dosgi-ri-dsw-cxf [13]]
代码语言:javascript
复制
Here is my feature dependencies:

```javascript

scr

白羊座-rsa核心

cxf-dosgi-provider-cxf

代码语言:javascript
复制
here is my assembly:

```javascript
代码语言:javascript
复制
    <configuration>
代码语言:javascript
复制
        <startupFeatures>
代码语言:javascript
复制
            <feature>eventadmin</feature>
代码语言:javascript
复制
        </startupFeatures>
代码语言:javascript
复制
        <bootFeatures>
代码语言:javascript
复制
            <feature>minimal</feature>
代码语言:javascript
复制
            <feature>shell</feature>
代码语言:javascript
复制
            <feature>shell-compat</feature>
代码语言:javascript
复制
            <feature>aries-blueprint</feature>
代码语言:javascript
复制
            <feature>scr</feature>
代码语言:javascript
复制
            <feature>aries-rsa-core</feature>
代码语言:javascript
复制
            <feature>cxf-jaxrs</feature>
代码语言:javascript
复制
            <feature>cxf-dosgi-provider-cxf</feature>
代码语言:javascript
复制
            <feature>calculator</feature>
代码语言:javascript
复制
        </bootFeatures>
代码语言:javascript
复制
    </configuration>
代码语言:javascript
复制
my REST service API

```javascript

@组件(

代码语言:javascript
复制
    name = "org.play.karaf.calculator.proxy.root",
代码语言:javascript
复制
    service = {ProxyRoot.class},
代码语言:javascript
复制
    property = {
代码语言:javascript
复制
        "service.exported.interfaces=*",
代码语言:javascript
复制
        "service.exported.configs=org.apache.cxf.rs",
代码语言:javascript
复制
        "org.apache.cxf.rs.httpservice.context=/calculator",
代码语言:javascript
复制
        "org.apache.cxf.rs.address=/proxy"
代码语言:javascript
复制
    }

)

公共类ProxyRootProvider实现ProxyRoot {.

代码语言:javascript
复制

我的模型仍然是JAXB实现,它应该由CXF的默认提供程序来实现。我需要添加提供程序吗?

我试过:

  • Karaf 4.0.5和4.0.6
  • CXF 3.1.6和3.1.7
  • 白羊座1.8.0& 1.9.0
  • DOSGi 1.8.0

我在集会舞台上错过了什么来让发行版发挥作用?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-05-19 13:46:08

您有一个错误的特性: cxf-dosgi-provider-cxf必须是cxf-dosgi-provider-rs

此外,还比较了karaf _home/lib/ and中的库,这些库在您的定制karaf程序集中和默认的karaf分发中得到了认可。如果不相同,请将所有认可的库添加到您的配置中。

例如:

代码语言:javascript
复制
    <libraries>
         <library>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxp-api-1.4/2.8.0;type:=endorsed</library>
         <!-- ... other libraries -->
    </libraries>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39445538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档