2016-04-19 18 views
2

Ich entwickle eine Spring MVC Webanwendung. Ich entwickle die Benutzeroberfläche noch nicht. Also teste ich meine Dienste mit Advance Rest Client Tool. Konnte JSON nicht lesen: Unerwartetes Ende der Eingabe im Feldname

mein Controller

@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 Klasse

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; 
} 
} 

Ich sende die Anfrage mit Advance-REST-Client und Kopf- und Anforderungsverbindung richtig eingestellt.

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

anfordern Link

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

es richtig funktioniert, wenn TestParam ein veriable hat. Wenn es zwei oder mehr wird, gibt es einen Fehler und trifft nicht auf 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) 

Ich ging werfen mehr Artikel und ich konnte immer noch nicht die Antwort finden.

+0

Ihr Code sieht gut aus. Können Sie einen anderen Kunden wie "POSTman" versuchen und sehen, ob ARC die Dinge vermasselt. – yogidilip

Antwort

6

Erhöhung Content-Length: in header arbeitet

+0

Ich glaube nicht, dass es eine gute Praxis ist, obwohl –

+2

auch 'Content-Length:' aus 'header' entfernen kann – youhans

1

Was ist dein JSON-Format? Ich denke, JSON-Format verwendet Literal \ n als Trennzeichen, stellen Sie sicher, dass die JSON-Aktionen und Quellen nicht hübsch gedruckt sind.

1

Es gibt ein Problem in ARC, wo es keine Nutzlast ist und die Antwort ist von einer Art von json. Der Parser wirft einen Fehler, weil die Zeichenfolge leer ist und der Antwortbericht abstürzt.