기존 wsdl 파일을 wsdl2java 사용하여 java 파일 추출하

Posted by Albert 20Day 16Hour 2Min 28Sec ago [2026-02-17]

이 방법은 프로젝트 설정과 무관하게 자바 파일( .java)만 깔끔하게 뽑아낼 때 최고입니다.

1. Apache CXF 다운로드 및 준비

  1. Apache CXF 다운로드 페이지에서 최신 버전(예: 4.0.x)의 'Binary Distribution' (zip) 파일을 받습니다.
  2. 압축을 적당한 곳(예: C:\cxf)에 풉니다.
  3. bin 폴더 안에 wsdl2java.bat(윈도우) 또는 wsdl2java(맥/리눅스) 파일이 있는지 확인합니다.

2. 터미널에서 즉시 실행 (한 줄 명령어)

터미널(CMD 또는 PowerShell)을 열고 아래 명령어를 입력합니다. (주소만 알고 있다면 파일로 저장할 필요도 없습니다.)

윈도우 기준:

Bash


' CXF bin 폴더로 이동 후 실행
C:\cxf\bin\wsdl2java -d C:\output_folder -p com.my.project.generated -encoding UTF-8 http://기존서버주소/service?wsdl
  • -d: 생성된 .java 파일들이 저장될 위치 (폴더를 미리 만들어두세요).
  • -p: 생성될 클래스들의 패키지 경로 (예: com.company.soap).
  • http://...wsdl: 알고 계신 WSDL 주소를 그대로 넣으세요.

3. Axis 1.x 마이그레이션용 '필수' 옵션 추가

Axis 1.x는 표준과 살짝 어긋나는 경우가 많아, 그냥 생성하면 호환성 문제가 생길 수 있습니다. 아래 옵션들을 추가해서 실행하는 것을 강력 추천합니다.

Bash


wsdl2java -d ./src -p com.example -fe jaxws21 -autoNameResolution -encoding UTF-8 http://주소?wsdl
  • -fe jaxws21: 기존 Axis 시스템이 아주 옛날 방식일 때, 구형 JAX-WS 2.1 호환 모드로 생성하여 파싱 에러를 줄여줍니다.
  • -autoNameResolution: WSDL 내에 이름이 중복되는 요소가 있을 때, 툴이 알아서 이름 뒤에 숫자를 붙여 충돌을 막아줍니다. (Axis WSDL에서 자주 발생)
  • -verbose: 진행 과정을 상세히 보여줍니다. 에러 확인용으로 좋습니다.

4. 생성된 파일 확인

명령어가 성공하면 지정한 폴더(-d)에 패키지 구조대로 자바 파일들이 생깁니다.

  • ObjectFactory.java: JAXB 객체 생성을 도와주는 팩토리 클래스.
  • 서비스인터페이스.java: @WebService 어노테이션이 달린 핵심 인터페이스.
  • DTO 클래스들: List<String> 등이 포함된 데이터 객체들.

가장 쉬운 활용법

  1. 위 방법으로 생성된 자바 파일들을 통째로 복사합니다.
  2. 현재 진행 중인 Spring Boot 프로젝트의 src/main/java 아래에 붙여넣습니다.
  3. Spring Boot + CXF 설정만 해주면 끝입니다.





LIST

Copyright © 2014 visionboy.me All Right Reserved.