2015-04-28 51 views
0

我在配置Spring的Dispatcher時遇到問題。我想實現的是:Spring MVC無法配置調度程序Servlet正確

  • 構建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和調度-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>
  • 在調度員的servlet:同樣
  • 發生了什麼事:控制器DID工作,但應用程序也試圖映射我的login.html,並找不到匹配,所以我得到404; - ;

我知道使用前綴和sufix的「標準」配置,但由於我沒有在這裏的意見,我不認爲這是正確的做法。 我在春天有點新(正如你可能已經注意到的那樣),所以請溫柔回答。

任何想法?

感謝提前:)

我的項目樹:

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

(登錄超出WWW)

+0

你的handler_apping在'dispatcher-servlet.xml'中。所以請在問題中提供完整的'dispatcher-servlet.xml'。 –

回答

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 
    } 

} 

什麼是在第二種方法發生的情況是,因爲你必須春季安全配置,你需要先驗證但它找到了login.html的,並不能找到它。這可能是因爲配置不正確。

+0

嗨Shazin,謝謝。我嘗試了你所說的,在「休息」之前放了一個'/',但仍然沒有奏效。我收到了同樣的信息。URL路徑已被映射,但是當我嘗試訪問它時,表示沒有找到該URL的映射。 :/我甚至清理了這個項目。關於第二個問題,我不是這樣說的。其實我重新檢查,我可以訪問我的login.html頁面。當我嘗試訪問我的主頁時,我得到了'沒有找到映射,對於帶有名爲'dispatcher''的DispatcherServlet中的URI [/trackmydata/www/main.html]的HTTP請求。 **我使用我的項目樹更新了我的帖子** –

相關問題