Spring组件扫描不扫描jboss服务器lib目录

发布于 2024-11-26 12:54:40 字数 560 浏览 2 评论 0原文

我有一个 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。

I have a jar file (kept in jboss-home/server/default/lib) and a war file (kept in jboss-home/server/default/deploy). The jar file contains a servlet which initializes the spring context. The servlet is initialized from the war file.

The problem is that the @Component (and @Service, etc) annotations in the jar file are not scanned. It gives NoSuchBeanDefinitionException error. I have declared the following in context xml.

<context:component-scan base-package="com.abc.mypack" />

I have also selected "Add directory entries" when building the jar using eclipse.

If I change to xml based configuration, it works. Or, if I move the jar file to WEB-INF/lib of the war file, it works.

Is there a way to scan the jboss server lib directory for components?

I am using spring 3.1 and Jboss AS 6.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦里梦着梦中梦 2024-12-03 12:54:40

这些注释不会扫描库。它们扫描包,这意味着包含这些包的库需要位于类路径上。

您引用的库很可能位于不同的类加载器上。

我建议将 jar 打包到 war 的 WEB-INF/lib 目录中。

Those annotations don't scan libraries. They scan packages, which means that the libraries containing those packages need to be on the classpath.

Most-likely the libraries you're referring to are on different classloaders.

I would suggest packaging the jar within the war's WEB-INF/lib directory.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文