Spring MVC教程无法正常工作

时间:2014-04-23 15:47:56

标签: java eclipse tomcat spring-mvc

我已经在stackoverflow中检查了几个教程和其他帮助,但是我无法解决这个烦人的问题:我在Eclipse中创建了一个Spring MVC项目,后面是this教程步骤,但我仍然从Tomcat服务器获得资源未找到错误。

WEB-INF / web.xml中:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">

    <!-- Processes application requests -->
    <servlet>
        <servlet-name>onlab</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>onlab</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

WEB-INF / onlab-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:mvc="http://www.springframework.org/schema/mvc"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
        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="controller" />

    <mvc:annotation-driven />

</beans>

的src /控制器/ HomeControllerJava:

@Controller
public class HomeController {

    @RequestMapping(value = "/")
    public String home() {
        System.out.println("HomeController: Passing through...");
        return "home";
    }
}

WEB-INF /视图/针对home.jsp:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<html>
    <head>
        <title>Home</title>
    </head>
    <body>
        <h1>Hello world!</h1>
    </body>
</html>

最后是src / controller / Configurer.java:

@Configuration
public class Configurer {
    @Bean
    ViewResolver viewResolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("WEB-INF/views/");
        resolver.setSuffix(".jsp");
        return resolver;
    }

上次这个教程对我来说效果很好,但现在我只是不断从Apache找到资源。

2 个答案:

答案 0 :(得分:1)

创建一个java类MyWebAppInitializer.java并在此文件中添加您的Configurer.java然后测试

公共类MyWebInitializer扩展AbstractAnnotationConfigDispatcherServletInitializer {

public string InsertFileToBucket(string fileName, Stream FileStream)
        {

            using (s3 = Amazon.AWSClientFactory.CreateAmazonS3Client(_awsAccessKey, _awsSecretKey,RegionEndpoint.USEast1))
            {
                PutObjectRequest request = new PutObjectRequest();

                request.BucketName = _s3ImageBucketName;
                request.CannedACL = S3CannedACL.PublicRead;
                request.Key = fileName;
                request.InputStream = FileStream;
                PutObjectResponse response = s3.PutObject(request);

            }
            return fileName;
        }

}

答案 1 :(得分:0)

由于我无法添加评论,我会去寻找答案:)。

不知道您的Tomcat / IDE设置这是我的假设以及我如何得出最终结论: - 您的代码没有返回错误 - IDE正在构建和部署正确位置的文件 - 你有正确的Tomcat设置

由于您在Eclipse中运行(如果您使用它,您可能会使用Spring Tools Suite,因为它是专为Spring设计的),您应该配置Tomcat服务器。 我以前的经验是Tomcat中的映射(也在http.conf文件中)使用了不同的前缀,然后由于其他冲突的项目而使用了我的预期。

在这种情况下,当您假设其localhost时:8080 / onlab /它可能被配置为在localhost:8080 /或甚至localhost:8080 // onlab /上查找相同的文件。

检查你的tomcat配置并确保它指向正确的位置。