2014-10-19 57 views
-1

我想實現一個REST Web服務API與春天,我得到錯誤400錯誤的請求 我認爲它關於調度程序配置,我讀了很多帖子,嘗試不同的事情,但無法解決問題。春季REST網絡服務:錯誤的請求

這裏RequestMapping:

@Override 
@RequestMapping(value=ServerPushApi.CREATE_PATH, method=RequestMethod.POST) 
public @ResponseBody Status createNote(@RequestBody Note note) { 
    if(note != null){ 
     db.storeNote(note); 
     return Status.Ok; 
    } 
    return Status.Fail; 
} 

這裏的調度員:

<?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:p="http://www.springframework.org/schema/p" 
xmlns:context="http://www.springframework.org/schema/context" 

xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd 
http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context.xsd"> 

<context:component-scan base-package="ch.epfl.sweng.bogocoders.server" />  
<bean 
    class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> 
    <property name="order" value="1" /> 
    <property name="mediaTypes"> 
     <map> 
      <entry key="json" value="application/json" /> 
     </map> 
    </property> 
    <property name="defaultViews"> 
     <list> 
      <!-- JSON View --> 
      <bean 
       class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" /> 
     </list> 
    </property> 
    <property name="ignoreAcceptHeader" value="true" /> 
</bean> 
</beans> 

,最後配置文件:

<dependencies> 
    <!-- Compile/runtime dependencies --> 
    <dependency> 
     <groupId>com.google.appengine</groupId> 
     <artifactId>appengine-api-1.0-sdk</artifactId> 
     <version>1.9.13</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>jstl</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
    </dependency> 
    <dependency> 
     <groupId>com.squareup.retrofit</groupId> 
     <artifactId>retrofit</artifactId> 
     <version>1.7.0</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-rest-webmvc</artifactId> 
     <version>2.2.0.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
     <version>4.1.1.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter</artifactId> 
     <version>1.1.8.RELEASE</version> 
    </dependency> 
    <!-- Jackson JSON Mapper --> 
    <dependency> 
     <groupId>org.codehaus.jackson</groupId> 
     <artifactId>jackson-mapper-asl</artifactId> 
     <version>1.9.11</version> 
    </dependency> 


    <!-- Test Dependencies --> 
    <dependency> 
     <groupId>com.google.appengine</groupId> 
     <artifactId>appengine-testing</artifactId> 
     <version>1.9.13</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.google.appengine</groupId> 
     <artifactId>appengine-api-stubs</artifactId> 
     <version>1.9.13</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.7</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-jetty</artifactId> 
     <version>1.1.8.RELEASE</version> 
    </dependency> 
</dependencies> 

感謝您的幫助。

+0

的最可能的原因是要麼你的請求不與一個服務隊指望匹配或者有而消息翻譯了一些問題。首先檢查您的請求標題並驗證,如果一切正確,請嘗試啓用詳細的spring日誌記錄,使記錄器級別跟蹤,您將能夠看到確切的錯誤消息。 – VGaur 2014-10-19 09:23:30

+0

你究竟如何稱呼它?共享POST消息的正文和標題 – freakman 2014-10-19 12:27:05

回答

0

我改變像VGaur Logger級別要求我做,並設法找到我的其他職位的問題,

我有一個構造問題:explain here 我有使用JSON轉換的問題,我修改與:here