2017-07-18 537 views
0

我試圖使用JavaEE Spring Framework設置一個簡單的Hello World應用程序,但在部署.war文件後遇到上述問題。HTTP狀態404 - 未找到Apache Tomcat/8.5.16

我已經通過網絡上的一些資源,但沒有成功。

這是我的應用初始化類;

public class MyWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { 

@Override 
protected Class<?>[] getRootConfigClasses() { 
    return new Class[]{AppConfig.class}; 
} 

@Override 
protected Class<?>[] getServletConfigClasses() { 
    return new Class[]{AppConfig.class}; 
} 

@Override 
protected String[] getServletMappings() { 
    return new String[]{"/demoapp/*"}; 
} 
} 

而這個pom.xml;

<?xml version="1.0" encoding="UTF-8"?> 
<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>com.example</groupId> 
<artifactId>demoapp</artifactId> 
<version>1.0-SNAPSHOT</version> 
<packaging>war</packaging> 

<properties> 
    <java.version>1.8</java.version> 
    <spring.version>4.3.9.RELEASE</spring.version> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>javax.servlet-api</artifactId> 
     <version>3.1.0</version> 
     <scope>provided</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-web</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 

    <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot --> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot</artifactId> 
     <version>1.0.0.RELEASE</version> 
    </dependency> 

</dependencies> 

<build> 
    <finalName>demoapp</finalName> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>3.0.0</version> 
      <configuration> 
       <failOnMissingWebXml>false</failOnMissingWebXml> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

我跑mvn clean instaal然後選擇從目標目錄,然後我使用「管理器應用程序」選項部署到Tomcat服務器.war文件。

但是,一旦我訪問鏈接http://localhost:8080/demoapp/,我會得到下面的頁面;

enter image description here

我的文件夾結構如下;

enter image description here

控制器

package controller; 

import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 

/** 
* Created by Lawrence on 17/07/2017. 
*/ 
@Controller 
public class HelloController { 

    @RequestMapping("/hi") 
    public String hi() { 
    return "Hello World"; 
    } 
} 

如何去這個問題的一些幫助或指導,將不勝感激。

感謝

+0

您的應用程序是否正確部署? –

+0

部署沒有錯誤。 –

+0

'http:// localhost:8080/demoapp/hi'有效嗎? –

回答

0

404錯誤是因爲服務器不能找到/ demoapp /,您可以張貼在那裏你已映射的網址/ demoapp /控制器。

+0

我已更新控制器正在使用 –

+0

chage這些行返回新的字符串[] {「/ demoapp/*」};到「/」並嘗試http:// localhost:8080/demo/hi –

+0

獲取相同的錯誤:HTTP狀態404 - 未找到 –