我有一个jar文件(保存在jboss-home / server / default / lib中)和一个war文件(保存在jboss-home / server / default / deploy中)。 jar文件包含一个初始化spring上下文的servlet。 servlet是从war文件初始化的。
问题是不会扫描jar文件中的@Component(和@Service等)注释。它给出了NoSuchBeanDefinitionException错误。我已在上下文xml中声明了以下内容。
<context:component-scan base-package="com.abc.mypack" />
在使用eclipse构建jar时,我也选择了“添加目录条目”。
如果我更改为基于xml的配置,它可以正常工作。或者,如果我将jar文件移动到war文件的WEB-INF / lib,它就可以工作。
有没有办法扫描jboss服务器lib目录中的组件?
我使用的是Spring 3.1和Jboss AS 6.
答案 0 :(得分:2)
这些注释不扫描库。他们扫描包,这意味着包含这些包的库需要在类路径上。
您所指的库很可能是在不同的类加载器上。
我建议将jar打包在war的WEB-INF / lib目录中。