웹 서비스 메타데이터 어노테이션(JSR 181)

JSR 181 스펙에서 어노테이션을 사용하여 웹 서비스 구현 클래스 또는 웹 서비스 인터페이스를 어노테이션 처리할 수 있습니다. 그런 다음, 마법사를 사용하거나 애플리케이션을 서버에 공개하여 웹 서비스를 생성할 수 있습니다.

참고: JSR 181 표준의 각 어노테이션을 포함하는 Java™ 클래스 이름은 javax.jws.xxx이며 여기서 xxx는 '@' 문자 다음에 오는 어노테이션 이름입니다. 예를 들어, @WebService에 해당하는 Java 클래스 이름은 javax.jws.webservice입니다.
이름: 설명: 특성: 정의:
@WebService 이 어노테이션은 Java 클래스 또는 SEI(service endpoint interface)를 웹 서비스 인터페이스 구현으로 표시합니다.

세 개 어노테이션의 특성만 JavaBeans 엔드포인트의 서비스 엔드포인트 구현 클래스와 사용 가능합니다. 이 세 특성은 serviceName, portName, endpointInterface입니다.

어노테이션이 endpointInterface 속성을 통해 SEI를 참조하면 SEI에는 @WebService 어노테이션도 있어야 합니다.

기본적으로, @WebService 어노테이션을 지정하는 클래스의 전체 공용 메소드는 웹 서비스에 표시됩니다.

  • 어노테이션 대상: 유형
  • 특성:
    - name
    wsdl:portType 이름입니다. name 특성은 SEI 또는 Java 구현 클래스에 맵핑됩니다. 기본값은 Java 인터페이스 또는 클래스의 비정규화 이름입니다. (문자열)
    - targetNamespace
    웹 서비스에서 생성된 WSDL 및 XML 요소의 XML 네임스페이스를 지정합니다.
    • @WebService.targetNamespace 어노테이션이 서비스 엔드포인트 인터페이스에 있는 경우 targetNamespace가 wsdl:portType(및 연관 XML 요소)의 네임스페이스에 사용됩니다.
    • @WebService.targetNamespace 어노테이션이 (endpointInterface 어노테이션 요소를 통해) 서비스 엔드포인트 인터페이스를 참조하지 않는 서비스 구현 Bean에 있는 경우, targetNamespace가 wsdl:portType 및 wsdl:service(및 연관 XML 요소) 둘 다에 사용됩니다.
    • @WebService.targetNamespace 어노테이션이 (endpointInterface 어노테이션 요소를 통해) 서비스 엔드포인트 인터페이스를 참조하는 서비스 구현 Bean에 있는 경우, targetNamespace가 wsdl:service(및 연관 XML 요소)에만 사용됩니다.

    기본값은 웹 서비스를 포함하는 패키지 이름에서 맵핑된 네임스페이스입니다. (문자열)

    - serviceName
    웹 서비스의 서비스 이름(wsdl:service)을 지정합니다. 이 특성은 엔드포인트 인터페이스에 허용되지 않습니다. 기본값은 Java 클래스 + Service의 단순 이름입니다. (문자열)
    - endpointInterface
    서비스의 추상 웹 서비스 계약을 정의하는 SEI(Service Endpoint Interface)의 완전한 이름을 지정합니다. 지정한 경우 서비스 엔드포인트 인터페이스가 추상 WSDL 계약을 판별하는 데 사용됩니다. (문자열)
    - portName
    wsdl:portName입니다. portName 특성은 엔드포인트 포트 이름입니다. 기본값은 WebService.name + Port입니다. (문자열)
    - wsdlLocation
    웹 서비스를 정의하는 WSDL 문서의 웹 주소를 지정합니다. 웹 주소는 상대적 또는 절대적입니다. (문자열)
@Retention(value = RetentionPolicy.RUNTIME)
@Target({TYPE})
public @interface WebService{
	String name() default “”;
	String targetNamespace() default “”;
	String serviceName() default “”';
	String wsdlLocation() default “”;
	String endpointInterface() default “”;
	String portName() default “”;
};
@WebMethod 이 어노테이션은 웹 서비스 오퍼레이션인 메소드를 표시합니다.

이 어노테이션을 클라이언트나 서버 SEI(Service Endpoint Interface) 또는 JavaBeans 엔드포인트의 서비스 엔드포인트 구현 클래스에서 공용 메소드에 적용할 수 있습니다.

@WebMethod 어노테이션은 @WebService 어노테이션이 있는 클래스에서만 지원됩니다.

  • 어노테이션 대상: 메소드
  • 특성:
    - operationName
    이 메소드에 일치하는 wsdl:operation 이름을 지정합니다. 기본값은 Java 메소드 이름입니다. (문자열)
    - action
    이 오퍼레이션의 조치를 정의합니다. SOAP 바인딩의 경우 이 값은 SOAPAction 헤더 값을 판별합니다. (문자열)
    - exclude
    웹 서비스에서 메소드를 제외할지 여부를 지정합니다. 이 특성은 구현 클래스와만 같이 사용할 수 있습니다. 상속된 메소드가 이 웹 서비스의 일부로 노출되는 것을 중지하는 데 사용됩니다. 이 요소가 지정된 경우, @WebMethod에 다른 요소를 지정하면 안 됩니다. 이 특성은 엔드포인트 인터페이스에 허용되지 않습니다.

    기본값은 false입니다. (부울)

@Retention(value = RetentionPolicy.RUNTIME)
@Target({TYPE})
public @interface WebMethod{
	String operationName() default “”;
	String action() default “”;
	boolean exclude() default false;
};
@Oneway 이 어노테이션은 웹 서비스의 단방향 오퍼레이션으로 메소드를 표시합니다. 여기에는 입력 메시지가 포함되지만 출력 메시지는 포함되지 않습니다. 이 어노테이션은 리턴값이 없는 메소드에서만 사용할 수 있습니다.

이 어노테이션을 클라이언트나 서버 SEI(Service Endpoint Interface) 또는 JavaBeans 엔드포인트의 서비스 엔드포인트 구현 클래스에서 공용 메소드에 적용할 수 있습니다.

  • 어노테이션 대상: 메소드
  • OneWay 어노테이션에는 특성이 없습니다.
@Retention(value = RetentionPolicy.RUNTIME)
@Target({TYPE})
public @interface OneWay{
};
@WebParam 이 어노테이션은 개별적인 매개변수에서 웹 서비스 메시지 파트와 XML 요소로의 맵핑을 사용자 정의합니다.

이 어노테이션을 클라이언트나 서버 SEI(Service Endpoint Interface) 또는 JavaBeans 엔드포인트의 서비스 엔드포인트 구현 클래스에서 공용 메소드에 적용할 수 있습니다.

  • 어노테이션 대상: 매개변수
  • 특성:
    - name
    오퍼레이션이 원격 프로시저 호출(RPC) 스타일이고 partName 속성이 지정되지 않은 경우 이는 매개변수를 나타내는 wsdl:part 속성 이름입니다. 오퍼레이션이 문서 스타일이거나 매개변수가 헤더에 맵핑되는 경우 name은 매개변수를 나타내는 XML 요소의 로컬 이름입니다. 오퍼레이션이 문서 스타일이고 매개변수 스타일은 BARE이며 모드가 OUT 또는 INOUT인 경우에는 이 속성이 필수입니다. partName 속성을 지정하는 경우 name 속성은 무시됩니다. (문자열)
    - partName
    이 매개변수를 나타내는 wsdl:part 속성 이름을 정의합니다. 오퍼레이션이 RPC 스타일이거나 오퍼레이션이 문서 스타일이고 매개변수 스타일이 BARE인 경우에만 이를 사용하십시오. (문자열)
    - targetNamespace
    매개변수에 대한 XML 요소의 XML 네임스페이스를 지정합니다. 속성이 XML 요소에 맵핑되는 경우에 문서 바인딩에만 적용됩니다. 웹 서비스에 대한 기본값은 targetNamespace입니다. (문자열)
    - mode
    값은 이 메소드에 대한 매개변수 플로우 방향을 나타냅니다. 올바른 값은 IN, INOUT, OUT입니다. (문자열)
    - header
    매개변수가 메시지 본문이 아닌 메시지 헤더에 있는지를 지정합니다. 기본값은 false입니다. (부울)
@Retention(value = RetentionPolicy.RUNTIME)
@Target({PARAMETER})
public @interface WebParam{
	public enum Mode{
		IN,
		OUT,
		INOUT
	};
	String name() default “”;
	String partName() default "";
	String targetNamespace() default “”;
	Mode mode() default Mode.IN
	boolean header() default false;
};
@WebResult 이 어노테이션은 리턴값이 WSDL 파트 또는 XML 요소에 맵핑되는 방법을 사용자 정의합니다.

이 어노테이션을 클라이언트나 서버 SEI(Service Endpoint Interface) 또는 JavaBeans 엔드포인트의 서비스 엔드포인트 구현 클래스에서 공용 메소드에 적용할 수 있습니다.

  • 어노테이션 대상: 메소드
  • 특성:
    - name
    리턴값 이름이 WSDL 파일에 나열되고 연결 중에 메시지에서 찾을 수 있기 때문에 리턴값 이름을 지정합니다. RPC 바인딩의 경우 리턴값을 나타내는 wsdl:part 속성 이름입니다. 문서 바인딩의 경우 name 매개변수는 리턴값을 나타내는 XML 요소의 로컬 이름입니다. 기본값은 RPC 및 DOCUMENT/WRAPPED 바인딩에 대한 return입니다. 기본값은 DOCUMENT/BARE 바인딩에 대해 메소드 이름 + Response입니다. (문자열)
    - targetNamespace
    리턴값의 XML 네임스페이스를 지정합니다. 이 어노테이션은 리턴값이 XML 요소에 맵핑될 때 문서 바인딩에만 사용하십시오. 기본값은 웹 서비스의 targetNamespace입니다. (문자열)
    - header
    결과가 헤더에서 제공되는지 여부를 지정합니다. 기본값은 false입니다. (문자열)
    - partName
    RPC 또는 DOCUMENT/BARE 오퍼레이션의 결과에 대한 파트 이름을 지정합니다. 기본값은 @WebResult.name입니다. (부울)
@Retention(value = RetentionPolicy.RUNTIME)
@Target({METHOD})
public @interface WebResult{
	String name() default “return”;
	String targetNamespace default() “”;
	boolean header() default false;	
	String partName() default "";
};
@HandlerChain 이 어노테이션은 웹 서비스를 외부에 정의된 핸들러 체인에 연관시킵니다. 핸들러 구성이 여러 웹 서비스에서 공유되어야 하고 애플리케이션 소스에서 임베드하는 핸들러 구성이 비효율적인 경우에 이 어노테이션을 사용할 수 있습니다.

이 어노테이션을 클라이언트나 서버 SEI(Service Endpoint Interface) 또는 JavaBeans 엔드포인트의 서비스 엔드포인트 구현 클래스에 적용하십시오.

  • 어노테이션 대상: 유형
  • 특성:
    - file
    핸들러 체인 파일 위치를 지정합니다. 파일 위치는 외부 양식으로 절대 java.net.URL 또는 소스나 클래스 파일의 상대 경로입니다. (문자열)
    - name
    구성 파일의 핸들러 체인 이름을 지정합니다. (문자열)
@Retention(value = RetentionPolicy.RUNTIME)
@Target({TYPE})
public @interface HandlerChain{
	String file();
	String name();
};
@SOAPBinding 이 어노테이션은 웹 서비스에서 SOAP 메시지 프로토콜로의 맵핑을 지정합니다.

이 어노테이션을 클라이언트나 서버 SEI(Service Endpoint Interface) 또는 Java Bean 엔드포인트의 서비스 엔드포인트 구현 클래스에서 유형이나 공용 메소드에 적용할 수 있습니다.

method-level 어노테이션은 지정 가능한 내용으로 제한됩니다. style 특성에 DOCUMENT 값이 있는 경우에만 어노테이션을 사용하십시오. method-level 어노테이션을 지정하지 않은 경우 유형에서 @SOAPBinding 동작이 사용됩니다.

  • 어노테이션 대상: 유형 또는 메소드
  • 특성:
    - style
    웹 서비스와 송수신하는 메시지의 인코딩 스타일을 정의합니다. 올바른 값은 DOCUMENTRPC입니다. 기본값은 DOCUMENT입니다. (문자열)
    - use
    웹 서비스와 송수신하는 메시지에 사용된 인코딩을 정의합니다. 기본값은 LITERAL입니다. ENCODED는 지원되는 값이 아닙니다. (문자열)
    - parameterStyle
    메소드 매개변수가 전체 메시지 본문을 나타내는지 또는 오퍼레이션 후에 이름이 지정된 최상위 레벨 요소 내에서 랩핑되는 요소인지를 판별합니다. 올바른 값은 WRAPPED 또는 BARE입니다. DOCUMENT 스타일 바인딩에서 BARE 값을 사용할 수 있습니다. 기본값은 WRAPPED입니다. (문자열)
@Retention(value = RetentionPolicy.RUNTIME)
@Target({TYPE})
public @interface SOAPBinding{
	public enum Style{
		DOCUMENT,
		RPC
	};
	public enum Use{
		LITERAL,
	};
	public enum ParameterStyle{
		BARE,
		WRAPPED
	};
	Style style() default Style.DOCUMENT
	Use use() default Use.LITERAL
	ParameterStyle parameterStyle() default ParameterStyle.WRAPPED;
};
주제 유형을 표시하는 아이콘 참조 주제
Information Center의 이용 약관 | 피드백

시간소인 아이콘 마지막 업데이트 날짜: 2014-05-22

파일 이름: rwsandoc003.html