31.3. Plain Java 애플리케이션에 서비스 게시
31.3.1. 개요 링크 복사링크가 클립보드에 복사되었습니다!
애플리케이션을 일반 java 애플리케이션으로 배포하려면 애플리케이션의 main()
메서드에 끝점을 게시하기 위한 논리를 구현해야 합니다. Apache CXF는 애플리케이션의 main()
메서드를 작성하는 두 가지 옵션을 제공합니다.
-
wsdl2java
툴에서 생성된main()
메서드 사용 -
엔드포인트를 게시하는 사용자 정의
main()
메서드를 작성합니다.
31.3.2. 서버 메인라인 생성 링크 복사링크가 클립보드에 복사되었습니다!
코드 생성기 -server
플래그를 사용하면 도구가 간단한 서버 메인라인을 생성합니다. 예 31.2. “생성된 서버 메인라인” 에 표시된 대로 생성된 서버 메인라인은 지정된 WSDL 계약에서 각 포트
요소에 대해 하나의 서비스 공급자를 게시합니다.
자세한 내용은 44.2절. “cxf-codegen-plugin” 에서 참조하십시오.
예 31.2. “생성된 서버 메인라인” 생성된 서버 메인라인을 표시합니다.
예 31.2. 생성된 서버 메인라인
예 31.2. “생성된 서버 메인라인” 의 코드는 다음을 수행합니다.
서비스 구현 오브젝트의 사본을 인스턴스화합니다.
엔드포인트 계약에서 wsdl:port
요소의 주소
하위 항목에 따라 끝점의 주소를 생성합니다.
엔드포인트를 게시합니다.
31.3.3. 서버 메인라인 작성 링크 복사링크가 클립보드에 복사되었습니다!
Java 첫 번째 개발 모델을 사용하거나 생성된 서버 메인라인을 사용하지 않으려면 직접 작성할 수 있습니다. 서버 메인라인을 작성하려면 다음을 수행해야 합니다.
-
“서비스 공급자 인스턴스화” 서비스 공급자의
javax.xml.ws.Endpoint
오브젝트입니다. - 서비스 공급자를 게시할 때 사용할 선택적 서버 컨텍스트를 생성합니다.
-
“서비스 공급자 게시”
publish()
메서드 중 하나를 사용하는 서비스 공급자입니다. - 애플리케이션을 종료할 준비가 되면 서비스 공급자를 중지합니다.
예 31.3. “사용자 지정 서버 메인라인” 서비스 공급자를 게시하는 코드를 표시합니다.
예 31.3. 사용자 지정 서버 메인라인
예 31.3. “사용자 지정 서버 메인라인” 의 코드는 다음을 수행합니다.
서비스 구현 오브젝트의 복사본을 인스턴스화합니다.
서비스 구현을 위해 게시되지
않은 끝점을 생성합니다.
http://localhost:9000/SoapContext/SoapPort 에서 서비스 공급자를 게시합니다.
서버를 종료해야 할 때까지 루프를 수행합니다.
게시된 엔드포인트를 중지합니다.