[원본 출처] http://cxf.apache.org/docs/how-do-i-develop-a-service.html


CXF provides you with many options to build services. This guide is meant to give you a quick overview of those options and help you orient yourself quickly with CXF.
CXF 는 서비스를 빌드 하기 위해 많은 옵션을 제공한다. 이 가이드는 그런 옵선의 빠른 개요와 CXF로 빠르게 규명짓는 것을 돕는 것을 의미한다. 

Different Types Of Services
서비스의 다른 유형들

CXF support three major types of services:
CXF 서비스의 3가지 주요 유형을 지원한다.

  • SOAP - this page summarizes the options for creating SOAP services.
    SOAP - 이 페이지는 SOAP 서비스를 생성하기 위해 옵션을 요약한다.
  • REST-ful - REST support is described here.
    REST-ful - REST 지원은 여기 기술되어 있다.
  • CORBA

JAX-WS Annotated Services from Java
Java 에서 JAX-WS 어노테이션 된 서비스들

The JAX-WS APIs include a set of annotations which allow you to build services using annotated classes. These services are based on a single class which contains a set of operations.
JAX-WS API들은 어노테이션된 클래스를 사용하여 서비스를 빌드하는 것을 허용하는 annotations 의 집합을 포함한다. 그 서비스들은 동작들의 집합을 포함하는 단일 클래스에 기반한다.

Here's a simple example:
여기 단순한 예가 있다.

@WebService
public class Hello {
  public String sayHi(String name) {
    return "Hello " + name;
  }
}

JAX-WS includes many more annotations as well such as:
JAX-WS 다음 과 같은 더 많은 어노테이션들을 포함한다.

  • @WebMethod - allows you to customize the operation name, exclude the operation from inclusion in the service, etc
    @WebMethod - 서비스 등에서 포함에서 동작을 제외 하는 동작 명을 사용자 정의 하는 것을 허용한다.
  • @WebParam - allows you to customize a parameter's name, namespace, direction (IN or OUT), etc
    @WebParam - 파라미터의 이름과 네임스페이스, 방향 (IN or OUT) 등을 사용자 정의 하는 것을 허용한다.
  • @WebResult - allows you to customize the return value of the web service call
    @WebResult - 리턴 값을 사용자 정의 하는 것을 허용한다. 

Data is marshalled from XML to Java and vice versa via the JAXB data-binding.
Data는 XML에서 Java로 반대의 경우도 마찬가지로 JAXB data-binding을 통해 정렬된다. 

Services are publish via one of two means:
서비스들은 두 방법중 하나를 통해 발행된다.

  • The JAX-WS standard Endpoint APIs
    JAX-WS 표준 Endpoints API들
  • CXF's XML configuration format - i.e. <jaxws:endpoint ... />
    CXF의 XML 환경 구성 규격 - 즉 <jaxws:endpoint ... />

More Information: A simple JAX-WS serviceDeveloping a JAX-WS Service (goes into much more depth), Writing a service with Spring
더 많은 정보 :  A simple JAX-WS serviceDeveloping a JAX-WS Service(좀 더 많이 깊이 있는 ), Writing a service with Spring

JAX-WS Annotated Services from WSDL
WSDL로 부터 JAX-WS 어노테이션 된 서비스들

If you have existing WSDLs for your service or wish to write your WSDL first and then generate classes, CXF has many tools to help you do this.
만약 당신이 서비스를 위해 존재하는 WSDL들을 가지고 있으면 또는 당신이 먼저 WSDL을 작성하기를 원하면 class들을 생성하기를 원하면 CXF 는 그것을 하기는 것을 돕기 위한 많은 툴을 가지고 있다.

The WSDL2Java tool will generate a JAX-WS annotated service and server stub from your WSDL. You can run it one of three ways:
WSDL2Java 툴이 WSDL로 부터  JAX-WS 어노테이션 된 서비스와 서버 스텁을 생성하게 될 것이다. 

Note that CXF generally restricts WSDL support to WSI-BP, not the full WSDL 1.1 specification.

CXF는 일반적으로 WSI-BP를 지원하는 WSDL을 제한하고 WSDL 1.1 스팩 전체를 지원 하는 것은 아니다는 것을 참조하라.

There is also a Simple Frontend that allows you to create services without usage of Java annotations, using XML configuration files instead.
XML 환경 구성파일을 대신 사용하여 Java 어노테이션을 사용없이 서비스를 생성하는 것을 허용하는 단순 프론트엔드이다 

JAX-WS Providers

JAX-WS Providers allow you to create services which work at the message level - as opposed to the operation level as with annotated classes. The have a single operation "invoke" which receives either the message payload (i.e. the SOAP Body) or the whole message itself (i.e. the SOAP Envelope).

JAX-WS Provider는 어노테이션된 클래스로서 동작 레벨에 반대하여 메시지 레벨에 작업하는 서비스를 생성하는 것을 허용한다. SOAP Body와 같이 미리 지불된 메시지 이거나 SOAP Envelope 같은 전체 메시지를 수신 받는 단일 동작 "invoke" 를 가진다.

Here's a simple example:
간단한 예제가 있다.

@WebServiceProvider
public class HelloProvider {
  public Source invoke(Source request) {
    return ....;
  }
}

Services are publish via one of two means:
서비스는 두가지 방법 중 하나로 발행된다.

  • The JAX-WS standard Endpoint APIs
  • CXF's XML configuration format - i.e. <jaxws:endpoint ... />

More Information: Developing a JAX-WS Service

Javascript

CXF provides a Javascript module which allows you to build services in Javascript with the Java Rhino library. One advantage of this is that you can use E4X to interact more easily with the XML. For more information see the JavaScript page.
CXF 는 Java Rhino library로 Javascript에서 서비스를 빌드 하는 것을 허용하는 Javascript module 을 제공한다. 이 잇점 중에 하나로 당신은 XML로 쉽게 상호작용하기 위해서 E4X를 사용할 수 있다. 더 많은 정보는  JavaScript page를 보라


+ Recent posts