SIP 1.1 어노테이션

SIP 1.1부터 SIP 서블릿 애플리케이션에 어노테이션을 사용할 수 있습니다. 어노테이션을 사용하면 배치 디스크립터를 사용하는 대신 애플리케이션에 직접 데이터를 임베드할 수 있습니다.

SIP 1.1에서 사용 가능한 어노테이션

SIP 1.1에서는 다음 어노테이션을 사용할 수 있습니다.
  • @SipApplication
  • @SipServlet
  • @SipListener
  • @SipApplicationKey
팁: 어노테이션 대신 배치 디스크립터를 사용할 수도 있습니다. 배치 디스크립터는 어노테이션에 설명된 설정을 대체합니다.

@SipApplication 어노테이션

@SipApplication 어노테이션은 애플리케이션에 대한 공통 구성 정보를 정의합니다. 이 어노테이션은 패키지 레벨 어노테이션으로, package-info.java 파일에 있어야 합니다. 패키지 내에 있는 모든 서블릿은 동일한 애플리케이션에 속합니다.
중요사항: 배치 디스크립터를 사용하는지 아니면 어노테이션을 사용하는지 여부에 관계없이, .war 또는 .sar 파일 컨테이너당 하나의 SIP 애플리케이션만 등록할 수 있습니다.

표 1. @SipApplication 특성 및 해당 배치 디스크립터 요소에 대한 맵핑
어노테이션 특성 배치 디스크립터 요소 설명 기본 어노테이션 값
이름 <app-name> SIP 애플리케이션의 이름입니다. 필수 필드
displayName <display-name> 애플리케이션의 표시 이름입니다. 애플리케이션 이름
description <description> 애플리케이션에 대한 설명입니다. 비어 있는 문자열
smallicon <small-icon> 작은 아이콘의 위치가 포함된 경로입니다. 비어 있는 문자열
largeicon <large-icon> 큰 아이콘의 위치가 포함된 경로입니다. 비어 있는 문자열
distributable <destributable> 애플리케이션이 분산 환경에서 작동 가능한지 여부를 나타냅니다. False(부울)
proxyTimeout <proxy-timeout> 모든 프록시 오퍼레이션에 대한 기본 제한시간입니다. 3분(초단위)
sessionTimeout <session-timeout> 모든 애플리케이션 오퍼레이션에 대한 기본 제한시간입니다. 3분(분 단위)
mainServlet <main-servlet> 기본 서블릿으로 지정된 SIP 서블릿을 나타냅니다. 비어 있는 문자열

@SipServlet 어노테이션

@SipServlet 어노테이션은 클래스가 SIP 서블릿임을 나타냅니다.

표 2. @SipServlet 특성 및 해당 배치 디스크립터 요소에 대한 맵핑
어노테이션 특성 배치 디스크립터 요소 설명 기본 어노테이션 값
@SipServletServlet <servlet-class> 클래스가 SIP 서블릿임을 나타냅니다. 어노테이션은 클래스에서 선언됩니다.
name <servlet-name> 서블릿의 이름입니다. ] 어노테이션이 있는 클래스의 축약 이름
applicationName <app-name> 애플리케이션의 이름입니다. 선택 사항으로, 배치 디스크립터에 정의하거나 @SipApplication을 사용하여 정의할 수도 있습니다.
loadOnStartup <load-on-startup> 서블릿 애플리케이션의 시작 순서를 정의합니다. 음수(해당 서블릿을 시작할 때 컨테이너를 선택할 수 있음)

@SipListener 어노테이션

@SipListener 어노테이션은 <listener> 배치 디스크립터 요소 대신 사용됩니다.

@SipListener 어노테이션의 경우 필수 필드는 없지만, 선택적 애플리케이션 이름 및 설명을 사용할 수 있습니다. @SipListener 어노테이션이 있는 클래스는 적어도 하나의 리스너 인터페이스에서 구현되어야 합니다.

@SipApplicationKey 어노테이션

@SipApplicationKey 어노테이션은 수신 요청 및 SipSession을 특정 SipApplicationSession과 연관시키는 메소드를 표시합니다. 이 어노테이션은 세션 키 기반 대상과 함께 사용할 수 있습니다.


피드백