반응형 IT/Java394 [Error] JSON parse error: Cannot deserialize value of type `java.util.ArrayList<>` from Object value (token `JsonToken.START_OBJECT`); RestApi를 테스트 중에 아래와 같은 에러가 발생했다. JSON parse error: Cannot deserialize value of type `java.util.ArrayList` from Object value (token `JsonToken.START_OBJECT`); 복잡한 out 데이터가 문제였었다.리스트, 객체를 받는지 정확하게 판단하고,해당 형식에 맞는 Dto를 만들어줘야한다. 2024. 5. 26. Spring Batch (part 3. 프로젝트 적용 - Chunk 방식) 이전에 포스팅에서 배치에 대해서 소개 및 용어 정리를 했었다.자세한 내용은 참고 포스팅 참고 바란다. 이번 포스팅에서는 Java 프로젝트 위에 올려볼 예정이다. 먼저 사용을 위해서는 Maven 등록을 해준다...이상 생략dependency> groupId>org.springframework.batchgroupId> artifactId>spring-batch-testartifactId> scope>testscope>dependency>..이하 생략 그리고 main 메서드 위에 배치 사용을 위한 annotation을 달아준다.@EnableBatchProcessing@SpringBootApplicationpublic class TestBatchApplication { public .. 2024. 5. 20. Spring Batch (part 2. 배치 종류 설명) Batch 에 대해서 이전 포스팅에서 소개를 하였다.자세한 내용은 참고 포스팅 참고 바란다. 이번 포스팅에서는 Spring Batch 에서 사용할 수 있는 배치의 종류에 대해 설명할 것이다. 스프링에서 Batch를 사용하는건 다음과 같다.Job은 여러가지의 Step 모음으로 구성되어있고 Job은 순차적인 Step을 수행하며 Batch 를 수행하게 된다.Step 은 Tasklet 처리 방식과 Chunk 지향 처리 방식을 지원한다. Tasklet: 데이터 처리과정이 tasklet안에서 한번에 이뤄진다.배치 처리과정이 쉬운 경우 쉽게 사용되며, 대량처리 경우 더 복잡해질 수 있다. Chunksize: chunksize 단위로 데이터가 페이징처럼 처리된다.대용량 데이터를 처리할때 사용되며, reader / pr.. 2024. 5. 19. [Error] Request header is too large. 에러 Springboot 기동하고 서비스 이용 중에 다음과 같은 에러가 발생 하였다. request header is too large. 원인은 이미지 파일을 올릴때 헤더값이 크게 잡힌것이고application.yml 파일에 다음과 같이 설정해주면 해결 된다. 1) Mavenserver.max-http-header-size = 400000 2) Gradleserver:max-http-header-size: 400000참고 포스팅https://thenicesj.tistory.com/531 application.properties vs application.yml본 포스팅의 주제는 제목과 같다. 먼저 둘의 차이를 보기 위해서 예제를 보면 다음과 같다. application.yml server: port: 8080.. 2024. 5. 17. NamedQuery 에 대해 Named Query란?Entity에 @NamedQuery 애노테이션을 부여해서 이 쿼리를 이름으로 불러서 사용할 수 있다.쉽게 말하면 미리 이름을 부여해서 재활용 할 수 있는 JPQL이다.이는 동적 쿼리는 불가능하며 정적 쿼리만 가능하다. 애플리케이션 로딩 시점에 이 쿼리를 JPA가 미리 파싱해서 캐싱을 해놓고, 로딩 시점에 쿼리 검증이 가능하다. 사용법은 Entity 에서 사용을 하고 아래와 같다...이상 생략@Entity@NamedQuery( name = "User.findByName", query = "SELECT a FROM USER AS a WHERE a.name = :name")public class User {..이하 생략..이상 생략List users = em.createNam.. 2024. 5. 7. Spring Cloud에 대해 Spring Cloud는 MSA 에서 개발/배포/운영 등에 필요한 기능과 아키텍처를 쉽게 구성할수 있도록 지원하는 Spring Boot기반의 Framework 이다.(MSA 에 대해서는 아래 참고 포스팅 참고)공식 홈페이지에서도 지원을 하고 있다.아래 사이트를 참고 바란다.https://spring.io/projects/spring-cloud Spring CloudSpring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers, intelligent r.. 2024. 5. 5. RestTemplate 에 대해서 이전 포스팅에서 HTTP 통신 방식에 대해 다룬 포스팅이 있다.자세한 내용은 아래 참고 포스팅에 참고 바란다. 오늘은 그 중 하나인 방법인 RestTemplate에 대해서 다뤄볼 것이다. 그리고 이 RestTemplate을 학습하기 위해서는 HttpClient 도 같이 알면 도움이 된다.자세한 내용은 아래 참고 포스팅 참고 바란다. https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/client/RestTemplate.html RestTemplate (Spring Framework 6.1.6 API)postForLocation Create a new resource by POSTing the giv.. 2024. 5. 3. Apache HttpClient 와 CloseableHttpClient 차이점 +(DefaultHttpClient / HttpClientBuilder) 우선 HttpClient 란 HTTP 메서드를 실행하는것이 주 목적이다.일반적으로는 HttpClient에 의해 내부적으로 처리된다. 여기서 만들어진것이 CloseableHttpClient 이다.CloseableHttpClient는 HttpClient의 기본 구현인 추상 클래스이고, 아래 코드는 간단한 예제 이다.CloseableHttpClient httpclient = HttpClients.createDefault();HttpGet httpget = new HttpGet("http://localhost/");CloseableHttpResponse response = httpclient.execute(httpget);try { //code} finally { response.close();} f.. 2024. 5. 1. 줄바꿈 하기 (\n, \r, \r\n 의 차이) / System.lineSeparator() Java에서 문자열의 줄바꿈을 위해서 아래 3가지의 escape 문자를 사용한다.\n\r\r\n이 세가지의 차이는? 시스템에서 사용하는 용도가 다르다.\n - unix\r - mac\r\n - windows어느 한가지를 쓰면 특정 시스템에서는 작동을 안할수 있다. 자바에서는 System.lineSeparator() 를 지원한다.escape 문자를 쓰는것도 좋지만 Java 에서 제공하는 메서드를 사용하는것도 좋아보인다. ..이상 생략System.out.println("Hello"+System.lineSeparator()+"World");..이하 생략 결과는 아래와 같다.HelloWorld 2024. 4. 30. 이전 1 ··· 6 7 8 9 10 11 12 ··· 44 다음 반응형