У нас есть наш проект, работающий на JBoss 6 с Spring 3.0.5. Все шло гладко, пока мы не попытались реализовать некоторые веб-сервисы с помощью JAX-WS. Если я попытаюсь сделать какой-нибудь простой WS (например, добавить 2 числа), это просто сработает - я добавлю аннотации и добавлю аннотированный класс в виде сервлета. Но все становится сложнее, если я пытаюсь заполнить свои классы JAX-WS зависимостями.
Вот мой код:
@WebService(name = "principal")
public class PrincipalWebService extends SpringBeanAutowiringSupport {
@Autowired
private PrincipalManager manager;
@WebMethod
public int add(int a, int b) {
return a + b;
}
@WebMethod
public Principal getById(int i) {
return manager.getById(i);
}
}
Метод добавления работает, но getById не работает с NPE. Я отлаживал SpringBeanAutowiringSupport, и похоже, что ContextLoader.getCurrentWebApplicationContext() возвращает значение null. Это означает, что конструктор SpringBeanAutowiringSupport вызывается до инициализации контекста.
Есть ли у кого-нибудь идеи о том, как заставить IoC работать с сервисами Jax-ws на JBoss 6?