Adr*_*nRM 6 spring web-applications opencms applicationcontext
我刚刚在Spring bug系统中提交了一个错误(https://jira.springsource.org/browse/SPR-8551),但我仍然不确定我是否遗漏了某些东西
我跟踪了<context:component-scan/>这个陈述的问题.给定以下两个类在Web应用程序的WEB-INF/lib中的相同JAR中(JAR文件具有目录结构):
测试/ TheBean.java:
package test;
@Component
public class TheBean{
}
Run Code Online (Sandbox Code Playgroud)
测试/ 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?
}
}
Run Code Online (Sandbox Code Playgroud)
如果我new BeanSearcher().init()在jUnit测试用例或其他类型的独立应用程序中运行,则会为b分配一个TheBean实例,但是如果我在JSP中运行它,ctx.getBean()则返回null.
所以,我做错了什么或没有考虑到一些事情,这只是一个错误......?
编辑8/8/2011:当我试图简化问题时似乎工作正常,但是,当我尝试使其工作时,在OpenCms的初始化中,它失败了.现在我试图寻找工作版本和不工作版本之间的差异.(类加载器,不同JAR中或直接在WEB-INF /类中的相关类的使用,通过反射调用等)
Adr*_*nRM 10
正如我在评论中写的那样,解决方案由以下答案给出: 基于Spring Annotation的控制器如果在jar文件中则不起作用
在eclipse中使用导出实用程序导出jar文件时,会出现一个名为Add directory entries的选项.
| 归档时间: |
|
| 查看次数: |
12978 次 |
| 最近记录: |