31.3. 일반 Java 애플리케이션에 서비스 게시


31.3.1. 개요

애플리케이션을 일반 java 애플리케이션으로 배포하려면 애플리케이션의 main() 메서드에 끝점을 게시하는 논리를 구현해야 합니다. Apache CXF는 애플리케이션의 main() 메서드를 작성하는 두 가지 옵션을 제공합니다.

  • wsdl2java 툴에서 생성한 main() 메서드를 사용합니다.
  • 끝점을 게시하는 사용자 정의 main() 메서드 작성

31.3.2. 서버 Mainline 생성

코드 생성기 -server 플래그를 사용하면 도구가 간단한 서버 메인라인을 생성할 수 있습니다. 예 31.2. “생성된 서버 메인 라인” 와 같이 생성된 서버 메인 라인은 지정된 WSDL 계약의 각 포트 요소에 대해 하나의 서비스 공급자를 게시합니다.

자세한 내용은 44.2절. “cxf-codegen-plugin” 에서 참조하십시오.

예 31.2. “생성된 서버 메인 라인” 생성된 서버 메인라인을 표시합니다.

예 31.2. 생성된 서버 메인 라인

package org.apache.hello_world_soap_http;

import javax.xml.ws.Endpoint;

public class GreeterServer {

    protected GreeterServer() throws Exception {
        System.out.println("Starting Server");
        Object implementor = new GreeterImpl();
        String address = "http://localhost:9000/SoapContext/SoapPort";
        Endpoint.publish(address, implementor);
    }

    public static void main(String args[]) throws Exception {
        new GreeterServer();
        System.out.println("Server ready...");

        Thread.sleep(5 * 60 * 1000);
        System.out.println("Server exiting");
        System.exit(0);
    }
}

예 31.2. “생성된 서버 메인 라인” 의 코드는 다음을 수행합니다.

서비스 구현 오브젝트의 사본을 인스턴스화합니다.

끝점의 계약에 있는 wsdl:port 요소의 address 하위 항목 콘텐츠를 기반으로 끝점의 주소를 생성합니다.

엔드포인트를 게시합니다.

31.3.3. 서버 Mainline 작성

Java 첫 번째 개발 모델을 사용하거나 생성된 서버 메인 라인을 사용하지 않으려면 직접 작성할 수 있습니다. 서버 메인라인을 작성하려면 다음을 수행해야 합니다.

  1. “서비스 공급자 인스턴스화” 서비스 공급자의 javax.xml.ws.Endpoint 오브젝트입니다.
  2. 서비스 공급자를 게시할 때 사용할 선택적 서버 컨텍스트를 생성합니다.
  3. “서비스 공급자 게시” publish() 방법 중 하나를 사용하는 서비스 공급자입니다.
  4. 애플리케이션을 종료할 준비가 되면 서비스 공급자를 중지합니다.

예 31.3. “사용자 정의 서버 Mainline” 서비스 공급자 게시를 위한 코드를 보여줍니다.

예 31.3. 사용자 정의 서버 Mainline

package org.apache.hello_world_soap_http;

import javax.xml.ws.Endpoint;

public class GreeterServer
{
  protected GreeterServer() throws Exception
  {
  }

  public static void main(String args[]) throws Exception
  {
    GreeterImpl impl = new GreeterImpl();
    Endpoint endpt.create(impl);
    endpt.publish("http://localhost:9000/SoapContext/SoapPort");

    boolean done = false;
   while(!done)
    {
      ...
    }

   endpt.stop();
    System.exit(0);
  }
}

예 31.3. “사용자 정의 서버 Mainline” 의 코드는 다음을 수행합니다.

서비스 구현 개체의 사본을 인스턴스화합니다.

서비스 구현을 위해 게시되지 않은 끝점을 생성합니다.

http://localhost:9000/SoapContext/SoapPort 에서 서비스 공급자를 게시합니다.

서버가 종료될 때까지 반복합니다.

게시된 끝점을 중지합니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.