【发布时间】:2014-03-31 13:18:38
【问题描述】:
我正在创建一个将使用 jar 文件中的类的战争。
现在这个 jar 文件在其 associationApplicationContext.xml 中有一个暴露的 bean,它在其一些属性上使用 @Required 注释进行初始化。
associationApplicationContext.xml
例如
<!-- processes @Required annotations-->
<bean class="org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor"/>
<!-- The client bean to access the association rest web service -->
<bean id="associationClient" class="com.springtest.client.AssociationClientImpl">
<property name="associationRestClient" ref="associationServiceRestClient" />
</bean>
所以在AssociationClient 内部,属性associationRestClient 在其setter 方法上具有@Required 标记。
@Required
public void setAssociationRestClient(final AssociationRestClient associationRestClient) {
this.associationRestClient= associationRestClient;
}
现在,当我尝试在我的 war 文件中使用这个 bean 时 -
我已经把jar依赖放到了war文件的pom.xml中
已经将contextConfigLocation 放入web.xml 为
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:/associationApplicationContext.xml
</param-value>
</context-param>
在另一个applicationcontext.xml文件中使用war文件中的bean作为
<import resource="classpath:/associationApplicationContext.xml"/>
<bean id="requestHandlerV1"
class="com.springtest.application.RequestHandlerV1">
<property name="associationClient" ref="associationClient"></property>
</bean>
这里的属性associationClient 没有被初始化,因为它找不到对bean associationRestClient 的引用,即associationServiceRestClient
我来了
org.springframework.beans.factory.NoSuchBeanDefinitionException:没有定义名为“associationServiceRestClient”的bean
如何在此处初始化associationClient 的对象?
PS:我无法更改使用@Required 注释的实现
【问题讨论】:
-
在导入资源中,classpath:/associationApplicationContext.xml.xml (.xml.xml) 不是错字吗?
-
已更正。但这只是一个例子。我不能放原始文件。
-
你能从 web.xml 中发布 sn-p,其中 applicationcontext.xml 被设置为 servlet 的配置参数吗?
-
JerseySpringWebApplication com.sun.jersey.spi.spring.container.servlet.SpringServlet contextConfigLocation classpath:/applicationcontext.xml 1-on-startup> JerseySpringWebApplication /service/*模式> -
这里。我贴出来了。对不起(非)格式。
标签: java spring maven spring-mvc annotations