java - Spring MVC Annotations Based Hello World Doesn't Work -


i've been trying week simple spring hello world style project running without luck.. i'm hoping can help.

i'm trying access url (localhost:8080/test/welcome) display "hello world!".

my aim use spring annotations instead of configuring beans via xml.

currently when access above url http status 404 (the requested resource not available) error.

these files have:

web.xml

<?xml version="1.0" encoding="utf-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" version="3.0"     xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"     xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">     <display-name>test</display-name>     <!-- spring mvc -->     <servlet>         <servlet-name>test-dispatcher</servlet-name>         <servlet-class>org.springframework.web.servlet.dispatcherservlet</servlet-class>         <load-on-startup>1</load-on-startup>     </servlet>     <servlet-mapping>         <servlet-name>test-dispatcher</servlet-name>         <url-pattern>/</url-pattern>     </servlet-mapping>     <context-param>         <param-name>contextconfiglocation</param-name>         <param-value>             /web-inf/test-dispatcher-servlet.xml         </param-value>     </context-param>     <listener>         <listener-class>org.springframework.web.context.contextloaderlistener</listener-class>     </listener> </web-app> 

test-dispatcher-servlet.xml

<?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.springframework.org/schema/beans"     xmlns:context="http://www.springframework.org/schema/context"     xmlns:mvc="http://www.springframework.org/schema/mvc"     xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"     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.xsd         http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">     <context:component-scan base-package="com.test.test.controllers"/>     <mvc:annotation-driven />     <bean class="org.springframework.web.servlet.view.internalresourceviewresolver">         <property name="prefix">             <value>/web-inf/pages/</value>         </property>         <property name="suffix">             <value>.jsp</value>         </property>     </bean> </beans> 

welcomecontroller.java

package com.test.test.controllers;  import org.springframework.stereotype.controller; import org.springframework.ui.model; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.requestmethod;  @controller @requestmapping("/welcome") public class welcomecontroller {      @requestmapping(method = requestmethod.get)     public string printwelcome(model model) {          return "welcome";     } } 

welcome.jsp

<html> <body> <h2>hello world!</h2> </body> </html> 

pom.xml

<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/maven-v4_0_0.xsd">     <modelversion>4.0.0</modelversion>     <groupid>com.test</groupid>     <artifactid>test</artifactid>     <packaging>war</packaging>     <version>0.0.1-snapshot</version>     <name>test</name>     <build>         <finalname>test</finalname>     </build>     <properties>         <maven.compiler.source>1.7</maven.compiler.source>         <maven.compiler.target>1.7</maven.compiler.target>         <project.build.sourceencoding>utf-8</project.build.sourceencoding>         <org.springframework.version>3.2.3.release</org.springframework.version>         <org.springframework.security.version>3.1.4.release</org.springframework.security.version>     </properties>     <dependencies>         <dependency>             <groupid>junit</groupid>             <artifactid>junit</artifactid>             <version>3.8.1</version>             <scope>test</scope>         </dependency>         <dependency>             <groupid>javax.servlet</groupid>             <artifactid>servlet-api</artifactid>             <version>2.5</version>         </dependency>         <dependency>             <groupid>jstl</groupid>             <artifactid>jstl</artifactid>             <version>1.2</version>         </dependency>         <dependency>             <groupid>mysql</groupid>             <artifactid>mysql-connector-java</artifactid>             <version>5.1.25</version>         </dependency>         <!-- spring dependencies -->         <dependency>             <groupid>org.springframework</groupid>             <artifactid>spring-core</artifactid>             <version>${org.springframework.version}</version>         </dependency>         <dependency>             <groupid>org.springframework</groupid>             <artifactid>spring-web</artifactid>             <version>${org.springframework.version}</version>         </dependency>         <dependency>             <groupid>org.springframework</groupid>             <artifactid>spring-webmvc</artifactid>             <version>${org.springframework.version}</version>         </dependency>         <dependency>             <groupid>org.springframework</groupid>             <artifactid>spring-context</artifactid>             <version>${org.springframework.version}</version>         </dependency>         <dependency>             <groupid>org.springframework</groupid>             <artifactid>spring-beans</artifactid>             <version>${org.springframework.version}</version>         </dependency>         <dependency>             <groupid>org.springframework</groupid>             <artifactid>spring-expression</artifactid>             <version>${org.springframework.version}</version>         </dependency>         <dependency>             <groupid>org.springframework</groupid>             <artifactid>spring-aop</artifactid>             <version>${org.springframework.version}</version>         </dependency>         <dependency>             <groupid>org.springframework</groupid>             <artifactid>spring-jdbc</artifactid>             <version>${org.springframework.version}</version>         </dependency>         <!-- spring security dependencies -->         <dependency>             <groupid>org.springframework.security</groupid>             <artifactid>spring-security-core</artifactid>             <version>${org.springframework.security.version}</version>         </dependency>         <dependency>             <groupid>org.springframework.security</groupid>             <artifactid>spring-security-web</artifactid>             <version>${org.springframework.security.version}</version>         </dependency>         <dependency>             <groupid>org.springframework.security</groupid>             <artifactid>spring-security-config</artifactid>             <version>${org.springframework.security.version}</version>         </dependency>         <dependency>             <groupid>org.springframework.security</groupid>             <artifactid>spring-security-acl</artifactid>             <version>${org.springframework.security.version}</version>         </dependency>         <dependency>             <groupid>org.springframework.security</groupid>             <artifactid>spring-security-taglibs</artifactid>             <version>${org.springframework.security.version}</version>         </dependency>     </dependencies> </project> 

my project structure: project-folder-structure

i can't figure out why isn't working , i'm not sure if can strip down further have...

i have many questions spring guess have wait question. experience far has been more challenging else i've done... , it's set up! can't wait actual programming!

thanks help.

is there reason why put controller in src/test/java folder? folder is, far know, skipped during packaging, war-file doesn't contain controller anymore when package it.

create folder called src/main/java. notice you're using maven plugin automatically picked source folder. if not, right click project , go maven , update configuration (or similar).

now move package com.test.test.controller src/main/java folder , build + deploy again.


Comments