Spring MVC无法正确配置Dispatcher Servlet

时间:2015-04-28 01:42:19

标签: java spring spring-mvc

我在配置Spring的Dispatcher时遇到问题。我想要实现的是:

  • 构建REST WebService以接收请求
  • 让HTML + Ajax页面消耗数据(因此,我的Spring项目中没有视图)

到目前为止,我只有2个HTML页面:登录(使用j_security_check)和主页面。两者都很简单。我也有一个简单的控制器:

MainController.java

@RestController //Or @Controller and @ResponseBody, no difference, right?
public class MainController {

    @RequestMapping("rest/main/data")
    public String getData () {
        return "{data: \"DATA HUEHUE\"}"; // Yes, I'm brazilian
    }

}

我已经为web.xml和dispatcher-servlet.xml尝试了以下配置:

的web.xml:

    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>

调度-servlet.xml中

<context:component-scan base-package="com.example.controller"/>

这不起作用。我收到了消息INFO: Mapped URL path [/rest/main/data] onto handler 'mainController'但是当我尝试访问时,我得到No mapping found for HTTP request with URI [/myapp/rest/main/data] in DispatcherServlet with name 'dispatcher'

我也尝试过:

  • 在web.xml上:<url-pattern>/</url-pattern>
  • 在dispatcher-servlet上:相同的
  • 发生了什么:控制器DID工作但应用程序也尝试映射我的login.html并且找不到匹配所以我得到了404; - ;

我意识到这一点&#34;标准&#34;使用前缀和后缀的配置,但由于我没有这里的意见,我不认为这是正确的方法。 我在春天有点新鲜(你可能已经注意到了),所以请温柔地回答。

有什么想法吗?

提前致谢:)

我的项目树:

-project
--src
---main
----webapp
-----WEB-INF
------web.xml
------weblogic.xml
------dispatcher-servlet.xml
-----www
------main.html
-----login.html

(登录在www之外)

1 个答案:

答案 0 :(得分:0)

使用第一种方法,如果您修改控制器代码以使其/rest/main/data它将起作用。

@RestController //Or @Controller and @ResponseBody, no difference, right?
public class MainController {

    @RequestMapping("/rest/main/data")
    public String getData () {
        return "{data: \"DATA HUEHUE\"}"; // Yes, I'm brazilian
    }

}

第二种方法正在发生的事情是,由于您已配置Spring Security,因此需要首先进行身份验证,但为此它找到了Login.html但无法找到它。这可能是因为配置不正确。