Сканирование компонентов не обнаруживает @ Component в JAR в Tomcat webapp

Я только что зарегистрировал ошибку в системе ошибок 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, вызовы через отражение и т. Д.)

6
задан Brian Tompsett - 汤莱恩 13 June 2015 в 14:23
поделиться