2016-04-19 5 views
2

私はSpring MVC Webアプリケーションを開発中です。私はまだUIを開発していません。ですから、私は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; 
} 
} 

私はアドバンス休憩クライアントとヘッダと要求リンクが正しく設定されているを使用して要求を送信します。

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

リクエストリンク

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

TestParamは1 veriableを持っているとき、それは正常に動作します。 2つ以上になると、エラーが発生し、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

そこにはペイロードがありませんし、応答がJSONの型であるARCでの問題がありContent-Length:headerで作品に

+0

私はそれが良い練習だとは思わない –

+2

また、 'Content-Length:'を 'header'から削除できます – youhans

1

あなたのjson形式は何ですか? JSON形式ではリテラル\ nを区切り文字として使用していると思いますが、JSONのアクションとソースがきれいに印刷されていないことを確認してください。

1

を増やします。文字列が空で応答レポートがクラッシュしているため、パーサーはエラーをスローしています。

関連する問題