简体   繁体   中英

First application in Spring MVC - HTTP Status 404

I do example from book "Spring MVC - Przewodnik dla początkujących", and I do everything as in a book, but when I start app i get "HTTP Status 404" .

My Project Explorer looks: 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>

And when I run project I get Http 404, and logs:

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

I assume your war name is webstore so to access any resource you should invoke it like this

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

Change your controller mapping to something else to avoid name collision. PS http://localhost:8080/webstore will work if your war name is ROOT.war

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM