0

我正在尝试运行几天,但我不知道该怎么做。也许其他人有想法或已经这样做了?

我想将我的应用程序部署在一个灰色的嵌入式服务器上。我使用 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 吗?或者有人对如何使这项工作有更好的想法?

4

1 回答 1

2

尝试这个

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

而且您不应该再使用com.sun.jersey.config.property.packages,因为您已经使用它Spring来管理 bean。

于 2013-06-18T09:11:01.000 回答