java - 如何将 javax.ws.rs.core.Feature 与 CXF 一起使用?

标签 java spring jax-rs cxf

我想使用我通过 CXF 创建的 JAX-RS 功能。

如果可能的话,我更愿意使用 JAX-RS 功能 (javax.ws.rs.core.Feature),而不是 CXF 功能 (org.apache.cxf.feature.feature)。功能)。 我还更喜欢使用 SpringComponentScanServer (org.apache.cxf.jaxrs.spring.SpringComponentScanServer) 来配置 CXF,而不必手动创建服务器工厂。

以下是我尝试配置 CXF 的方法:

import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
import com.mycustomapp.restexception.providers.RestExceptionFeature;
import org.apache.cxf.jaxrs.spring.SpringComponentScanServer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

@Configuration
@Import(SpringComponentScanServer.class)
public class CxfConfiguration
{
    @Bean
    public RestExceptionFeature restExceptionFeature()
    {
        return new RestExceptionFeature();
    }

    @Bean
    public JacksonJsonProvider jacksonJsonProvider()
    {
        return new JacksonJsonProvider();
    }
}

这是我的自定义功能:

import javax.ws.rs.core.Feature;
import javax.ws.rs.core.FeatureContext;
import javax.ws.rs.ext.Provider;

@Provider
public class RestExceptionFeature implements Feature
{
    @Override
    public boolean configure(FeatureContext context)
    {
        context.register(RestExceptionBodyReader.class);
        context.register(RestExceptionMapper.class);
        context.register(RestExceptionCxfClientMapper.class);

        return true;
    }
}

RestExceptionFeature.configure() 永远不会被调用。

最佳答案

已创建票证 https://issues.apache.org/jira/browse/CXF-6879 当 CXF 3.1.7 发布时,我的代码应该可以在 CXF 3.1.7 中运行。

如果我使用http://repository.apache.org/snapshots/中的CXF 3.1.7-SNAPSHOT或CXF 3.2.0-SNAPSHOT,它现在可以工作

关于java - 如何将 javax.ws.rs.core.Feature 与 CXF 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36832092/

相关文章:

java - 未从查询字符串获取值

jenkins - 泽西客户端 : Authentication fails at redirect by Jenkins

java - 条形码扫描仪使用 ML Kit 仅读取 QR 码

java - Travis CI - android 构建失败。没有连接的设备错误

java - Android Activity 启动时崩溃

java - Spring 3、ldap 和查询自动完成文本字段

java - Android/Java关闭onClick问题?

java - 为什么RestController要公开CrudRepository中的所有操作?

java - 如何将响应实体封装到 Swagger 中的主模板响应中?

java - GlassFish JAX-RS Jackson 自定义 JSON 序列化