Java에서 WSDL을 기반으로 SOAP 웹 서비스의 request/response 클래스를 정의하려면, Java의 wsimport 도구를 사용하여 WSDL 파일로부터 클래스 파일을 자동으로 생성할 수 있습니다.
wsimport는 JAX-WS (Java API for XML Web Services) 라이브러리의 일부로, WSDL에서 필요한 Java 클래스를 자동으로 생성해줍니다.
1. wsimport를 사용한 WSDL 처리
(1) wsimport 명령어 실행
터미널이나 명령 프롬프트를 엽니다.
다음 명령어를 사용하여 WSDL 파일로부터 Java 클래스를 생성합니다.
wsimport -keep -s <source_folder> -d <class_folder> http://your_service_url?wsdl
-keep : 생성된 소스 파일을 유지합니다.
-s <source_folder> : 생성된 소스 파일을 저장할 폴더를 지정합니다.
-d <class_folder> : 컴파일된 클래스를 저장할 폴더를 지정합니다.
http://your_service_url?wsdl: WSDL 파일의 URL을 입력합니다.
(2) 생성된 파일 확인
wsimport 명령어를 실행하면, WSDL 파일에 정의된 메서드에 대한 요청 및 응답 클래스를 포함한 여러 Java 파일들이 자동으로 생성됩니다.
예를 들어, WSDL 파일이 getUserDetails라는 메서드를 포함하고 있다면, GetUserDetailsRequest 및 GetUserDetailsResponse와 같은 클래스들이 생성됩니다.
2. 생성된 클래스 사용 예시
생성된 클래스들을 사용하여 SOAP 요청을 만드는 간단한 예제는 다음과 같습니다.
WSDL에서 생성된 클래스 예시
생성된 클래스들이 다음과 같다고 가정해보겠습니다.
GetUserDetails : 요청을 위한 클래스
GetUserDetailsResponse : 응답을 위한 클래스
UserService : 서비스 인터페이스
(1) 요청/응답 사용 예제
import your.package.generated.GetUserDetails;
import your.package.generated.GetUserDetailsResponse;
import your.package.generated.UserService;
import your.package.generated.UserService_Service;
public class SoapClientExample {
public static void main(String[] args) {
// WSDL에서 생성된 서비스 클래스 인스턴스화
UserService_Service service = new UserService_Service();
UserService port = service.getUserServicePort();
// 요청 객체 생성
GetUserDetails request = new GetUserDetails();
request.setUserId(12345);
// 서비스 메서드 호출
GetUserDetailsResponse response = port.getUserDetails(request);
// 응답 처리
System.out.println("User Name: " + response.getUserName());
System.out.println("User Age: " + response.getUserAge());
}
}
'#IT 개발노트' 카테고리의 다른 글
원격 서버 자원(CPU/MEM/DISK) 모니터링 (0) | 2024.05.23 |
---|---|
[DB] MSSQL 기본 쿼리 (테이블, 컬럼, 인덱스, 프로시저, DB Lock 조회) (0) | 2024.04.04 |
JavaScript(자바스크립트) 브라우저 객체 2탄 (0) | 2024.02.02 |
JavaScript(자바스크립트) 브라우저 객체 1탄 (0) | 2024.02.02 |
자주 사용되는 자바스크립트 이벤트 (0) | 2024.01.29 |