2016-04-19 2 views
2

Я разрабатываю веб-приложение Spring MVC. Я еще не разрабатываю интерфейс. Поэтому я тестирую свои услуги, используя инструмент Advance Rest Client.Не удалось прочитать JSON: Неожиданный конец ввода в поле имени

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

@Controller 
@RequestMapping("/testController") 
public class TestController { 

@Autowired 
private TestService testService; 

@RequestMapping(value = "/test", method = RequestMethod.POST, consumes = { MediaType.APPLICATION_JSON_VALUE }, produces = { MediaType.APPLICATION_JSON_VALUE }) 
public 
@ResponseBody void testMethod(@RequestBody TestParam testParam) { 

    String tenant = testParam.getTenantCode(); 
    String testString = tenant + " is the tenant"; 
} 
} 

TestParam.java класс

public class TestParam { 

private String testVar; 
private String tenantCode; 

public String getTenantCode() { 
    return tenantCode; 
} 

public void setTenantCode(String tenantCode) { 
    this.tenantCode = tenantCode; 
} 

public String getTestVar() { 
    return testVar; 
} 

public void setTestVar(String testVar) { 
    this.testVar = testVar; 
} 
} 

я отправить запрос с помощью Advance Rest клиента и заголовки и запроса ссылки правильно установлены.

{"testVar":"Test","tenantCode":"DEMO"} 

Запрос ссылка

http://localhost:8080/myApp/controller/testController/test 

Она работает правильно, когда TestParam имеет один veriable. Когда он становится два или более, он дает ошибку и не попадает в testMethod.

exception is com.fasterxml.jackson.core.JsonParseException: Unexpected end-of-input in field name at [Source:[email protected]; line: 1, column: 43] 
at org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.readJavaType(MappingJackson2HttpMessageConverter.java:181) 
at org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.read(MappingJackson2HttpMessageConverter.java:173) 
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:135) 

Я пошел бросить больше статей, и я все еще не мог найти ответ.

+0

Ваш код выглядит нормально. Можете ли вы попробовать другой клиент, такой как «POSTman», и посмотреть, не заставляет ли ARC что-то притворяться. – yogidilip

ответ

6

Увеличение Content-Length: в header работает

+0

Я не думаю, что это хорошая практика, хотя –

+2

Кроме того, можно удалить 'Content-Length:' from 'header' – youhans

1

Какой формат json? Я думаю, что формат json использует литеральные \ n в качестве разделителей, пожалуйста, убедитесь, что действия и источники JSON не очень печатаются.

1

Существует проблема в АРК, где нет полезной нагрузки и ответ от типа JSON. Parser бросает ошибку, потому что строка пуста и отчет ответа сбой.

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