gpt4 book ai didi

spring - 组件扫描在 Tomcat webapp 的 JAR 中找不到 @Component

转载 作者:行者123 更新时间:2023-12-03 18:27:02 24 4
gpt4 key购买 nike

我刚刚在 Spring bugsystem ( https://jira.springsource.org/browse/SPR-8551 ) 中提交了一个错误,但我仍然不确定我是否遗漏了什么

我通过 <context:component-scan/> 找到了一个问题对这个声明。
给定以下两个类,它们位于 Web 应用程序的 WEB-INF/lib 中的同一个 JAR 中(JAR 文件具有目录结构):

测试/TheBean.java:

package test;
@Component
public class TheBean{
}

测试/BeanSearcher.java:
package test;
public class BeanSearcher{

public void init(){
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
ctx.scan("test");
ctx.refresh();
TheBean b= ctx.getBean(TheBean.class);
// What is the value of b?
}
}

如果我运行 new BeanSearcher().init()在 jUnit 测试用例或其他类型的独立应用程序中,b 被分配了一个 TheBean 实例,但是如果我在 JSP 中运行它, ctx.getBean()正在返回空值。

那么,我是做错了什么还是没有考虑到某些事情,这只是一个错误......?

编辑 8/8/2011:当我试图简化问题时,它似乎工作得很好,但是,当我尝试让它工作时,在 OpenCms 的初始化中,它还是失败了。现在我试图寻找工作版本和不工作版本之间的差异。 (类加载器,相关类在不同 JAR 中的泛化或直接在 WEB-INF/classes 中,通过反射调用等)

最佳答案

正如我在评论中所写,解决方案由此处的答案给出:
Spring Annotation-based controllers not working if it is inside jar file

When you export the jar file using the export utility in eclipse there is a option called Add directory entries.

关于spring - 组件扫描在 Tomcat webapp 的 JAR 中找不到 @Component,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6773912/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com