这是完整的答案。位和零件可以在online找到,但没有一个完整的答案,易于遵循/实施。
我会跳过maven部分,因为它很容易理解。
注册CXF的Servlet
@WebServlet(urlPatterns="/*")
public class CXFStartServlet extends CXFServlet {
}
注册所有的Spring bean与@Path作为CXF服务
@Configuration
public class MyCxfConfig {
@Autowired
private ApplicationContext ctx;
@Bean(name="cxf")
public SpringBus springBus(){
return new SpringBus();
}
@Bean
public Server jaxRsServer() {
LinkedList<ResourceProvider> resourceProviders = new LinkedList<ResourceProvider>();
for (String beanName : ctx.getBeanDefinitionNames()) {
if (ctx.findAnnotationOnBean(beanName, Path.class) != null) {
SpringResourceFactory factory = new SpringResourceFactory(beanName);
factory.setApplicationContext(ctx);
resourceProviders.add(factory);
}
}
JAXRSServerFactoryBean factory = new JAXRSServerFactoryBean();
factory.setBus(ctx.getBean(SpringBus.class));
factory.setProviders(Arrays.asList(new JacksonJsonProvider()));
factory.setResourceProviders(resourceProviders);
return factory.create();
}
}
不要忘记导入 “MyCxfconfig” 在你的Spring配置。这就是全部:)