
1. 개요 로컬 환경은 Spring Framework와 Tomcat 서버를 기반으로 개발되어 있었으며, 파일 업로드 기능은 MultipartFile을 활용하여 구현되어 있었다. 프로젝트의 서버 환경의 경우 WAS(Web Application Server)를 Tomcat이 아닌 Resin을 사용하는 것을 뒤늦게 확인하였고 이 과정에서 파일 업로드 기능에 문제가 발생하였다. 2. 문제 상황 Resin 서버로 이관 후, 클라이언트에서 전송한 파일이 서버에서 MultipartFile 객체로 정상적으로 매핑되지 않거나, transferTo() 호출 시 내부적으로 발생하는 권한/호환성 오류로 인해 업로드가 실패하였다. 대표적인 예외 메시지는 다음과 같았다. java.lang.NullPointerException :..

1. 오류 개요 PostgreSQL과 MyBatis를 사용하여 데이터베이스 작업을 수행하는 중 "invalid input syntax for type numeric" 오류가 발생하였다. 2. 오류 발생 위치 및 원인 분석 2.1 오류 발생 위치 오류가 발생한 위치는 MyBatis SQL을 선언한 XML 파일 내의 쿼리에서 확인되었다. 문제 발생 쿼리 (일부) update test_tableset num = nullif(#{paramNum}, '')::numericwhere id = #{id}2.2 오류 메시지 및 원인 분석 오류 메시지: invalid input syntax for type numeric : "" 파라미터 paramNum이 빈 문자열 ('')로 전달되는 경우 발생 이미 nullif(파라미..

jdom의 xPath 기능을 활용하여 xml 전문 내에서 특정 항목의 값을 추출하려 하였으나 더 이상 로그가 표출되지 않고 진행이 되지 않고 멈추는 증상이 발생하였다. 사용하고 있는 xPath 관련 코드는 아래와 같다. Document documentDataselectElement = (Element)XPath.selectSingleNode(documentData,pm_sPath); XPath class 정의를 보기 위해 declaration open을 해보았을 때 jdom.jar 내에 있다고 확인되었고 해당 메소드를 사용하는 소스상에도import org.jdom.xpath.XPath; import 정보를 확인할 수 있었음.jdom.jar에서 해당 메서드를 호출하는 소스를 디컴파일 해보았음. XPath...

서로 다른 시스템 간 byte 데이터를 송수신하는 기능을 개발 조건 1.byte 데이터를 String형으로 송수신 2.시스템간 인스턴스 문자 인코딩(UTF-8, EUC-KR 등)이 다름바이트 데이터 추출하기 System.out.println("===현재 프로젝트 문자 인코딩 UTF-8==="); System.out.println("===byte 데이터 문자 인코딩 확인==="); String testStr = "테스트"; byte[] euckrByte = testStr.getBytes("EUC-KR"); byte[] utf8Byte = testStr.getBytes("UTF-8"); String euckrStrToUtf8 = new String(euckrByte,"UTF..

HTML과 Jquery 활용한 화면 프론트 작업 중 발생한 문제이다. 문제Jquery를 통하여 특정 영역에 html을 append 해주는 기능을 작업하던 중서버에서 요청받은 데이터가 해당 기능 추가 전과 후의 차이가 확인되었음. 설명을 위해 필요한 부분만 작성한 html 코드 예시 우선 결과 데이터를 기준으로 비교 결과 testFunc() 함수가 실행된 결과임을 알 수 있었음. 다만 해당 함수 위치한 영역은 숨겨져 있으며 특정조건에 일치하는 경우에 대해서만 표출해주고 있는 형태이다. 함수가 실행되기 위해서는 onblur 이벤트가 발생해야함. 하지만 테스트한 케이스는 해당 영역이 표출되어있지 않음. append 시 사용하는 Jquery 소스코드 $('..

오라클 시퀀스를 사용한 기능을 추가하던 중 시퀀스가 증가하지 않는 현상이 발생하였음. 간략한 작업 내용은 특정 시퀀스를 조회하여 보관하고 다시 동일한 시퀀스를 조회하여 함께 사용하는 작업이었음. 첫 번째 시퀀스 조회 시 증가된 번호를 가져왔으나 두 번째 시퀀스 조회 시 첫 번째에 조회된 번호가 그대로 들어있었음. 첫번째 시퀀스 조회 결과 : 1 두번째 시퀀스 조회 결과 : 1 해당 기능과 관련된 일부 소스는 아래와 같음. MyBatis 영역 SELECT SEQ.NEXTVAL FROM DUAL Repository 영역 TestDAO interface 작성 생략 @Repository public class TestDAOImpl implements TestDAO{ @Override public int getT..

발단상황java를 사용하고 데이터베이스에서 조회된 데이터 목록을 JSON 형태로 응답을 해주는 방법 중 하나로는 ObjectMapper Class ( import com.fasterxml.jackson.databind.ObjectMapper; )가 있다. ObjectMapper Class 내에 여러 메소드 중 하나인 writeValueAsString 메소드는 java의 Object를 직렬화 과정을 통하여 json 형태의 String 형으로 변환해 주는 역할을 한다. 이러한 기능을 이용하여 기능을 개발을 진행하던 중 원하는 결과를 반환하지 않는 경우가 발생하였다. 데이터베이스에서 데이터 목록을 조회하여 ObjectMapper의 writeValueAsString 메소드를 이용하여 값을 반환하는 기능을 개발하..

발단 java 환경에서 작업을 진행하던 중 아래와 같은 오류 로그 발생 로컬 작업환경에서는 정상적으로 테스트되었으나 서버상에서 테스트 시 발생 Java security providerexception could not derive key java rsa decryption is failed 해당 에러가 발생하는 부분에서 사용하고 있는 메소드 확인 시 아래와 같음 import org.bouncycastle.util.encoders.Base64 잘 알려진 JCE(Java Cryptography Extension) 라이브러리 보안 공급자 중 하나인 "bouncycastleprovider"를 호출하다 발생하는 것으로 확인. 원인파악 bouncycastleprovider 사용시 기본 설정하는 부분에 대하여 로컬과..
- Total
- Today
- Yesterday
- tomcat
- Oracle
- SQL
- spring
- TLS
- jQuery
- React
- SSL
- IMAGE
- WAS
- Linux
- web
- mybatis
- standardmultiparthttpservletrequest
- JSON
- docker
- vscode
- Git
- gradle
- Java
- JPA
- 컨테이너
- Eclipse
- 깨짐
- Windows
- abstractcauchorequest
- 날짜
- html
- parse
- SpringBoot
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |