2017-07-18 169 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 - 未找到 –