2017-08-09 6 views
0

ローカルで実行しているときにウェブページを提供するspringbootアプリケーションがありますが、何らかの理由で404を返します。 。私のコントローラでは、/ resources/staticフォルダのhtmlページを含むjspページを返します。これはすべてローカルでうまく動作します。SpringbootアプリケーションのWebページは、製品にデプロイすると404が返されます

私はのTomcat 7.0.52

に展開しています、これは私のクラス

@SpringBootApplication 
public class SpringbootApplication extends SpringBootServletInitializer { 

@Override 
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { 
    return application.sources(SpringbootApplication.class); 
} 

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

<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/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>demo</groupId> 
<artifactId>demo</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>war</packaging> 

<properties> 
    <spring.version>4.3.9.RELEASE</spring.version> 
    <java.version>1.8</java.version> 
    <maven-compiler.version>3.6.1</maven-compiler.version> 
</properties> 
<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.5.4.RELEASE</version> 
    <relativePath /> <!-- lookup parent from repository --> 
</parent> 
<dependencies> 
    <!-- //////////////////////////////////////////////////////// --> 
    <!-- SPRING --> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
    </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> 
    <dependency> 
     <groupId>org.apache.tomcat</groupId> 
     <artifactId>tomcat-jdbc</artifactId> 
     <version>7.0.19</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.tomcat.embed</groupId> 
     <artifactId>tomcat-embed-jasper</artifactId> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
    </dependency> 
</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
      <executions> 
       <execution> 
        <goals> 
         <goal> 
          repackage 
         </goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.tomcat.maven</groupId> 
      <artifactId>tomcat7-maven-plugin</artifactId> 
      <version>2.2</version> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <configuration> 
       <source>${java.version}</source> 
       <target>${java.version}</target> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

`

マイSpringbootアプリのメインクラス私のポンポンでありますextends webmvcConfigureAdapter

@Configuration 
@EnableWebMvc 
public class MvcConfiguration extends WebMvcConfigurerAdapter{ 

@Override 
public void addViewControllers(ViewControllerRegistry registry) { 
    System.out.println("in mvc config"); 
    registry.addViewController("/").setViewName("forward:index2.html"); 
} 

@Override 
public void configureDefaultServletHandling(
     DefaultServletHandlerConfigurer configurer) { 
    System.out.println("configure serve handling"); 
    configurer.enable(); 
} 

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

メインコントローラ。

@Controller 
public class MainController { 
    @RequestMapping(value={"/"}, method = RequestMethod.GET) 
    public String index(){ 
     System.out.println("inside mainController"); 
     return "chatbot"; 
    } 
} 

最後に、私のapplication.propertiesファイルは次のようになります。

spring.mvc.view.prefix: /WEB-INF/jsp/ 
spring.mvc.view.suffix: .jsp 

私のプロジェクトの構造は次のようになります...

src/main/webapp 
       -> assets 
       -> resources 
        -> static ->index.html 
       -> WEB-INF  
        ->jsp -> index.jsp 

助けてください。私は8時間以上これに固執してきました。おかげさまで

+0

あなたが到達しようとしているURLは何ですか? –

+0

何か111のような###。###。###:8082/demo(warファイルの名前) – joejoeso

+0

webappの下にindex.htmlを入れてみよう。 –

答えて

0

、他のすべてのリソースがそれに関連しなければならないことをやるには次のリンクを確認してください。

-1

おそらく問題は、アプリケーションのコンテキストパスを含める必要があることです。

これはデフォルトのcontextPathあるので、あなたはWebアプリケーションの下にindex.htmlを配置することができadd-context-path-to-spring-boot-application

+0

あなたの答えは、例えばそのリンクが死んでしまった場合には、それ自身で立つことができるはずです。より多くの情報を得るための基本的な概要とリンクを提供すれば十分ですが、リンクのみの回答はぶつかることになります。 – dcsohl

関連する問題