Я пытаюсь сделать этот запуск в течение нескольких дней, и я не могу понять, как это сделать. Возможно, у кого-то есть идея или он уже сделал это?
Я хочу развернуть свое приложение на встроенном сервере гризли. Я настроил свое приложение Spring с помощью JavaConfig, и до сих пор это работало довольно хорошо, но теперь я, кажется, застрял. Вот код, который я использую для развертывания своих вещей из Джерси в гризли:
HttpServer server = new HttpServer();
NetworkListener listener = new NetworkListener("grizzly2", "localhost", 4433);
server.addListener(listener);
WebappContext ctx = new WebappContext("ctx","/");
final ServletRegistration reg = ctx.addServlet("spring", new SpringServlet());
reg.addMapping("/*");
reg.setInitParameter("com.sun.jersey.config.property.packages", "com.myapp.http.webservices");
ctx.addContextInitParameter("contextConfigLocation", "com/myapp/config/beans.xml");
ctx.addListener("org.springframework.web.context.ContextLoaderListener");
ctx.addListener("org.springframework.web.context.request.RequestContextListener");
ctx.addFilter("springSecurityFilterChain", new DelegatingFilterProxy());
ctx.deploy(server);
server.start();
Теперь, насколько я могу судить, проблема в следующей строке.
ctx.addContextInitParameter("contextConfigLocation", "com/myapp/config/beans.xml");
У меня есть beans.xml
, в котором я настраиваю средства безопасности Spring, но все остальные компоненты, которые я использую, объявляются через JavaConfig. Итак, если я передам только beans.xml
, приложение будет иметь доступ только к объявленным там bean-компонентам. Чего я действительно хочу, так это передать мой ApplicationContext, чтобы все мои bean-компоненты могли быть правильно получены.
Есть ли способ передать мой ApplicationContext вместе с развертыванием? Или у кого-то есть лучшая идея о том, как заставить это работать?