2015-02-24 91 views
0

我寫了一個非常小的休息服務。當我嘗試通過其餘的靜音時,我得到的錯誤是「不支持的方法」。任何人都可以,請在此建議我。春季休息電話不工作

**controller class** 
@Controller 
@RequestMapping("/movie") 
public class MovieController { 

    @RequestMapping(value="/{name}", method = RequestMethod.PUT, consumes="application/json") 

    public @ResponseBody Student getMovie(@PathVariable String name, ModelMap model, @RequestBody Student student, HttpSession session) { 

     Map<Integer, Student> empData = new HashMap<Integer, Student>(); 
     empData.put(1, student); 
     return student; 

    } 

} 

**Request I am sending throught Rest DHC Client** 

URL: http://localhost:8081/SpringMVC/movie/test 
method selected: PUT 
Headers: Content-Type:application/json 
Body: { 
"userId":"21", 
"firstName":"srinu", 
"lastName":"nivas" 
} 

回答

0

我只用澤西島做你想做的。

我的web.xml文件:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app id="WebApp_ID" version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 
    <display-name>appName</display-name> 
    <filter> 
     <filter-name>jersey</filter-name> 
     <filter-class>com.sun.jersey.spi.container.servlet.ServletContainer</filter-class> 
     <init-param> 
      <param-name>com.sun.jersey.config.property.packages</param-name> 
      <param-value>com.appName.rest</param-value> 
     </init-param> 
     <init-param> 
      <param-name>com.sun.jersey.config.property.JSPTemplatesBasePath</param-name> 
      <param-value>/Pages/</param-value> 
     </init-param> 
     <init-param> 
      <param-name>com.sun.jersey.config.property.WebPageContentRegex</param-name> 
      <param-value>/(resources|(Pages))/.*</param-value> 
     </init-param> 
    </filter> 
    <filter-mapping> 
     <filter-name>jersey</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 
</web-app> 

而在其餘類別i返回可視:

我的安息類:

@GET 
@Path("/PathToAccessPage") 
@Produces(MediaType.TEXT_HTML) 
public Viewable GetMyClassPage(@Context HttpServletRequest request, @Context UriInfo ui, @Context HttpHeaders hh) { 
    try {   
     MyClass myClass = getMyClass(); 
     return new Viewable("/page", myClass); 
    } 
    catch (Exception ex) { 
     return new Viewable("/error", "Error processing request: " + ex.getMessage()); 
    } 
} 

希望大家幫!

+0

使用http方法「get」,我可以得到結果。但是,當我使用POST/PUT和JSON時,我正在嘗試使用JSON內容發送請求時遇到問題。 – user2082928 2015-02-24 18:04:39

+0

JoãoMarcos:如果您可以與JSON請求/響應共享一個球衣示例。這應該沒問題。謝謝 – user2082928 2015-02-24 18:06:22

0

最後,我得到了解決方案。我沒有輸入下面的兩個罐子。

<dependency> 
      <groupId>org.codehaus.jackson</groupId> 
      <artifactId>jackson-core-asl</artifactId> 
      <version>1.9.13</version> 
     </dependency> 

     <dependency> 
      <groupId>org.codehaus.jackson</groupId> 
      <artifactId>jackson-mapper-asl</artifactId> 
      <version>1.9.13</version> 
     </dependency> 

由於我使用Spring MVC和,你可以在上面的代碼中看到的,我給的消耗=應用/ JSON,我以爲會用SpringMVC採取照顧。這是我的錯誤,也是我認爲春季所掀起的錯誤應該是特定於此的錯誤。無論如何,得到了解決方案。感謝所有的幫助。