【问题标题】:CXF DOSGi is ignoring annotationsCXF DOSGi 忽略注释
【发布时间】:2011-09-15 20:52:31
【问题描述】:

我正在使用JAX-RS example。 此示例包含两个 RESTful Web 服务,一个带有注释,另一个没有。

我使用 maven 构建它并将其部署到 Felix,以及 CXF DOSGi 单包分发。一个没有注释的工作正常,但是另一个有注释的似乎完全被忽略了。我在日志中收到以下消息:

WARNING: No resource methods have been found for resource class org.apache.cxf.dosgi.samples.greeter.rest.GreeterService
Jun 15, 2011 10:34:17 PM org.apache.cxf.jaxrs.AbstractJAXRSFactoryBean checkResources
SEVERE: No resource classes found
Exception in thread "pool-1-thread-1" org.apache.cxf.service.factory.ServiceConstructionException
        at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:122)
        at org.apache.cxf.dosgi.dsw.handlers.JaxRSPojoConfigurationTypeHandler.createServer(JaxRSPojoConfigurationTypeHandler.java:135)
        at org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminCore.exportService(RemoteServiceAdminCore.java:244)
        at org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminInstance$1.run(RemoteServiceAdminInstance.java:78)
        at org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminInstance$1.run(RemoteServiceAdminInstance.java:71)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminInstance.exportService(RemoteServiceAdminInstance.java:71)
        at org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminInstance.exportService(RemoteServiceAdminInstance.java:40)
        at org.apache.cxf.dosgi.topologymanager.TopologyManager$2.run(TopologyManager.java:254)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Caused by: javax.ws.rs.WebApplicationException
        at org.apache.cxf.jaxrs.AbstractJAXRSFactoryBean.checkResources(AbstractJAXRSFactoryBean.java:238)
        at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:85)
        ... 11 more

【问题讨论】:

    标签: java cxf jax-rs dosgi


    【解决方案1】:

    问题是我的包中有org.apache.servicemix.specs.jsr311-api-1.1。当我删除它时,处理了 JAX-RS 注释。

    UPD.:这里是 a thread on CXF mailing list 关于这个问题。

    【讨论】:

    • 大概你已经设法在类路径上两次获得一个具有同一个名称的类,因为 (D)OSGi 将不同的事物彼此分开。这确实会导致问题,因为 Java 的类标识实际上并不是在单个类加载器中按名称 except...
    猜你喜欢
    • 1970-01-01
    • 2016-08-19
    • 2012-03-30
    • 2016-05-22
    • 2021-05-11
    • 2011-11-13
    • 2012-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多