![](/img/trans.png)
[英]Jersey/Spring/Grizzly Integration Tests Always Returns 500 - No Details
[英]Integration Grizzly2.2.X with Jersey and Spring
我已经成功地将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", "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();
新代码可以毫无例外地编译和执行。 但是,应该由Jersey
转发到不同方法的所有URL现在都转发到默认页面“/”。
UPDATE
对于遇到同样问题的人。
它在Grizzly2.2.20之后修复
最后,我在向java.net发送电子邮件后得到了解决方法。
更改
WebappContext ctx = new WebappContext("ctx","/");
至
WebappContext ctx = new WebappContext("ctx","");
可以按照此链接获取更多详细信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.