Spring 弹簧&x2B;Apache CXF:SearchContextProvider未初始化

Spring 弹簧&x2B;Apache CXF:SearchContextProvider未初始化,spring,jax-rs,cxf,Spring,Jax Rs,Cxf,我正在将Spring Boot与Apache CXF集成。一切正常,但我无法让SearchContext在控制器内工作: @Context private SearchContext context; public @ResponseBody List<Users> getAll(@Context SearchContext context, @RequestParam String search){ .... } 我使用的是基于Java的配置,没有XML。 在基于XML

我正在将Spring Boot与Apache CXF集成。一切正常,但我无法让
SearchContext
在控制器内工作:

@Context
private SearchContext context;

public @ResponseBody List<Users> getAll(@Context SearchContext context, @RequestParam String search){
    ....
}
我使用的是基于Java的配置,没有XML。 在基于XML的配置中,似乎需要此标记:

<jaxrs:providers>
        <bean class="org.apache.cxf.jaxrs.ext.search.SearchContextProvider"/>
</jaxrs:providers>


如何在servlet的基于Java的配置中声明提供程序?

在主配置类中,添加:

@ComponentScan("org.apache.cxf.jaxrs")
由于类(
SearchContextProvider
)已经用
@Provider
注释进行了注释,因此如果正在扫描,Spring将能够拾取该类。假设您已经在自己的软件包上进行组件扫描,您只需添加jaxrs软件包,如下所示:

@ComponentScan({ "com.something", "org.apache.cxf.jaxrs" })

为什么要这样做?Wy应该关心cxf注释和类。。。您正在混合两种技术,这两种技术不是为协同工作而设计的。@m-denium来自spring官方文档:Jersey 1.x和Apache CXF,如果您只是在应用程序上下文中将它们的Servlet或过滤器注册为\@Bean,那么这两种技术就可以很好地开箱即用。请更正,我没有说过Apache CXF不起作用,或者您可以自动连接Apache CXF web服务。但是,不能在spring控制器上使用apache CXF中的类型/注释。这不会起作用。很好的提示,但我现在得到的
调用方法public abstract org.apache.cxf.jaxrs.ext.search.search.org.apache.cxf.jaxrs.ext.search.SearchContext.getCondition(java.lang.String,java.lang.Class)不是访问器方法
@ComponentScan({ "com.something", "org.apache.cxf.jaxrs" })