views:

345

answers:

1

I am using eclipse, tomcat6 and I have the maven2 eclipse plugin.

I have tried with using my own downloaded version of tomcat6 and the built in eclipse tomcat server, both havent' worked for me.

The page simply returns a 404 error from tomcat at http://localhost:8080/

(I set the context the '/')

I fired up netbeans and created the exact same project and it runs fine on netbeans tomcat install.

You can see my pom.xml here:

I have a simple spring 3 mvc application, that is just a single Controller and a index.jsp file:

package com.springmvc2.web;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;



@Controller
public class HomeController {


    @RequestMapping("/")
    public String Index(){

        return "index";
    }


    @RequestMapping("/test")
    public String Index2(){

        return "index";
    }


}

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"&gt;
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>springmvc2</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>springmvc2 Maven Webapp</name>
    <url>http://maven.apache.org&lt;/url&gt;
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>

        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>3.0.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>3.3.2.GA</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-annotations</artifactId>
            <version>3.4.0.GA</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>3.0.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.mod4j.org.apache.commons</groupId>
            <artifactId>logging</artifactId>
            <version>1.0.4</version>
        </dependency>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.1.1</version>
        </dependency>
    </dependencies>
    <build>
        <finalName>springmvc2</finalName>
        <filters>
        </filters>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>          
                <configuration>             
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

my web.xml:

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
    <display-name>springmvc2</display-name>
    <description>springmvc2 web application</description>

    <servlet>
        <servlet-name>springmvc2</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

        <load-on-startup>1</load-on-startup>
    </servlet>

    <!-- Maps all /app requests to the DispatcherServlet for handling -->
    <servlet-mapping>
        <servlet-name>springmvc2</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>

my springmv2-servlet.xml is:

<?xml version="1.0" encoding="UTF-8"?>
<!--
    - DispatcherServlet application context for PetClinic's web tier.
-->
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"
        xmlns:oxm="http://www.springframework.org/schema/oxm"
        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/oxm http://www.springframework.org/schema/oxm/spring-oxm-3.0.xsd"&gt;



    <context:component-scan base-package="com.springmvc2.web"/>



    <!--
        - The BeanNameViewResolver is used to pick up the visits view name (below).
        - It has the order property set to 2, which means that this will
        - be the first view resolver to be used after the delegating content
        - negotiating view resolver.
     -->
    <bean class="org.springframework.web.servlet.view.BeanNameViewResolver" p:order="1"/>
    <!--

        - This bean configures the 'prefix' and 'suffix' properties of
        - InternalResourceViewResolver, which resolves logical view names
        - returned by Controllers. For example, a logical view name of "vets"
        - will be mapped to "/WEB-INF/jsp/vets.jsp".
    -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/jsp/"
            p:suffix=".jsp" p:order="2"/>



</beans>

My jsp is in the:

/Web-Inf/jsp/index.jsp

I have spend 2 days trying to figure this out, any help/tips will be MOST appreciated. Please keep in mind that I am very new to java, and eclipse/tomcat etc. so don't assume I did a config step.

I have set the runtime to use the JDK not JRE if that matters.

I am not seeing anything in the tomcat logs, all it returns is:

Feb 10, 2010 10:34:28 PM org.springframework.web.servlet.DispatcherServlet noHandlerFound WARNING: No mapping found for HTTP request with URI [/] in DispatcherServlet with name 'springmvc2'

could it be that the compiled files are not being run by tomcat? that is why it isn't picking ANYTHING up?

A: 

I facing the same problem. I have same set up as you mentioned, eclipse, tomcat 6.0.29, spring 3.0.3. 404 resource not found exception. requested url not found. sometimes it is working. can someone tell what is wrong?

Mani