I'm trying to setup Spring MVC project without dispatcher xml and web xml(i.e. without any xml at all). Hence, I'm using @JavaConfig technique of Spring. However, whenever I'm trying to start the application on my server my server it's not working(without throwing any exception it's getting HTTP 404).
Here is the snapshot of the project structure...
And here the code snippets:
WebConfig.java
@EnableWebMvc
@Configuration
@ComponentScan({ "com.controller" })
public class WebConfig extends WebMvcConfigurerAdapter {
private static final String VIEW_LOCATION = "/WEB-INF/views/";
private static final String SUFFIX = ".jsp";
// @Override
// public void addResourceHandlers(ResourceHandlerRegistry registry) {
// System.out.println("in resource");
// registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
// }
@Bean
public InternalResourceViewResolver viewResolver() {
System.out.println("in view");
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix(VIEW_LOCATION);
viewResolver.setSuffix(SUFFIX);
return viewResolver;
}
}
Initializer.java
public class Initializer extends AbstractAnnotationConfigDispatcherServletInitializer {
private static final String MAPPING_URL = "/";
@Override
protected Class<?>[] getRootConfigClasses() {
System.out.println("in config");
return new Class[] { WebConfig.class };
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[] { WebConfig.class };
}
@Override
protected String[] getServletMappings() {
System.out.println("dispatcher");
return new String[] { MAPPING_URL };
}
}
HelloController.java
@Controller
public class HelloController {
@RequestMapping(value = "/", method = RequestMethod.GET)
public String printWelcome() {
System.out.println("in servlet");
return "index";
}
}
And here is the pox.xml snippet:
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>com</groupId>
<artifactId>UI</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>UI Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
<finalName>UI</finalName>
</build>
</project>