java – 与Jersey和Spring集成Grizzly2.2.X
发布时间:2020-12-14 19:33:16 所属栏目:Java 来源:网络整理
导读:我已经成功地将Grizzly v2.1.9与Jersey和 Spring集成在一起.但是在尝试将Grizzly迁移到版本2.2.19时无法使其工作. Grizzly v2.1.9的原始代码如下. HttpServer server = new HttpServer();NetworkListener listener = new NetworkListener("grizzly2","localh
我已经成功地将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获取更多细节. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |