본문 바로가기

개 발코딩

[JAVA] getWriter() has already been called for this response 원인

서블릿 클래스 코딩을 열심히 하고 실행을 시켰더니 아래와 같은 Exception이 떨어졌다.


구글링을 열심히 해보니 한 소스에 response.getOutputStream()과 response.getWriter()가 같이 있으면 이런 에러가 난다고 한다.

그리고 기본적으로 response.getWriter()를 쓰는게 일반이란다.


jData.put( "tagKeyCondition", "" );

OutputStream os = con.getOutputStream();
os.write(jData.toString().getBytes("UTF-8"));
os.flush();

System.out.println("<json> : " + jData.toString()); // 전문 검증

if(con.getResponseCode() != HttpURLConnection.HTTP_OK) {
throw new RuntimeException( "Failed : HTTP error code : "
+ con.getResponseCode() );
} else {
PrintWriter out = response.getWriter();

out.println("<h1>전송성공, 응답코드 : "+ con.getResponseCode() +"</h1><br>");
System.out.println(response.getOutputStream().toString());

System.out.println( "Success : HTTP code : "+ con.getResponseCode() );
}

con.disconnect();

 

이게 그 소스 부분인데 다시보니 멍충하게 response.getOutputStream()과 response.getWriter()를 같이 썼다. 

아래에 response.getOutputStream()은 내가 왜 썼는지 기억도 안난다. 그래서 삭제~!

그랬더니 이제 정상적으로 잘된다.

코딩을 효율적으로 하자..;;