Java Spring启动-无法编译jsp

Java Spring启动-无法编译jsp,java,spring,jsp,spring-mvc,spring-boot,Java,Spring,Jsp,Spring Mvc,Spring Boot,我试图创建一个SpringBootWeb应用程序,但在查看.jsp页面时遇到了问题。一切看起来都很好,但是当我尝试访问第一个页面(index.jsp)时,我得到了以下错误消息。有什么想法吗 短暂性脑缺血发作 以下是我的pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation

我试图创建一个SpringBootWeb应用程序,但在查看.jsp页面时遇到了问题。一切看起来都很好,但是当我尝试访问第一个页面(index.jsp)时,我得到了以下错误消息。有什么想法吗

短暂性脑缺血发作

以下是我的pom.xml:

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>
  <groupId>mil.navy.ecClient</groupId>
  <artifactId>ec-client</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <name>ec-client</name>

  <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <java.version>1.7</java.version>
      <app.properties>src/main/resources/application.properties</app.properties>
      <!-- List of variables read from application.properties: ${defaultUri} -->
  </properties>

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

  <dependencies>
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-data-jpa</artifactId>
      </dependency>
      <dependency>
          <groupId>org.projectlombok</groupId>
          <artifactId>lombok</artifactId>
          <version>1.16.6</version>
      </dependency>
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
      </dependency>
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-ws</artifactId>
      </dependency>

      <dependency>
          <groupId>com.h2database</groupId>
          <artifactId>h2</artifactId>
          <scope>runtime</scope>
      </dependency>
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-tomcat</artifactId>
          <scope>provided</scope>
      </dependency>
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-test</artifactId>
          <scope>test</scope>
      </dependency>
  </dependencies>

  <build>
    <finalName>ec</finalName>

      <plugins>       
        <plugin>
           <artifactId>maven-compiler-plugin</artifactId>
           <configuration>
            <source>${java.version}</source>
            <target>${java.version}</target>
          </configuration>
          <version>3.5.1</version>
       </plugin>

        <plugin>          
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
              <port>8080</port>
              <path>/ec</path>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>properties-maven-plugin</artifactId>
            <version>1.0.0</version>
            <executions>
             <execution>
                 <phase>initialize</phase>
                 <goals>
                     <goal>read-project-properties</goal>
                 </goals>
                 <configuration>
                 <files>
                     <file>${app.properties}</file>
                </files>
                </configuration>
            </execution>
          </executions>
         </plugin>
      </plugins>
  </build>
</project>
应用程序类别:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;

@EnableAutoConfiguration
@EnableWebMvc
@SpringBootApplication
public class EcClientApplication extends SpringBootServletInitializer {

   private static Class<EcClientApplication> ecApplication = EcClientApplication.class;

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

   @Override
   protected SpringApplicationBuilder configure(SpringApplicationBuilder applicationBuilder) {
      return applicationBuilder.sources(ecApplication);
   }
}
import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.oxm.jaxb.Jaxb2Marshaller;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

@Configuration
public class EcClientConfiguration extends WebMvcConfigurerAdapter {

   @Value("${db.path}")
   private String dbPath;

   @Value("${defaultUri}")
   private String defaultUri;

   @Value("${spring.datasource.url}")
   private String dataSourceUrl;


   @Bean
   public DataSource dataSource() {
      DriverManagerDataSource dataSource = new DriverManagerDataSource();
      dataSource.setDriverClassName("org.h2.Driver");
      dataSource.setUrl(dataSourceUrl);
      dataSource.setUsername("test");

      return dataSource;
   }

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

   @Bean
   public InternalResourceViewResolver viewResolver() {
      InternalResourceViewResolver resolver = new InternalResourceViewResolver();
      resolver.setPrefix("WEB-INF/jsps/");
      resolver.setSuffix(".jsp");
      return resolver;
   }

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

   /**
    * Resolves property values in the properties file with @Value ${} annotation.
    * 
    * @return a new {@link PropertySourcesPlaceholderConfigurer} object for the property.
    */
   @Bean
   public static PropertySourcesPlaceholderConfigurer propertyConfigInDev() {
      return new PropertySourcesPlaceholderConfigurer();
   }

}

通过使用spring boot starter父版本的1.2.8.0版本实现了这一点。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;

@EnableAutoConfiguration
@EnableWebMvc
@SpringBootApplication
public class EcClientApplication extends SpringBootServletInitializer {

   private static Class<EcClientApplication> ecApplication = EcClientApplication.class;

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

   @Override
   protected SpringApplicationBuilder configure(SpringApplicationBuilder applicationBuilder) {
      return applicationBuilder.sources(ecApplication);
   }
}
import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.oxm.jaxb.Jaxb2Marshaller;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

@Configuration
public class EcClientConfiguration extends WebMvcConfigurerAdapter {

   @Value("${db.path}")
   private String dbPath;

   @Value("${defaultUri}")
   private String defaultUri;

   @Value("${spring.datasource.url}")
   private String dataSourceUrl;


   @Bean
   public DataSource dataSource() {
      DriverManagerDataSource dataSource = new DriverManagerDataSource();
      dataSource.setDriverClassName("org.h2.Driver");
      dataSource.setUrl(dataSourceUrl);
      dataSource.setUsername("test");

      return dataSource;
   }

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

   @Bean
   public InternalResourceViewResolver viewResolver() {
      InternalResourceViewResolver resolver = new InternalResourceViewResolver();
      resolver.setPrefix("WEB-INF/jsps/");
      resolver.setSuffix(".jsp");
      return resolver;
   }

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

   /**
    * Resolves property values in the properties file with @Value ${} annotation.
    * 
    * @return a new {@link PropertySourcesPlaceholderConfigurer} object for the property.
    */
   @Bean
   public static PropertySourcesPlaceholderConfigurer propertyConfigInDev() {
      return new PropertySourcesPlaceholderConfigurer();
   }

}