我正在将Spring Boot与Apache CXF集成。 Everyhthing还可以,但是我无法让SearchContext
在控制器内工作:
@Context
private SearchContext context;
public @ResponseBody List<Users> getAll(@Context SearchContext context, @RequestParam String search){
....
}
SearchContext未正确注入,因为SearchContextProvider
未在包org.apache.cxf.jaxrs.ext.search
中创建。
我正在使用这个Bean启动CXF Servlet:
@Bean
public ServletRegistrationBean cxfServlet() {
CXFServlet cxf = new CXFServlet();
ServletRegistrationBean registration = new ServletRegistrationBean(cxf, "/api/*");
return registration;
}
我使用的是基于Java的配置,没有XML。 在基于XML的配置中,似乎需要此标记:
<jaxrs:providers>
<bean class="org.apache.cxf.jaxrs.ext.search.SearchContextProvider"/>
</jaxrs:providers>
如何在基于Java的servlet配置中声明提供程序?
答案 0 :(得分:0)
在主配置类中,添加:
@ComponentScan("org.apache.cxf.jaxrs")
由于类(SearchContextProvider
)已经注释了@Provider
注释,因此如果正在扫描,Spring将能够将其选中。假设您已经在自己的包上进行了组件扫描,您可以添加jaxrs包,如:
@ComponentScan({ "com.something", "org.apache.cxf.jaxrs" })