분류 전체보기108 ClientAbortException 시 HttpServletResponse 에서 .getOutputStream() 관리 이전 게시물에서 IOException이 발생하면 내가 원하는대로 json 응답을 해주고 싶었다. 파일 다운로드 try catch 시 자원 반납, exception 시 json 응답이번에 많은 테스트를 하며 기록해 두면 좋을 것 같은 내용이다. 상황은 다음과 같다.1. 파일 다운로드를 모두 void로 리턴한다.- 스트림으로 이미 내보내서 커밋 됐는데 또 json으로 리턴하려고so23go.tistory.com 하지만 ClientAbortException이 발생한 경우에 outputStream.close()하는 부분에서 에러가 발생한다. 이유가 뭔지 알아보니 서블릿에서 몇몇의 경우에 알아서 스트림을 정리한다고 한다. 스트림을 정리하는 건 다음의 경우 등이 있다. 응답이 클라이언트로 완전히 전송된 경우서블릿의 .. 2024. 12. 5. 파일 다운로드 try catch 시 자원 반납, exception 시 json 응답 이번에 많은 테스트를 하며 기록해 두면 좋을 것 같은 내용이다. 상황은 다음과 같다.1. 파일 다운로드를 모두 void로 리턴한다.- 스트림으로 이미 내보내서 커밋 됐는데 또 json으로 리턴하려고 하니 response has already been committed 에러가 나는 것으로 보임2. 파일 다운로드 중간에 IOException 이 발생한 경우 json으로 응답하려고 함 크게 이 두가지다.바로 코드로 들어가자public void fileDownload(){ // ... setDownloadResponseHeaders(...); OutputStream outputStream = response.getOutputStream(); try (FileInputStream fileInputStream = .. 2024. 12. 4. mockMvc에서 HttpServletRequest 값 넣는 방법 상황- 컨트롤러 테스트임- mock 테스트로 session은 잘 넣을 수 있으나 HttpServletRequest 을 넣으려고하니 안 들어감 대충 코드는 이렇다.@GetMapping("/~~") public void someMethod(@Valid SomeVo someVo, @PathVariable("lang") @NotBlank String lang, HttpServletRequest req, HttpServletResponse res) throws Exception { // ... //public static final 로 선언한 자료구조 SOME_MAP.remove(req.getRequestedSessionId()); } req.getRequest.. 2024. 12. 3. [스프링] .properties 에 값이 없는 경우 @Value 기본 값 설정 [스프링] .properties 에 값이 없는 경우 @Value 기본 값 설정 이번에 신기한 거를 발견했다. 상황 먼저 보면 1. 프로퍼티 파일에 새로 추가해야 하는 항목이 생김. 2. 해당 항목은 Y 또는 N으로 진행됨. 3. 여러 사이트에 이미 프로퍼티가 고정되어 있음. (추가가 어려운 상황) 4. 이때 기본적으로 N으로 설정한 효과를 줘야 함 이런 상황이다. @Value("${test.property:N}") String prop; 이렇게 집어오고싶은 프로퍼티 옆에 `:(값)`을 적으면 된다. 띄어쓰기는 하면 인식이 안 된다. 2024. 2. 19. [스프링] 파일 다운로드 구현 시 Cannot forward to error page for request [] as the response has already been committed 에러 [스프링] 파일 다운로드 구현 시 Cannot forward to error page for request [] as the response has already been committed 에러 파일 다운로드 하는 부분에서 ErrorPageFilter 에러가 계속 났다. 정확한 원인은 이 부분이 아니지만 무슨 일이 있었나 정리해 보자. 먼저 이 에러를 알아보자. Cannot forward to error page for request [] as the response has already been committed. As a result, the response may have the wrong status code. If your application is running on WebSphere Appl.. 2024. 2. 14. [JDBC] DB PK변경 방법 [JDBC] DB PK변경 방법 MariaDB에서 테이블 생성 후 pk를 바꿔야 하는 일이 생겼다. 방법은 다음과 같다. 1. JPA로 테이블 생성 2. 기존 PK 제거 3. 새로운 PK 생성 간단하다. 그러나 고려할게 몇 가지 있었는데 단계적으로 가면서 알아보자. 1. JPA로 테이블 생성 JPA로 테이블 생성은 특별하지 않다. @Entity @Table(name="test_table") @Getter @NoArgsConstructor public class testTable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long idx; @Column(name="target", columnDefinition = "VARCHAR(5.. 2024. 2. 7. 이전 1 2 3 4 ··· 18 다음