2017-05-08 126 views
1

不能与弹簧引导加载一个非常简单的JSP页面,获得404未找到春季启动JSP 404.Whitelabel错误页

HmisApplication.class

@SpringBootApplication 
public class HmisApplication extends SpringBootServletInitializer { 
@Override 
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { 
    return application.sources(HmisApplication.class); 
} 

public static void main(String[] args) throws Exception { 
    SpringApplication.run(HmisApplication.class, args); 
} 
} 

MainController.java

@Controller 
public class WelcomeController { 
@RequestMapping("/") 
public String home(Map<String, Object> model) { 
    model.put("message", "HowToDoInJava Reader !!"); 
    return "index"; 
} 

@RequestMapping("/next") 
public String next(Map<String, Object> model) { 
    model.put("message", "You are in new page !!"); 
    return "next"; 
} 
} 

application.properties

spring.profiles.active=dev,build-info 

server.contextPath=/hmis 
server.port=7070 
spring.metrics.export.enabled=true 

spring.main.banner-mode=off 

spring.mvc.view.prefix: /WEB-INF/jsp/ 
spring.mvc.view.suffix: .jsp 
application.message: Hello Phil 

# HTTP encoding (HttpEncodingProperties) 
spring.http.encoding.force-request=true 
spring.http.encoding.charset=UTF-8 
spring.http.encoding.enabled=true 
spring.http.encoding.force=true 

的pom.xml

<?xml version="1.0" encoding="UTF-8"?> 

http://maven.apache.org/xsd/maven-4.0.0.xsd“> 4.0.0

<groupId>com.hmis</groupId> 
<artifactId>hmis</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>war</packaging> 

<name>hmis</name> 
<description>Demo project for Spring Boot</description> 

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.5.3.RELEASE</version> 
    <relativePath/> <!-- lookup parent from repository --> 
</parent> 

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
    <java.version>1.8</java.version> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>org.activiti</groupId> 
     <artifactId>activiti-spring-boot-starter-basic</artifactId> 
     <version>5.21.0</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-data-jpa</artifactId> 
    </dependency> 
    <!-- 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-security</artifactId> 
    </dependency> 
    --> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <scope>runtime</scope> 
    </dependency> 
    <!-- Tomcat Embed --> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-tomcat</artifactId> 
     <!--<scope>provided</scope>--> 
    </dependency> 
    <!-- JSTL --> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
    </dependency> 
    <!-- To compile JSP files --> 
    <dependency> 
     <groupId>org.apache.tomcat.embed</groupId> 
     <artifactId>tomcat-embed-jasper</artifactId> 
     <scope>provided</scope> 
    </dependency> 

</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <configuration> 
       <useSystemClassLoader>false</useSystemClassLoader> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

MvcConfiguration.java

@Configuration 
@EnableWebMvc 
@ComponentScan 
public class MvcConfiguration extends WebMvcConfigurerAdapter 
{ 
@Override 
public void configureViewResolvers(ViewResolverRegistry registry) { 
    InternalResourceViewResolver resolver = new InternalResourceViewResolver(); 
    resolver.setPrefix("/WEB-INF/jsp/"); 
    resolver.setSuffix(".jsp"); 
    resolver.setViewClass(JstlView.class); 
    registry.viewResolver(resolver); 
} 
} 

文件结构

 ├── src 
     ├── main 
     │ ├── java 
     │ │ └── com 
     │ │  └── hmis 
     │ │    ├── HmisApplication.java 
     │ │    ├── MvcConfiguration.java 
     │ │    ├── WelcomeController.java 
     │ └── resources 
     │  └── application.properties 
     │  └── webapp 
     │    └── WEB-INF 
     │     └── jsp 
     │       └── index.jsp 
     │       └── next.jsp 
+0

春天开机已经提供的InternalResourceViewResolver解析器后解决的问题。请尝试完全删除MvcConfiguration类。 –

+0

我收到此错误消息有一个意外的错误(type = Internal Server Error,status = 500)。 无法使用名称'dispatcherServlet'解析servlet名称为'next'的视图 –

+0

将webapp文件夹移至src/main/webapp,而不是位于资源文件夹下。 –

回答

0

我一些改变的pom.xml

<groupId>com.hmis</groupId> 
<artifactId>hmis</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>war</packaging> 

<name>hmis</name> 
<description>Demo project for Spring Boot</description> 

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.5.3.RELEASE</version> 
    <relativePath/> <!-- lookup parent from repository --> 
</parent> 

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
    <java.version>1.8</java.version> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>org.activiti</groupId> 
     <artifactId>activiti-spring-boot-starter-basic</artifactId> 
     <version>5.21.0</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-data-jpa</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-security</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <scope>runtime</scope> 
    </dependency> 
    <!-- Tomcat Embed --> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-tomcat</artifactId> 
     <!--<scope>provided</scope>--> 
    </dependency> 
    <!-- JSTL --> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
    </dependency> 
    <!-- To compile JSP files --> 
    <dependency> 
     <groupId>org.apache.tomcat.embed</groupId> 
     <artifactId>tomcat-embed-jasper</artifactId> 
     <!--<scope>provided</scope>--> 
    </dependency> 
</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
     </plugin> 
    </plugins> 
</build>