Question

I am trying to make this run for days now and I can't figure out how to do it. Perhaps someone else has an idea or has done this already?

I want to deploy my application on a grizzly embedded server. I configured my Spring application using JavaConfig, and that worked out pretty good so far, but now I seem to be stuck. Here is the code I use to deploy my Jersey stuff to 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();

Now as far as I can tell the following line is the problem.

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

I have a beans.xml in which I configure the spring security stuff, but all the other beans I use are declared via JavaConfig. So, if I only pass the beans.xml, the application will only have access to the beans declared in there. What I really want to so is to pass my ApplicationContext so that all my beans can be retrieved properly.

I there a way to pass my ApplicationContext with the deployment as well? Or has someone a better idea on how to make this work?

Was it helpful?

Solution

Try this

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

And you should not use com.sun.jersey.config.property.packages anymore as you already use Spring to manage the beans.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top