2017-06-22 71 views
0

我已經將war spring MVC部署到了tomcat9。它已經在運行,但在春天我創建了getmapping(「/ tesget」),但是當我創建servlet時,結果getmapping是錯誤的。在向tomcat部署war時的Spring MVC Servlet

控制器:

@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> 

之前我創建的servlet和戰爭,我通常運行,當我去到本地主機: 8080/SpringNew/tesget,結果是真的,從數據庫中列出JSON,但是當我創建servlet時,url localhost:8080/SpringNew/te sget是錯誤的。其結果是:

歡迎來到Servlet測試中心

如何解決這個問題?謝謝。

鮑比

回答

0
  1. 那你的其他配置!
  2. 發送您的控制器類代碼
  3. 如果你確信你的配置嘗試@GetMapping("/tesget")
+0

嗨,我發佈了其他配置上面的另一個答案。請檢查。謝謝!我已經使用getmapping進行了測試,但輸出的不是json列表,這是servlet中doGet的結果。 –

+0

看看這個鏈接,我希望它能幫助http://viralpatel.net/blogs/spring-4-mvc-rest-example-json/ – Generic

+0

還是錯誤的。爲什麼?當我想部署到tomcat時,我必須將配置servlet嗎? –

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; 
    }