0

私はこれを何日も実行しようとしていますが、その方法がわかりません。おそらく、他の誰かがアイデアを持っているか、すでにこれを行っていますか?

アプリケーションを grizzly 組み込みサーバーにデプロイしたいと考えています。JavaConfig を使用して Spring アプリケーションを構成しましたが、これまでのところうまくいきましたが、今は行き詰まっているようです。これは、ジャージーのも​​のをグリズリーにデプロイするために使用するコードです。

    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春のセキュリティを構成するものを持っていますが、私が使用する他のすべての Bean は JavaConfig を介して宣言されています。したがって、 のみを渡すとbeans.xml、アプリケーションはそこで宣言された Bean にのみアクセスできます。私が本当にしたいのは、ApplicationContext を渡して、すべての Bean を適切に取得できるようにすることです。

私の ApplicationContext をデプロイにも渡す方法はありますか? または、これを機能させる方法について誰かがより良いアイデアを持っていますか?

4

1 に答える 1

2

これを試して

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

また、Bean の管理にcom.sun.jersey.config.property.packages既に使用しているため、もう使用しないでください。Spring

于 2013-06-18T09:11:01.000 に答える