title: Spring mvc Java based Configuration not working. Console display no error but my jsp page is not showing
body: <p>Hello i am converting my simple demo project from bean configuration to pure java based configuration. Bean configuration works fine creating tables and all. But my java configuration is not displaying any pages. I solved many errors bur now console shows no error specifying the problem. here's my code please find whats wrong, or have i missed anything in the configuration. I am new to spring and fairly new to java based configuration. These are the sites from which i took code.</p>
  
  <p><a href="http://codehustler.org/blog/spring-security-tutorial-form-login-java-config/" rel="nofollow">http://codehustler.org/blog/spring-security-tutorial-form-login-java-config/</a></p>
  
  <p>for hibernate i use used this tutorial</p>
  
  <p><a href="http://websystique.com/spring/spring4-hibernate4-mysql-maven-integration-example-using-annotations/" rel="nofollow">http://websystique.com/spring/spring4-hibernate4-mysql-maven-integration-example-using-annotations/</a></p>
  
  <p>My classes </p>
  
  <pre><code>1. AppConfiguration
   package com.kharoud.configuration;
   import org.springframework.context.annotation.ComponentScan;
   import org.springframework.context.annotation.Configuration;
   import org.springframework.context.annotation.Import;
  
   @Configuration
   @ComponentScan({"com.kharoud"})
   @Import({MvcConfiguraion.class, RepositoryConfiguration.class})
   public class AppConfiguration {
  
   }
  </code></pre>
  
  <p>2.MvcConfigurtion</p>
  
  <pre><code>package com.kharoud.configuration;
  
  import org.springframework.beans.factory.annotation.Configurable;
  import org.springframework.context.annotation.Bean;
  import       org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
  import org.springframework.web.servlet.config.annotation.EnableWebMvc;
  import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
  import org.springframework.web.servlet.view.InternalResourceViewResolver;
  
  
  @EnableWebMvc
  @Configuration
  public class MvcConfiguraion extends WebMvcConfigurerAdapter{
  
  
  @Override
  public void configureDefaultServletHandling( DefaultServletHandlerConfigurer configurer ){      
      configurer.enable();
  }
  
  @Bean
  public InternalResourceViewResolver getInternalResourceViewResolver(){      
      InternalResourceViewResolver resolver = new InternalResourceViewResolver();
      resolver.setPrefix("/WEB-INF/views");
      resolver.setSuffix(".jsp");
      return resolver;
  
  }
  }
  </code></pre>
  
  <p>3.RepositoryConfiguration
      package com.kharoud.configuration;</p>
  
  <pre><code>import java.util.Properties;
  
  import javax.sql.DataSource;
  
  import org.hibernate.SessionFactory;
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.context.annotation.Bean;
  import org.springframework.context.annotation.Configuration;
  import org.springframework.context.annotation.PropertySource;
  import org.springframework.core.env.Environment;
  import org.springframework.jdbc.datasource.DriverManagerDataSource;
  import org.springframework.orm.hibernate4.HibernateTransactionManager;
  import org.springframework.orm.hibernate4.LocalSessionFactoryBean;
  import org.springframework.transaction.annotation.EnableTransactionManagement;
  
  @Configuration
  @EnableTransactionManagement
  @PropertySource({ "classpath:hibernate.properties" })
  public class RepositoryConfiguration {
  
  @Autowired
  private Environment environment;
  
  @Bean
  public LocalSessionFactoryBean sessionFactory(){        
      LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
      sessionFactory.setDataSource(dataSource());
      sessionFactory.setPackagesToScan(new String[] {"com.kharoud.model"});
      sessionFactory.setHibernateProperties(hibernateProperties());
      return sessionFactory;
  }
  
  @Bean
  public Properties hibernateProperties() {
      Properties properties = new Properties();
      properties.put("hibernate.dialect",      environment.getRequiredProperty("hibernate.dialect"));
      properties.put("hibernate.show_sql", environment.getRequiredProperty("hibernate.show_sql"));
      properties.put("hibernate.hbm2ddl.auto", environment.getRequiredProperty("hibernate.hbm2ddl.auto"));
      return properties;
  }
  
  @Bean
  public DataSource dataSource() {        
      DriverManagerDataSource dataSource = new DriverManagerDataSource();
      dataSource.setDriverClassName(environment.getRequiredProperty("jdbc.driverClassName"));
      dataSource.setUrl(environment.getRequiredProperty("jdbc.url"));
      dataSource.setUsername(environment.getRequiredProperty("jdbc.username"));
      dataSource.setPassword(environment.getRequiredProperty("jdbc.password"));
      return dataSource;
  }
  
  @Bean
  @Autowired
  public HibernateTransactionManager transactionManager(SessionFactory s) {
     HibernateTransactionManager txManager = new   HibernateTransactionManager();
     txManager.setSessionFactory(s);
     return txManager;
  }
  }
  </code></pre>
  
  <p>4.SpringConfigurationInitializer</p>
  
  <pre><code>package com.kharoud.configuration.initilizer;
  
  import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
  
  import com.kharoud.configuration.AppConfiguration;
  
  
  public class SpringConfigurationInitializer extends     AbstractAnnotationConfigDispatcherServletInitializer{
  
  @Override
  protected Class&lt;?&gt;[] getRootConfigClasses() {
      return new Class[] { AppConfiguration.class };
  }
  
  @Override
  protected Class&lt;?&gt;[] getServletConfigClasses() {
      // TODO Auto-generated method stub
      return null;
  }
  
  @Override
  protected String[] getServletMappings() {
  
      return new String[] { "/" };
  }
  
  }
  </code></pre>
  
  <p>only added these new classes. I deleted my web.xml. </p>
  
  <p>Later on i will add Spring Security configuration class</p>
  
  <p>this is my console output</p>
  
  <pre><code>Feb 25, 2015 2:32:13 PM org.apache.catalina.core.AprLifecycleListener init
  INFO: The APR based Apache Tomcat Native library which allows optimal     performance in production environments was not found on the java.library.path: C:\Program     Files\Java\jdk1.8.0_25\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Window     s;C:/Program Files/Java/jre1.8.0_25/bin/server;C:/Program   Files/Java/jre1.8.0_25/bin;C:/Program     Files/Java/jre1.8.0_25/lib/amd64;C:\ProgramData\Oracle\Java\javapath;C:\Windows\      system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShe     ll\v1.0\;C:\Program Files\Java\jdk1.8.0_25\bin;;C:\ECLIPSE\eclipse;;.
   Feb 25, 2015 2:32:14 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
   WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting   property 'source' to 'org.eclipse.jst.jee.server:ProjectDemo' did not find a   matching property.
  Feb 25, 2015 2:32:14 PM org.apache.coyote.AbstractProtocol init
  INFO: Initializing ProtocolHandler ["http-bio-8080"]
  Feb 25, 2015 2:32:14 PM org.apache.coyote.AbstractProtocol init
  INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
  Feb 25, 2015 2:32:14 PM org.apache.catalina.startup.Catalina load
  INFO: Initialization processed in 1063 ms
  Feb 25, 2015 2:32:14 PM org.apache.catalina.core.StandardService  startInternal
  INFO: Starting service Catalina
  Feb 25, 2015 2:32:14 PM org.apache.catalina.core.StandardEngine  startInternal
  INFO: Starting Servlet Engine: Apache Tomcat/7.0.47
  Feb 25, 2015 2:32:15 PM org.apache.catalina.util.SessionIdGenerator createSecureRandom
  INFO: Creation of SecureRandom instance for session ID generation using  [SHA1PRNG] took [217] milliseconds.
  Feb 25, 2015 2:32:18 PM org.apache.catalina.core.ApplicationContext log
  INFO: Spring WebApplicationInitializers detected on classpath:  [com.kharoud.configuration.initilizer.SpringConfigurationInitializer@389ae113]
  Feb 25, 2015 2:32:18 PM org.apache.catalina.core.ApplicationContext log
  INFO: Initializing Spring root WebApplicationContext
  log4j:WARN No appenders could be found for logger  (org.springframework.web.context.ContextLoader).
  log4j:WARN Please initialize the log4j system properly.
  Feb 25, 2015 2:32:26 PM org.apache.catalina.core.ApplicationContext log
  INFO: Initializing Spring FrameworkServlet 'dispatcher'
  Feb 25, 2015 2:32:26 PM org.apache.coyote.AbstractProtocol start
  INFO: Starting ProtocolHandler ["http-bio-8080"]
  Feb 25, 2015 2:32:26 PM org.apache.coyote.AbstractProtocol start
  INFO: Starting ProtocolHandler ["ajp-bio-8009"]
  Feb 25, 2015 2:32:26 PM org.apache.catalina.startup.Catalina start
  INFO: Server startup in 11876 ms
  </code></pre>
  
  <p>MyHomeController</p>
  
  <pre><code>package com.kharoud;
  
  import org.springframework.stereotype.Controller;
  import org.springframework.ui.Model;
  import org.springframework.web.bind.annotation.RequestMapping;
  
  
  @Controller
  public class HomeController {
  
      @RequestMapping("/")
      public String welcome(Model model){
          return "index";
      }
  }
  </code></pre>
  
  <p>Myindex.jsp file is in WEB-INF/views folder under webapp folder</p>
  
  <pre><code>The views were properly resolved with bean configuration.
  </code></pre>