java – 与Jersey和Spring集成Grizzly2.2.X

前端之家收集整理的这篇文章主要介绍了java – 与Jersey和Spring集成Grizzly2.2.X前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经成功地将Grizzly v2.1.9与Jersey和 Spring集成在一起.但是在尝试将Grizzly迁移到版本2.2.19时无法使其工作.

Grizzly v2.1.9的原始代码如下.

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();

Grizzly v2.2.19的新代码如下所示

HttpServer server = new HttpServer();
NetworkListener listener = new NetworkListener("grizzly2",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();

代码可以毫无例外地编译和执行.但是,应该由Jersey转发到不同方法的所有URL现在都转发到默认页面“/”.

UPDATE

对于遇到同样问题的人.

它在Grizzly2.2.20之后修复

解决方法

最后,我在向java.net发送电子邮件后得到了解决方法.

更改

WebappContext ctx = new WebappContext("ctx","/");

WebappContext ctx = new WebappContext("ctx","");

可以按照这个link获取更多细节.

猜你在找的Java相关文章