들어가며 SOAP API 관련 개발을 하다가 아래 에러 메시지를 마주쳤다. Caused by: java.lang.NoClassDefFoundError: javax/xml/soap/SOAPMessage at java.base/java.lang.Class.getDeclaredMethods0(Native Method) ~[na:na] at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3171) ~[na:na] at java.base/java.lang.Class.getDeclaredMethods(Class.java:2314) ~[na:na] at org.springframework.util.ReflectionUtils.getDeclaredMet..
들어가며 Gson을 사용하여 객체를 Json으로 변환하면 기본적으로 한 line에 String 모두 포함된 형태로 변환되기 때문에 Json 컨텐츠를 직접 확인하려 할 때 어려움이 있습니다. { "glossary": { "title": "example glossary","GlossDiv": {"title": "S","GlossList": {"GlossEntry": {"ID": "SGML","SortAs": "SGML","GlossTerm": "Standard Generalized Markup Language","Acronym": "SGML","Abbrev": "ISO 8879:1986","GlossDef": {"para": "A meta-markup language, used to create markup..
스트림 슬라이싱 스트림의 요소를 선택하거나 스킵하는 다양한 방법을 설명한다. 스트림의 처음 몇개의 요소를 무시하는 방법, 특정 크기로 스트림을 줄이는 방법 등등 프레디케이트를 이용한 슬라이싱 자바9에서는 스트림의 요소를 효과적으로 선택할 수 있도록 takeWhile, dropWhile 두 가지 메서드를 지원한다. TAKEWHILE List specialMenu = Arrays.asList( new Dish("seasonal fruit". true, 120, Dish.Type.OTHER), new Dish("prawans". true, 300, Dish.Type.FISH), new Dish("rice". true, 350, Dish.Type.OTHER), new Dish("chicken". true, 40..
들어가며 애플리케이션에서 사용자의 키보드, 마우스 입력을 감지하는 기능을 구현해야 할 때가 있습니다. JNativeHook 라이브러리를 이용하여 이러한 기능을 구현하는 방법에 대해서 알아보겠습니다. JNativeHook Java 전용 Gloabl Keyboard, Mouse 리스너를 제공하는 라이브러리 입니다. 플랫폼에 구애받지 않으며 순수 Java로는 구현하지 못하는 키, 마우스 동작을 수신할 수 있습니다. 리스너에는 아래와 같은 Event들을 감지할 수 있습니다. Key Press Events Key Release Events Key Typed Events Mouse Down Events Mouse Up Events Mouse Click Events Mouse Move Events Mouse Drag..
Full Video Download Java URL Download를 이용하여 Video를 다운로드 하는 중 용량이 다소 큰 파일의 경우 Download가 되지 않는 현상이 발생했다. 자세히 브라우저에서 확인해보니 요청을 보냈을 때 서버의 응답코드는 302 였다. 클라이언트가 요청한 리소스가 Location 헤더에 주어진 URL에 일시적으로 이동되었음을 가리킴 검색을 통해서 확인해보니 해당 서버에서 Video 데이터를 다른 위치로 redirect를 하는 경우가 있어 최종 redirect된 URL을 알아내는 방법으로 해결이 가능하다는 내용을 확인하였다. 해결방법 Java 코드로 해결하는 방법은 302 코드를 응답하는 경우 Location헤더에 담긴 URL로 다시 요청을 보내는 것이다. 위 동작을 200 코..
들어가며 Apache Poi를 사용하여 Exel Write 기능을 구현하는 중에 아래와 같은 에러가 발생했다. 대충 상황을 살펴보니 cell styling 기능을 사용하는데 이때 Style을 적용하는 Cell이 너무 많다는 의미인 것 같았다. The maximum number of Cell Styles was exceeded. You can define up to 64000 style in a .xlsx Workbook java.lang.IllegalStateException: The maximum number of Cell Styles was exceeded. You can define up to 64000 style in a .xlsx Workbook at org.apache.poi.xssf.mode..
PNG 파일 부가정보 기록 PNG 이미지 파일에 부가적인 정보를 추가해야할 때가 있다. DB에 넣기엔 너무 오버하고 이미지 파일에 가볍게 추가하고 싶을때.. PNG 파일에 메타 데이터를 넣는 방법이 있지 않을까 해서 찾아봤는데 해본 결과 생각보다는 간단하지 않아서 방법을 공유하고 한다. 해결방법 우선 Meta Data를 추가하는 방법은 아래와 같다. 근데 검색해본 결과 아래 처럼 "TextEntry -> Text" 와 같은 형식으로 값을 정의해줘야만 한다고 한다. 내부적으로 위 구조를 택하고 있어 요소를 추가하거나 Text가 아닌 다른 값으로 설정을 해도 안되더라 ,, private void writeImage() { BufferedImage buffImg; ImageWriter writer = Imag..
들어가며 웹 상에 호스팅된 리소스(이미지, 동영상)을 다운로드 받고자 할 때가 있습니다. 이럴때 리소스의 URL를 이용하여 로컬로 저장하는 방법에 대해서 알아보겠습니다. 방법 Java IO를 사용하여 아래와 같이 구현이 가능합니다. String OUTPUT_FILE_PATH = "출력 파일 경로"; String FILE_URL = "리소스 경로"; try (BufferedInputStream in = new BufferedInputStream(new URL(FILE_URL).openStream()); FileOutputStream fileOutputStream = new FileOutputStream(OUTPUT_FILE_PATH)) { byte dataBuffer[] = new byte[1024]; i..
- Total
- Today
- Yesterday
- windows
- intelij
- TableView
- 이펙티브 자바
- 자바
- java
- 이펙티브자바
- JavaFX Table View
- 일본 여행
- Java UI
- 배낭여행
- 배낭 여행
- 자전거 여행
- 일본 자전거 여행
- springboot
- 방통대 과제물
- JavaFX
- JavaFX 테이블뷰
- effective java
- 이펙티브
- 스프링부트
- 자전거
- JavaFX 종료
- git
- 텐트
- effectivejava
- 일본 배낭여행
- 일본여행
- JavaFX Window Close
- 인텔리제이
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |