Я только что зарегистрировал ошибку в системе ошибок Spring ( https: // jira .springsource.org / browse / SPR-8551 ), но я все еще не уверен, что я что-то упускаю.
Я обнаружил проблему с
для этого заявление.
Учитывая два следующих класса, которые находятся в одном JAR в WEB-INF / lib веб-приложения (файл JAR имеет структуру каталогов):
test / TheBean.java:
package test;
@Component
public class TheBean{
}
test / 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 ()
возвращает значение null.
Итак, я что-то делаю не так или не принимаю во внимание, это просто ошибка ...?
РЕДАКТИРОВАТЬ 8/8 / 2011: Кажется, он работает хорошо, поскольку я пытался упростить задачу, но все же, когда я пытаюсь заставить его работать, при инициализации OpenCms это не удается. Сейчас я пытаюсь найти отличия рабочих версий от неработающей. (Загрузчик классов, использование соответствующих классов в разных JAR-файлах или непосредственно в WEB-INF / classes, вызовы через отражение и т. Д.)