Spring MVC中的第一个应用程序 - HTTP状态404

时间:2015-12-11 09:44:08

标签: java spring maven spring-mvc servlets

我从书“Spring MVC - Przewodnikdlapoczątkujących”中做了一些例子,我在书中做了所有事情,但是当我开始app时,我得到“HTTP Status 404”

我的Project Explorer看起来: Project Explorer

HomeController.java

package com.packt.webstore.controller;

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

@Controller
public class HomeController {
@RequestMapping("/webstore/")
public String welcome(Model model){
    model.addAttribute("greeting", "Witaj w sklepie internetowym!");
    model.addAttribute("tagline", "tralala");
    return "welcome";
 }
}

的welcome.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet"
href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css">
<title>Witaj</title>
</head>
<body>
<section>
    <div class="jumbotron">
        <div class="container">
            <h1>${greeting}</h1>
            <p>${tagline}</p>
        </div>
    </div>
</section>
</body>
</html>

DefaultServlet-servlet.jsp

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
 http://www.springframework.org/schema/beans/spring-beans.xsd 
 http://www.springframework.org/schema/context
 http://www.springframework.org/schema/context/spring-context-4.0.xsd 
 http://www.springframework.org/schema/mvc
 http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
<mvc:annotation-driven/>
<context:component-scan base-package="com.packt.webstore" />
<bean
     class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/jsp/"></property>
    <property name="suffix" value=".jsp"></property>
</bean>

的web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<servlet>
<servlet-name>DefaultServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DefaultServlet</servlet-name>
<url-pattern>/webstore/</url-pattern>
</servlet-mapping>
</web-app>

当我运行项目时,我得到了Http 404,并记录了:

gru 11, 2015 10:11:16 AM  org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:webstore2' did not find a matching property.
gru 11, 2015 10:11:16 AM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:webstore' did not find a matching property.
gru 11, 2015 10:11:16 AM org.apache.catalina.startup.VersionLoggerListener  log
INFO: Server version:        Apache Tomcat/8.0.30
gru 11, 2015 10:11:16 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built:          Dec 1 2015 22:30:46 UTC
gru 11, 2015 10:11:16 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server number:         8.0.30.0
gru 11, 2015 10:11:16 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name:               Windows 7
gru 11, 2015 10:11:16 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Version:            6.1
gru 11, 2015 10:11:16 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Architecture:          amd64
gru 11, 2015 10:11:16 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Java Home:             C:\Program Files\Java\jre1.8.0_65
gru 11, 2015 10:11:16 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Version:           1.8.0_65-b17
gru 11, 2015 10:11:16 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Vendor:            Oracle Corporation
gru 11, 2015 10:11:16 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE:         E:\Dokumenty\eclipse - przykłady\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
gru 11, 2015 10:11:16 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME:         E:\Dokumenty\eclipse - przykłady\apache-tomcat-8.0.30-windows-x64\apache-tomcat-8.0.30
gru 11, 2015 10:11:16 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.base=E:\Dokumenty\eclipse - przykłady\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
gru 11, 2015 10:11:16 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=E:\Dokumenty\eclipse - przykłady\apache-tomcat-8.0.30-windows-x64\apache-tomcat-8.0.30
gru 11, 2015 10:11:16 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dwtp.deploy=E:\Dokumenty\eclipse - przykłady\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
gru 11, 2015 10:11:16 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.endorsed.dirs=E:\Dokumenty\eclipse - przykłady\apache-tomcat-8.0.30-windows-x64\apache-tomcat-8.0.30\endorsed
gru 11, 2015 10:11:16 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dfile.encoding=Cp1250
gru 11, 2015 10:11:16 AM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre1.8.0_65\bin;C:\windows\Sun\Java\bin;C:\windows\system32;C:\windows;C:/Program Files/Java/jre1.8.0_65/bin/server;C:/Program Files/Java/jre1.8.0_65/bin;C:/Program Files/Java/jre1.8.0_65/lib/amd64;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Java\jdk1.8.0_65\bin;e:\Tools\apache-maven-3.3.9-bin\apache-maven-3.3.9\bin;E:\Tools\eclipse-jee-mars-1-win32-x86_64\eclipse;;.
gru 11, 2015 10:11:16 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8080"]
gru 11, 2015 10:11:16 AM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
gru 11, 2015 10:11:16 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-nio-8009"]
gru 11, 2015 10:11:16 AM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
gru 11, 2015 10:11:16 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 707 ms
gru 11, 2015 10:11:16 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
gru 11, 2015 10:11:16 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/8.0.30
gru 11, 2015 10:11:16 AM org.apache.catalina.util.SessionIdGeneratorBase  createSecureRandom
INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [196] milliseconds.
gru 11, 2015 10:11:17 AM org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
gru 11, 2015 10:11:17 AM org.apache.catalina.core.ApplicationContext log
INFO: No Spring WebApplicationInitializer types detected on classpath
gru 11, 2015 10:11:17 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8080"]
gru 11, 2015 10:11:17 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-nio-8009"]
gru 11, 2015 10:11:17 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 1429 ms

1 个答案:

答案 0 :(得分:1)

我假设您的战争名称为webstore,因此要访问您应该像这样调用它的任何资源

http://{hostname}:{port}/{war-name}/{controller-mapping}
http://localhost:8080/webstore/webstore

将控制器映射更改为其他内容以避免名称冲突。 附:如果您的战争名称为http://localhost:8080/webstore

ROOT.war将有效