我正在尝试运行几天,但我不知道该怎么做。也许其他人有想法或已经这样做了?
我想将我的应用程序部署在一个灰色的嵌入式服务器上。我使用 JavaConfig 配置了我的 Spring 应用程序,到目前为止效果很好,但现在我似乎被卡住了。这是我用来将我的 Jersey 东西部署到 grizzly 的代码:
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 安全性的东西,但是我使用的所有其他 bean 都是通过 JavaConfig 声明的。所以,如果我只通过beans.xml
,应用程序将只能访问其中声明的 bean。我真正想要的是传递我的 ApplicationContext 以便可以正确检索我的所有 bean。
我有办法通过部署传递我的 ApplicationContext 吗?或者有人对如何使这项工作有更好的想法?