SpringBoot 3와 Nexacro N을 연동하여 transaction 통신을 구현하던 중 서버 실행 및 통신 과정에서 여러 오류가 순차적으로 발생했다.
개발 환경
- Java 17
- SpringBoot 3.2.5
- MyBatis 3.0.3
- Nexacro N
- gradle
🎯문제1 - javax.servlet.ServletOutputStream
필요한 코드를 작성하고 SpringBoot 프로젝트를 실행했는데 아래와 같은 오류 발생
Caused by: java.lang.NoClassDefFoundError: javax/servlet/ServletOutputStream
원인
프로젝트에 사용하기 위해 다운받았던 Nexacro uiadapter 라이브러리가 Spring Boot 2.x 환경용(javax.servlet 기반)이었기 때문
현재 개발 환경은 SpringBoot3이기 때문에 javax 패키지를 찾을 수 없어 'NoClassDefFoundError'가 발생한 것
해결
아래 링크에서 버전에 맞는 라이브러리 다운
https://mangosteen.tobesoft.co.kr/nexus/#browse/browse:maven-public
Nexus Repository Manager
mangosteen.tobesoft.co.kr
com/nexacro 폴더로 이동하여 필요한 라이브러리의 jakarta 버전 다운로드

다운 받고 싶은 파일의 버전을 확인하고, 해당 jar 파일 링크를 클릭하면 다운 받을 수 있음

다운 받은 파일을 프로젝트 폴더에 삽입
(Nexacro 라이브러리는 gradle을 통해 다운 받을 수 없기 때문에 직접 라이브러리 파일들을 넣어줘야 함)

🎯문제2 - jakarta.servlet.jsp.JspWriter
위 오류는 해결 됐으나 아래와 같이 추가 오류가 발생함
java.lang.ClassNotFoundException: jakarta.servlet.jsp.JspWriter
원인
Nexacro XAPI가 응답 데이터를 생성하는 과정에서 JSP API를 참조함. 아래 위치에서 오류 발생
com.nexacro.java.xapi.tx.HttpPlatformResponse.sendData()
Controller 실행 -> 에러 발생 -> NexacroView가 에러 응답 생성 -> XAPI가 응답을 XML/SSV로 변환 -> JspWriter 클래스를 찾으려 함 -> 없음 -> 실패
Spring Boot 3는 JSP 관련 라이브러리를 기본 제공하지 않기 때문에 ClassNotFoundException 에러가 발생한 것
해결
build.gradle에 JSP 의존성 추가
implementation 'jakarta.servlet.jsp:jakarta.servlet.jsp-api:3.1.1'
🎯문제3 - org.apache.commons.lang.StringUtils
이어서 아래 오류 발생
ClassNotFoundException: org.apache.commons.lang.StringUtils
원인
Nexacro XAPI가 개발되었을 때엔 'org.apache.commons.lang.StringUtils'를 많이 사용했다고 한다
다만 Apache에서 commons-lang을 commons-lang3로 변경하면서, 구버전 의존성을 가진 nexacro와 충돌이 일어난 것
해결
gradle 의존성 추가
implementation 'commons-lang:commons-lang:2.6'
결과

데이터가 잘 불러와지는 것을 확인할 수 있음
'트러블슈팅' 카테고리의 다른 글
| [트러블슈팅/SpringBoot] Nexacro Dataset 인식 안 됨 (0) | 2026.06.13 |
|---|---|
| [트러블슈팅/SpringBoot] 415 오류: Content-Type 'application/octet-stream' is not supported (0) | 2026.05.19 |
| [트러블슈팅/SpringBoot] WebMvcTest로 Controller 테스트 시 JwtUtil 인식 안 됨 (1) | 2026.03.11 |
| [트러블슈팅/SpringBoot] Builder 필드 초기값 누락 (0) | 2026.01.22 |
| [트러블슈팅/GitHub] 원격저장소 - 로컬저장소 기록(history) 병합 (0) | 2026.01.17 |