HTTP映射请求URI使用嵌入式Tomcat时出现问题,但在本地tomcat服务器上运行良好

时间:2018-10-23 11:12:49

标签: java spring spring-mvc spring-boot

为什么我在使用本地tomcat服务器运行它时,我的SpringBoot SpringMVC应用程序运行良好并显示在浏览器上,但是当我在tomcat嵌入式服务器上运行该应用程序时,该应用程序不会加载到上下文路径上吗?

下面是我在tamcat嵌入式服务器上运行时得到的日志消息

No mapping found for HTTP request with URI [/ccbpas/WEB-INF/views/index/loginform.jsp] in DispatcherServlet with name 'dispatcherServlet'

下面是我的SpringBoot的application.properties文件

server.port = 1098
server.servlet.context-path=/ccbpas
spring.datasource.url=jdbc:mysql://localhost:3306/cataloguing
spring.datasource.username=nandom
spring.datasource.password=nandom
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
spring.mvc.static-path-pattern=/resources/**

在嵌入式tomcat服务器上运行同一应用程序可能是问题,而当我使用本地tomcat服务器运行它时,它运行良好并显示在浏览器上。

1 个答案:

答案 0 :(得分:0)

我后来通过添加此配置文件解决了这个问题

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

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/resources/**").addResourceLocations("/resources/theme/");
}

@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
    configurer.enable();
}

此后,我添加了此依赖项

 <dependency>
  <groupId>org.apache.tomcat.embed</groupId>
  <artifactId>tomcat-embed-jasper</artifactId>
  <scope>compile</scope>
 </dependency>

文件现在在嵌入式tomcat服务器上运行良好。但是我相信SpringBoot已经消除了很多配置。我们现在怎么写一个配置文件,以便通过SpringBoot实现这一目标?