У меня есть проект с Spring и несколько сервисов.Я пытаюсь включить кучу услуг отдыха в нем.Дело в том, что встроенный джет-сервер находится в экземпляре @Service, и по многим причинам я не могу его коснуться.Итак, я попытался настроить этот сервер с моими новыми требованиями и не могу.
Я пытался отказаться от классического подхода вне логики проекта, и он работает:
public class Starter {
public static void main( final String[] args ) throws Exception {
Server server = new Server( 8888 );
// Register and map the dispatcher servlet
final ServletHolder servletHolder = new ServletHolder( new CXFServlet() );
final ServletContextHandler context = new ServletContextHandler();
context.setContextPath( "/" );
context.addServlet( servletHolder, "/rest/*" );
context.addEventListener( new ContextLoaderListener() );
context.setInitParameter( "contextClass", AnnotationConfigWebApplicationContext.class.getName() );
context.setInitParameter( "contextConfigLocation", AppConfig.class.getName() );
server.setHandler( context );
server.start();
server.join();
}
}
Но если я попытаюсь сделать то же самое в контексте службы Spring, он не будет работать.
Если я использую ту же инициализацию внутри него, я получу:
WARN Can't find the the request for http://localhost:8888/rest/api/people's Observer
Я пытался изменить в applicationContext.xml, чтобы включить остальные необходимые классы, но в этом случае / api / resource был зарегистрирован дважды.
Я уверен, что яне понимая что-то:)