Разверните приложение Spring и Jersey с JavaConfig на Grizzly

Я пытаюсь сделать этот запуск в течение нескольких дней, и я не могу понять, как это сделать. Возможно, у кого-то есть идея или он уже сделал это?

Я хочу развернуть свое приложение на встроенном сервере гризли. Я настроил свое приложение 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 вместе с развертыванием? Или у кого-то есть лучшая идея о том, как заставить это работать?


person evermean    schedule 16.06.2013    source источник


Ответы (1)


Попробуй это

ctx.addContextInitParameter("contextConfigLocation", "classpath:com/myapp/config/beans.xml")

И вам больше не следует использовать com.sun.jersey.config.property.packages, так как вы уже используете Spring для управления бинами.

person Willy    schedule 18.06.2013