在 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
如何将 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