2017-06-22 1 views
0

J'ai déjà déployé war spring MVC sur tomcat9. il est déjà lancé mais au printemps je crée getmapping ("/ tesget") mais quand j'ai créé le servlet, le getmapping des résultats est faux.Spring MVC Servlet lors du déploiement de war to tomcat

contrôleur:

@GetMapping("tesget") 
@ResponseStatus(HttpStatus.OK) 
public List getTes2() throws Exception { 
    return userService.getTes2(); 
} 

servlet:

public class Servlet extends HttpServlet { 

     public void init() throws ServletException 
     { 
      // Do required initialization 
     } 

    public void doGet(HttpServletRequest request, 
      HttpServletResponse response) 
      throws ServletException, IOException { 

      PrintWriter out = response.getWriter(); 
      out.println("<HTML>"); 
      out.println("<HEAD>"); 
      out.println("<TITLE>Servlet Testing</TITLE>"); 
      out.println("</HEAD>"); 
      out.println("<BODY>"); 
      out.println("Welcome to the Servlet Testing Center"); 
      out.println("</BODY>"); 
      out.println("</HTML>"); 
     } 

     public void destroy() 
     { 
      // do nothing. 
     } 

} 

web.xml:

<!DOCTYPE web-app PUBLIC 
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
"http://java.sun.com/dtd/web-app_2_3.dtd" > 

<web-app> 
    <servlet> 
     <servlet-name>Servlet</servlet-name> 
     <servlet-class>com.project.maven.config.Servlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>Servlet</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 

</web-app> 

Avant créé servlet et la guerre, je généralement en cours d'exécution et quand je vais à localhost: 8080/SpringNew/tesget, le résultat est vrai, liste JSON de la base de données, mais quand je crée servlet, l'URL localhost: 8080/SpringNew/te sget est faux. le résultat est:

Bienvenue au Centre d'essais Servlet

comment résoudre ce problème? Merci.

Bobby

Répondre

0
  1. ce que votre config autre!
  2. envoyer votre code de classe contrôleur
  3. si vous êtes sûr de votre config essayer avec @GetMapping("/tesget")
+0

Bonjour, J'ai posté autre config dans une autre réponse ci-dessus. Vérifiez s'il vous plaît. Merci! J'ai déjà testé avec getmapping mais sortie pas une liste json, le résultat de doGet dans servlet. –

+0

regardez à ce lien, j'espère qu'il aide http://viralpatel.net/blogs/spring-4-mvc-rest-example-json/ – Generic

+0

encore une erreur. Pourquoi? dois-je mettre configure servlet quand je veux déployer sur tomcat? –

1

AppInitializer.java

public class AppInitializer implements WebApplicationInitializer { 

    public void onStartup(ServletContext container) throws ServletException { 

     AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext(); 
     ctx.register(AppConfig.class); 
     ctx.setServletContext(container); 

     ServletRegistration.Dynamic servlet = container.addServlet(
       "dispatcher", new DispatcherServlet(ctx)); 

     servlet.setLoadOnStartup(1); 
     servlet.addMapping("/"); 
    } 
} 

HibernateConfiguration.java

@Configuration 
@EnableTransactionManagement 
@ComponentScan({ "com.project.maven." }) 
@PropertySource(value = { "classpath:application.properties" }) 

public class HibernateConfiguration { 

    @Autowired 
    private Environment environment; 

    @Bean 
    public LocalSessionFactoryBean sessionFactory() { 
     LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean(); 
     sessionFactory.setDataSource(dataSource()); 
     sessionFactory.setPackagesToScan(new String[] { "com.project.maven.entity" }); 
     sessionFactory.setHibernateProperties(hibernateProperties()); 
     return sessionFactory; 
    } 

    @Bean 
    public DataSource dataSource() { 
     DriverManagerDataSource dataSource = new DriverManagerDataSource(); 
     dataSource.setDriverClassName(environment.getRequiredProperty("jdbc.driverClassName")); 
     dataSource.setUrl(environment.getRequiredProperty("jdbc.url")); 
     return dataSource; 
    } 

    private 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.format_sql", environment.getRequiredProperty("hibernate.format_sql")); 
     return properties;   
    } 

    @Bean 
    @Autowired 
    public HibernateTransactionManager transactionManager(SessionFactory s) { 
     HibernateTransactionManager txManager = new HibernateTransactionManager(); 
     txManager.setSessionFactory(s); 
     return txManager; 
    } 

} 

AppConfig.java

@Configuration 
@EnableWebMvc 
@ComponentScan(basePackages = "com.project.maven") 

public class AppConfig extends WebMvcConfigurerAdapter { 

    @Bean 
    public ViewResolver viewResolver() { 
     InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); 
     viewResolver.setViewClass(JstlView.class); 
     viewResolver.setPrefix("/"); 
     viewResolver.setSuffix(".jsp"); 
     return viewResolver; 
    } 

    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     registry.addResourceHandler("/static/**").addResourceLocations("/static/"); 
     registry.addResourceHandler("**/**") 
     .addResourceLocations("classpath:/META-INF/resources/"); // harus ada folder resources di webapp/WEB-INF/ 
    }  

    @Bean 
    public MessageSource messageSource() { 
     ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource(); 
     messageSource.setBasename("messages"); 
     return messageSource; 
    }