2013-11-29 4 views
0

Я только начал использовать Rest Реализация Spring с Mongodb в качестве бэкэнд и пользовательского интерфейса в качестве базового клиента.Spring Rest Model не в состоянии установить

Я выполнил конфигурационную часть Spring с Mongo Db, а также создал клиент с базой.

Я застрял в запросе PUT и запросе POST.

ContactModel.java

@Document(collection = "contacts") 
public class ContactModel { 


    @Id 
    private String id; 
    private String name; 
    private String phone; 

    //getter and setters 

    //Overriden toString() 

} 

Мой контроллер

@Controller 
@RequestMapping (value="contacts") 
public class ContactController implements ApplicationContextAware{ 

private ApplicationContext applicationContext; 

@RequestMapping(value = "/", method = RequestMethod.GET) 
public @ResponseBody List<ContactModel> getContacts(){ 
    //contacts is a list 
    return contacts; 
} 


@RequestMapping(value = "/{id}", method = RequestMethod.GET) 
public @ResponseBody ContactModel getContact(@PathVariable String id){ 
    //contact is a single contact 
    return contact; 
} 

@RequestMapping(value = "/{id}", method = RequestMethod.PUT) 
public @ResponseBody ContactModel updateContact(@PathVariable String id,@RequestBody ContactModel contactModel){ 
    System.out.println("I am put " + id); 
    System.out.println("I am put 2 " + contactModel); 
    return null; 
} 

@RequestMapping(value = "/{id}", method = RequestMethod.DELETE) 
public @ResponseBody ContactModel deleteContact(@PathVariable String id){ 
    //deleting the Document with id as *id* and returning it 
    return result; 
} 

@Override 
public void setApplicationContext(ApplicationContext applicationContext) 
     throws BeansException { 
    this.applicationContext = applicationContext; 
} 
} 

Сво только основной контроллер, а не большое вычисление происходит. Теперь я могу нажать GET (оба с контактами/и контактом/{id}) и DELETE.

Кроме того, я могу ударить PUT также с точки зрения Backbone, Запрос полезной нагрузки, что происходит это:

{id: "5285fcb9ae67a6209c5b3567", name: "ABC DEF", phone: "2342465678"}

Также в моем методе PUT я получаю:

I am put 5285fcb9ae67a6209c5b3567 
I am put 2 ContactModel [id=5285fcb9ae67a6209c5b3567, name=null, phone=null] 

Теперь проблема почему значение имени и телефон является нулем и что из идентификатора устанавливаются, если весна не в состоянии выдвинуть в модель, почему идентификатора становится установленной в переменном, contactModel функции. Его действительно болезненным: '(

Reques Headers

Request URL:http://localhost:8080/karma/contacts/5285fcb9ae67a6209c5b3567 
Request Method:PUT 
Status Code:200 OK 
Request Headersview source 
Accept:application/json, text/javascript, */*; q=0.01 
Accept-Encoding:gzip,deflate,sdch 
Accept-Language:en-US,en;q=0.8,fr;q=0.6,nb;q=0.4 
Connection:keep-alive 
Content-Length:69 
Content-Type:application/json 
Host:localhost:8080 
Origin:http://localhost:8080 
Referer:http://localhost:8080/karma/ 
User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36 
X-Requested-With:XMLHttpRequest 

Пожалуйста, проливают некоторые мысли, спасибо заранее

ответ

2

Хорошо, он начал работать, проблема была в старых файлах классов, хотя Eclipse перекомпилирует файлы, но файлы классов не отражаются, в Tomcat,

  1. Я удалил сервер
  2. очищенную кэш
  3. очищенную проект Maven
  4. запустить Maven установить
  5. построен проект

Теперь отображение объектного started..this действительно невероятно ...

: D

В любом случае спасибо за ответы

1

Попробуйте проверить, был ли установлен приложение заголовка типа контента/JSON при отправке запроса

.
+0

Пожалуйста, смотрите обновленный вопрос, я указал заголовки, а также –

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