IT 프로그래밍-Server

[Android-spring boot] ResponseBody로 String반환 시 발생 오류

godsangin 2021. 5. 30. 12:27
반응형

안녕하세요. 오늘은 클라이언트-서버 통신 과정에서 발생한 오류에 대해 적어볼까 합니다.

 

이번 문제는 aws s3에 이미지를 저장하고 반환받은 url을 클라이언트로 반환하는 과정에서 발생하였는데요 !

Rest API의 controller에서 url을 클라이언트 측으로 String 형식으로 전달하는 과정에서 아래와 같은 예외를 맞이하게 되었습니다..(안드로이드에서의 통신은 Retrofit 라이브러리를 사용합니다.)

 

com.google.gson.stream.MalformedJsonException: Expected value at line 1 column 6 path $ retrofit.

 

구글링을 하면서 여러가지 방법을 적용해보면서 원인을 파악해 보았는데 정확한 원인을 파악할 수는 없었습니다. ㅠㅠㅠ

하지만 아래 블로그를 참고하여 JSON 포멧의 유효성과 관련한 문제라는 것으로 특정할 수 있었습니다.

https://devzzi.tistory.com/25

 

[Android] Retrofit 통신 구현 중 MalformedJsonException 발생 원인 및 해결 방법 정리

[Android] Retrofit 통신 구현 중 MalformedJsonException 발생 원인 및 해결 방법 정리 Error Log D/CameraActivity: header : Content-Disposition: form-data; name="((filename))"; filename="((filename))"..

devzzi.tistory.com

 

임시방편으로 Spring WAS의 Controller단에서 반환하던 String 값을 Map으로 담아서 현재는 문제없이 작동하고 있는 상황입니다. 정확한 문제의 원인 또는 보편적인 해결방법이 있다면 댓글로 알려주시면 감사하겠습니다..ㅜㅜㅜㅜ

아래는 Controller의 코드입니다.

/**
	 * Place CRUD
	 */
	@PostMapping(value = "/place/image")
	@ResponseBody
	public Map<String, String> insertPlaceImage(@RequestParam("file") MultipartFile file) {
		String str = placeService.insertPlaceImage(file); // 테스트 중 place도 같이 받아야댐
		Map map = new HashMap<String, String>();
		map.put("url", str);
		return map;
	}
	

 

감사합니다~~!! ㅎㅎㅎㅎ