У меня есть автономный проект весны, и мне нужно запустить встроенный сервис отдыха с ним. Я мог бы запустить сервер с гризли, моя проблема в том, что когда я запускаю сервер grizzly, он создает свой собственный контекст приложения. поэтому экземпляры, созданные моим родительским приложением, недоступны через службу REST.Grizzly, разделяя весенний контекст
В любом случае, существует разделение контекста родительского приложения между сервером Grizzly и родительским приложением, отличным от получения контекста сгенерированного гризли.
Это мой код для запуска сервера гризли.
public class RemotingServer {
private HttpServer httpServer;
private String host;
private int port;
public RemotingServer(String host, int port) {
this.host = host;
this.port = port;
}
public void init() throws Exception {
URI uri = UriBuilder.fromUri("http://" + host + "/").port(port).build();
ResourceConfig rc = new DefaultResourceConfig();
ConfigurableApplicationContext cac =
new ClassPathXmlApplicationContext("classpath:remoting-context.xml");
IoCComponentProviderFactory factory = new SpringComponentProviderFactory(rc, cac);
httpServer = GrizzlyServerFactory.createHttpServer(uri, rc, factory);
httpServer.start();
}
public void stop() {
httpServer.stop();
}
}
Я попытался установить текущий контекст как родитель cac
«s слишком. Затем я получил следующее исключение.
java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext
спасибо.