Я использую Jetty 9.1 и Jersey 2.5.1. В Джерси есть встроенная поддержка Jetty, поэтому я запускаю свой сервер следующим образом:
public static void main(String[] args) {
URI baseUri = UriBuilder.fromUri("http://localhost/").port(8080).build();
ResourceConfig config = ResourceConfig.forApplicationClass(MyApplication.class);
Server server = JettyHttpContainerFactory.createServer(baseUri, config);
}
MyApplication просто вызывает this.packages(...)
для поиска моих классов API REST.
Однако класс API REST содержит @Inject
аннотированное поле, которое должно быть введено WELD. Очевидно, WELD не запущен (поддержка CDI не включена), и, что еще более странно, похоже, что HK2 (используемый Джерси 2) пытается выполнить инъекцию.
(У меня org.glassfish.hk2.api.UnsatisfiedDependencyException
при нажатии на конечную точку REST).
Как правильно настроить WELD (желательно программно)?