我的小组接管了一堆申请。所有应用程序都部署在JBoss EAP 6.4.x服务器上。
我遇到问题的一个应用程序是这个Spring启动应用程序,经过大量的挖掘后,我发现它似乎源于主弹簧启动应用程序的onStartup方法。这是有问题的方法。
public void onStartup(ServletContext container) throws ServletException {
container.getSessionCookieConfig().setSecure(true);
container.getSessionCookieConfig().setHttpOnly(true);
AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
ServletRegistration.Dynamic registration = container.addServlet("dispatcher", new DispatcherServlet(context));
registration.setLoadOnStartup(1);
registration.addMapping("/*"); // required JBOSS EAP 6 / AS 7
super.onStartup(container);
container.addListener(new CustomHttpSessionListener());
}
所以我遇到的问题是,如果我保留原样,构建应用程序,将war文件部署到我的本地jboss实例,它一旦尝试执行操作就不起作用。我可以进入登录屏幕,但在调试时尝试登录时,甚至没有命中应用程序代码。它直接跳转到错误处理程序控制器。
现在我最终只是试着注释掉修改容器/ sessionCookieConfig()的3行,并且在那时我的本地安装工作正常。这个应用程序在另一个环境中工作正常,所以我假设有一些JBoss配置我必须在setSecure / setHttpOnly周围的服务器上丢失。有人有想法指出我正确的方向吗?在这一点上,我已经花了15个多小时来搜索周围的事情并尝试着。