Ho integrato con successo Grizzly v2.1.9
con Jersey
e Spring
. Ma non è riuscito a farlo funzionare quando si prova a migrare Grizzly
nella versione 2.2.19
.Integrazione Grizzly2.2.X con Jersey e Spring
Il codice originale con Grizzly v2.1.9
è il seguente.
HttpServer server = new HttpServer();
NetworkListener listener = new NetworkListener("grizzly2", "localhost", 3388);
server.addListener(listener);
ServletHandler sa = new ServletHandler();
sa.setContextPath("/");
sa.setServletInstance(new SpringServlet());
sa.addContextParameter("contextConfigLocation", "classpath:spring-context.xml");
sa.addServletListener("org.springframework.web.context.ContextLoaderListener");
sa.addServletListener("org.springframework.web.context.request.RequestContextListener");
ServerConfiguration config = server.getServerConfiguration();
config.addHttpHandler(sa, new String[] {"/"});
server.start();
E il nuovo codice con Grizzly v2.2.19
è come sotto
HttpServer server = new HttpServer();
NetworkListener listener = new NetworkListener("grizzly2", "localhost", 3388);
WebappContext ctx = new WebappContext("ctx","/");
final ServletRegistration reg = ctx.addServlet("spring", new SpringServlet());
reg.addMapping("/*");
ctx.addContextInitParameter("contextConfigLocation", "classpath:spring-context.xml");
ctx.addListener("org.springframework.web.context.ContextLoaderListener");
ctx.addListener("org.springframework.web.context.request.RequestContextListener");
ctx.deploy(server);
server.start();
Il nuovo codice potrebbe essere compilato ed eseguito senza alcuna eccezione. Tuttavia tutti gli URL che devono essere inoltrati a diversi metodi da Jersey
vengono ora tutti inoltrati alla pagina predefinita "/".
UPDATE
Per qualcuno che incontra lo stesso problema.
E 'fissato dopo Grizzly2.2.20