2016-09-22 19 views
2

如何將endpoint.setProvider(new JacksonJsonProvider());移動到應用程序屬性文件中?在Spring Boot屬性或YAML文件中爲CXF JAX-RS添加JSON提供程序

@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(); 
    } 

回答

1

首先,如果你還沒有這樣做的話,你必須增加與供應商的依賴:

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

然後,你需要與傑克遜實體提供商JAX-RS掃描添加的軟件包(在這種情況下爲org.codehaus.jackson.jaxrs)以及您創建的其他軟件包。我使用的YAML配置和一流的掃描,而不是組件掃描,這裏是它的外觀:

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 
+0

我怎樣才能做到這一點與GSON – amod

+0

對不起,我只與傑克遜用它@amod - 也許別人知道... –

+0

我問了一個問題,但沒有迴應。但我最終使用了傑克遜。你能告訴我Jackson版本2應該使用什麼軟件包嗎? – amod

相關問題