在 Spring 引导属性或 YAML 文件中为 CXF JAX-RS 添加 JSON 提供程序

Add JSON provider for CXF JAX-RS in Spring Boot properties or YAML file

如何将 endpoint.setProvider(new JacksonJsonProvider()); 移动到应用程序属性文件中?

 @Bean
    public Server rsServer() {
        JAXRSServerFactoryBean endpoint = new JAXRSServerFactoryBean();
        endpoint.setBus(bus);
        endpoint.setProvider(new JacksonJsonProvider());
        endpoint.setServiceBeans(asList(new CustomerServiceDefault()));
        endpoint.setAddress("/");
        endpoint.setFeatures(asList(new Swagger2Feature()));
        return endpoint.create();
    }

首先,如果您还没有这样做,您必须添加与提供商的依赖关系:

    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-jaxrs</artifactId>
        <version>1.9.0</version>
    </dependency>

然后您需要为 JAX-RS 扫描添加带有 Jackson 实体提供程序的程序包(在本例中为 org.codehaus.jackson.jaxrs),以及您创建的其他程序包。我正在使用 yaml 配置和 class 扫描而不是组件扫描,它看起来是这样的:

cxf:
  path: /services
  servlet.init: 
    service-list-path: /info
  jaxrs:
    classes-scan: true
    classes-scan-packages: com.yourcompany.package.with.your.handlers,org.codehaus.jackson.jaxrs