Spring java配置找不到通过context:component-scan创建的bean

时间:2012-06-13 17:07:30

标签: spring jax-rs

到目前为止,我已经将xml和java配置混合得非常成功,但是有一个用例似乎不起作用。 我让spring使用组件扫描配置我的JAX-RS资源并正确解析它们:

<context:component-scan
    base-package="<my packages>">
    <context:include-filter type="annotation"
        expression="javax.ws.rs.Path" />
...

但是如果我尝试在我的java配置中调用其中一个类:

HttpInvokerServiceExporter exp = new HttpInvokerServiceExporter();
exp.setService(context.getBean(Users.class));

我收到此错误: 没有定义[com.gecod.allianz.arco.web.restresources.Users]类型的唯一bean:期望的单个bean,但找到0:

一种解决方案可能是在xml或java配置中声明JAX-RS bean,但这种方式Resteasy不会将它们识别为JAX-RS资源。

我认为我有竞争条件,有任何提示吗?

1 个答案:

答案 0 :(得分:0)

看看这是否效果更好

<beans xmlns="http://www.springframework.org/schema/beans"       xmlns:mvc="http://www.springframework.org/schema/mvc"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"       xmlns:context="http://www.springframework.org/schema/context"       xsi:schemaLocation="        http://www.springframework.org/schema/beans         http://www.springframework.org/schema/beans/spring-beans-3.1.xsd        http://www.springframework.org/schema/context         http://www.springframework.org/schema/context/spring-context-3.1.xsd        http://www.springframework.org/schema/mvc        http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd">            <context:annotation-config />    
<context:component-scan base-package="com.blah.blah" />