2010-06-12 75 views
0

我创建一个非常简单的(你好世界品质)web应用程序使用春天mvc 3.0。部署在Tomcat 6.0.26的应用程序时,我尝试打开春天mvc 3.0小型web应用程序不工作

http://localhost:8080/protoweb/helloWorld.html

我得到404,资源/protoweb/WEB-INF/jsp/helloWorld.jsp不可用。

有趣的是,有IS一个helloWorld.jsp在那里。

任何想法我做错了什么?

,这里是我的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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> 
<display-name>hello-spring3-RC1</display-name> 
<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/yummy-servlet.xml</param-value> 
</context-param> 

<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 
<servlet> 
<servlet-name>yummy</servlet-name> 
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
<load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
<servlet-name>yummy</servlet-name> 
<url-pattern>*.html</url-pattern> 
</servlet-mapping> 

<welcome-file-list> 
<welcome-file>index.html</welcome-file> 
</welcome-file-list> 
</web-app> 

我的美味-servlet.xml中

<?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:p="http://www.springframework.org/schema/p" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
     http://www.springframework.org/schema/context 
     http://www.springframework.org/schema/context/spring-context-3.0.xsd"> 

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

    <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> 
    <property name="prefix" value="/WEB-INF/jsp/"/> 
    <property name="suffix" value=".jsp"/> 
</bean> 
</beans> 

我很简单的控制器:

package com.mine.web.controllers; 


import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.servlet.ModelAndView; 

@Controller 
public class BasicController { 

    @RequestMapping(value = "/helloWorld") 
    public ModelAndView helloWorld() { 
    ModelAndView mav = new ModelAndView(); 
     mav.setViewName("helloWorld"); 
     mav.addObject("message", "Hello some basic message for u"); 
     return mav; 

    } 
} 

和我的webapp/JSP /为HelloWorld。 jsp

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Hello</title> 
</head> 
<body> 
${message} 
</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.mine</groupId> 
    <artifactId>protoweb</artifactId> 
    <packaging>war</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <name>protoweb Maven Webapp</name> 
    <url>http://maven.apache.org</url> 
    <repositories> 
<repository> 
    <id>springsource maven repo</id> 
    <url>http://maven.springframework.org/milestone</url> 
</repository> 
</repositories> 
    <dependencies> 
    <dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-webmvc</artifactId> 
    <version>3.0.0.RC1</version> 
</dependency> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>jstl</artifactId> 
    <version>1.1.2</version> 
    <scope>compile</scope> 
</dependency> 
    </dependencies> 
    <build> 
    <finalName>protoweb</finalName> 
    <plugins> 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>tomcat-maven-plugin</artifactId> 
     <configuration> 
      <configurationDir>tomcat</configurationDir> 
       <url>http://localhost:8080/manager</url> 
       <username>test</username> 
       <password>test</password> 
     </configuration> 
    </plugin> 
    </plugins> 
    </build> 
</project> 
+0

你确定你的JSP在'/WEB-INF/jsp'中,而不在'/jsp'中? – skaffman 2010-06-12 15:37:11

+0

就是这样!谢谢!我在src/main/webapp/jsp中有jsp,但显然mvn tomcat:deploy将它复制到/jsp而不是WEB-INF/jsp – lurscher 2010-06-12 16:28:59

回答

1

很难说没有合适的目录列表,但你的源代码树应该是:

pom.xml 
src 
    /main 
     /java # all your java sources 
     /webapp # stuff for the web app 
       /WEB-INF 
         /jsp/helloWorld.jsp