From 7896b8b861afd8f80760ce01eda03e9879ec570d Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Wed, 19 Dec 2018 14:22:19 +0100
Subject: [PATCH] "/" is mapped as "/index.xhtml"

---
 .../mapviewer/web/config/SpringWebConfig.java |  5 ----
 .../web/config/WebAppInitializer.java         | 13 +++++++++++
 .../web/controler/RootController.java         | 23 +++++++++++++++++++
 3 files changed, 36 insertions(+), 5 deletions(-)
 create mode 100644 web/src/main/java/lcsb/mapviewer/web/controler/RootController.java

diff --git a/web/src/main/java/lcsb/mapviewer/web/config/SpringWebConfig.java b/web/src/main/java/lcsb/mapviewer/web/config/SpringWebConfig.java
index cde7bc1426..2d829aff04 100644
--- a/web/src/main/java/lcsb/mapviewer/web/config/SpringWebConfig.java
+++ b/web/src/main/java/lcsb/mapviewer/web/config/SpringWebConfig.java
@@ -12,11 +12,6 @@ import org.springframework.web.servlet.config.annotation.*;
 @ComponentScan(basePackages = {"lcsb.mapviewer.web"})
 public class SpringWebConfig extends WebMvcConfigurerAdapter {
 
-  @Override
-  public void addViewControllers(ViewControllerRegistry registry) {
-    registry.addViewController("/").setViewName("/index.xhtml");
-  }
-
   @Override
   public void addResourceHandlers(ResourceHandlerRegistry registry) {
     registry
diff --git a/web/src/main/java/lcsb/mapviewer/web/config/WebAppInitializer.java b/web/src/main/java/lcsb/mapviewer/web/config/WebAppInitializer.java
index 61ee98c8bb..d2dafd2f38 100644
--- a/web/src/main/java/lcsb/mapviewer/web/config/WebAppInitializer.java
+++ b/web/src/main/java/lcsb/mapviewer/web/config/WebAppInitializer.java
@@ -128,6 +128,19 @@ public class WebAppInitializer implements WebApplicationInitializer {
     restApiDispatcher.setLoadOnStartup(1);
     restApiDispatcher.addMapping("/api/*");
 
+    /*
+     * ================ WEB CONTEXT ================
+     */
+
+    AnnotationConfigWebApplicationContext webContext = new AnnotationConfigWebApplicationContext();
+    webContext.setParent(rootContext);
+    webContext.register(SpringWebConfig.class);
+    ServletRegistration.Dynamic webDispatcher = container.addServlet("WEB Servlet",
+        new DispatcherServlet(webContext));
+    webDispatcher.setLoadOnStartup(1);
+    webDispatcher.addMapping("/");
+
+    
     /*
      * ======= FILTERS =======
      */
diff --git a/web/src/main/java/lcsb/mapviewer/web/controler/RootController.java b/web/src/main/java/lcsb/mapviewer/web/controler/RootController.java
new file mode 100644
index 0000000000..92959e5ed0
--- /dev/null
+++ b/web/src/main/java/lcsb/mapviewer/web/controler/RootController.java
@@ -0,0 +1,23 @@
+package lcsb.mapviewer.web.controler;
+
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.servlet.ModelAndView;
+
+@Controller
+@RequestMapping("/")
+public class RootController {
+  /**
+   * Default class logger.
+   */
+  private Logger logger = Logger.getLogger(RootController.class);
+
+  @RequestMapping(value = "/", method = { RequestMethod.GET, RequestMethod.POST })
+  public ModelAndView rootPage(ModelMap model) {
+    logger.debug("Accessing root page");
+    return new ModelAndView("/index.xhtml", model);
+  }
+}
\ No newline at end of file
-- 
GitLab