2013-03-05 5 views
0

Я работаю над настройкой REST api с использованием Java/Spring/Maven в движке сервлетов JBoss и использованием MultiActionController.Определение API Spring Rest с использованием MultiActionController

Что I want to do is to group requests to a Single controller, например: всех /requestA goes to Controller a, что есть несколько способов для различного запроса, как - /requestA/add.do goes to add-function

  • /requestA/delete.do goes to delete-function.

Я читал пружинные документации: http://static.springsource.org/spring/docs/3.0.0.M3/spring-framework-reference/html/ch18s02.html и http://static.springsource.org/spring/docs/3.0.0.M3/spring-framework-reference/html/ch16s03.html#mvc-controller-multiaction

Но у меня есть некоторые проблемы в конфигурации диспетчера в xml. Кто-нибудь знает хороший пример того, как это сделать в Spring MVC.

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

    <bean name="/test/*.do" class="org.test.TestControllerA" /> 
</beans> 

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>springTest</display-name> 

    <servlet> 
     <servlet-name>springapp</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>springapp</servlet-name> 
     <url-pattern>*.html</url-pattern> 
    </servlet-mapping> 
</web-app> 

и контроллер Java

public class TestControllerA extends MultiActionController { 

    @RequestMapping("/TEST") 
    public ModelAndView add(HttpServletRequest request, HttpServletResponse response) throws Exception { 
    System.out.println("Test42"); 
    return new ModelAndView(); 
    } 
} 
+2

Покажите нам, что вы весна xml – Sudhakar

+0

как вы делаете картографирование url? –

+0

Обновлено кодом – Hiny

ответ

1

Вы пропускаете сервлета картографию

<servlet-mapping> 
    <servlet-name>springapp</servlet-name> 
    <url-pattern>*.do</url-pattern> 
</servlet-mapping> 

У ваших переводов есть расширение *.do, но оно не отображается на springapp. Поэтому добавьте приведенную выше конфигурацию к вашему web.xml

+0

Я получаю: Не найдено сопоставления для HTTP-запроса с URI [/MY-PROJECT-0.0.1-SNAPSHOT/test/add.do] в DispatcherServlet с именем «springapp» в журнале Jboss. – Hiny

+0

Добавление .do и удаление @RequestDefinition помогло, имело отображение прав в сервлет conf. – Hiny

Смежные вопросы