2016-01-24 2 views
1

Я пытаюсь создать и Rest API с Spring MVC, потребляющей JSON:Spring MVC Rest потреблять JSON

Контроллер:

@RestController public class CrawlerController { 


@RequestMapping(value = "/checkForMarfeelizableSite", method = RequestMethod.POST) 
public ResponseR checkForMarfeelizableSites(@RequestBody List<Entry> list) { 

    // Response 
    ResponseR responseR = new ResponseR(); 
    responseR.setOperationResult(OperationResult.OK); 

    for (Entry entry : list) { 
     System.out.println("Entry: " + entry); 
    } 

    return responseR; 
} } 

Entry.class

public class Entry { 

String url; 

public String getUrl() { 
    return url; 
} 

public void setUrl(String url) { 
    this.url = url; 
}} 

web.xml:

<web-app> 

<display-name>Marfeel Marfeelizable Checker</display-name> 

<!-- Spring Context --> 
<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/marfeel-context.xml</param-value> 
</context-param> 

<listener> 
    <listener-class> 
     org.springframework.web.context.ContextLoaderListener 
    </listener-class> 
</listener> 

<!-- Servlet --> 
<servlet> 
    <servlet-name>marfeel-crawler-api</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet 
    </servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<!-- Mapping --> 
<servlet-mapping> 
    <servlet-name>marfeel-crawler-api</servlet-name> 
    <url-pattern>/*</url-pattern> 
</servlet-mapping> 

<!-- Welcome file List --> 
<welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
</welcome-file-list> 

Я добавил Джексона Lib (ДЖЕКСОН-картограф-ASL) в моей pom.xml, но я получать HTTP 415 Error

Это образец JSON, что я посылаю:

[{"url": "c­and­a.com"},{"url": "toshiba.es"}] 
+1

настраиваете вы заголовок Content-Type правильно в запросе? –

+0

Я тестирую его с почтальоном! Я отправляю сырой json, но я ничего не добавляю! Какой заголовок следует добавить? –

+2

Тип контента: application/json –

ответ

0

Вы могли бы проверить следующее?

  • Изменить

общественного ResponseR checkForMarfeelizableSites (@RequestBody Список список)

в

общественных ResponseR checkForMarfeelizableSites (@RequestBody ArrayList список)

(поскольку список является интерфейсом и, следовательно, не может создать экземпляр).

  • Entry.class: добавить @XmlRootElement над именем класса, и пустой подрядчику (требуется для веб-экспортируемые классы)
Смежные вопросы