외부 모듈 및 오브젝트 가져오기 및 액세스

이 예제는 외부 코드(예: Java™ 클래스) 및 외부 오브젝트에서 표현식에 액세스를 가능하게 하는 방법을 보여줍니다. 외부 오브젝트는 어플리케이션과 표현식과의 통신을 위해 작성된 오브젝트입니다.

표현식에서 외부 코드에 액세스하려면 먼저 코드가 표현식에 액세스 가능해야 합니다.

가져오기는 프로그래밍 언어를 사용하여 외부 코드를 표현식에 액세스 가능하게 합니다. <import> 요소에는 규칙 내의 다른 표현식에서 사용하기 위해 가져오기할 외부 모듈(예: Java 클래스)을 지정하는 특수 유형의 표현식이 포함됩니다. 가져오기는 규칙 세트나 규칙 블록 레벨에서 정의할 수 있습니다.

다음 <import> 요소에는 다른 표현식에서 참조할 수 있는 StaticHelper 클래스 및 Queue 클래스를 가져오는 Java 프로그래밍 언어로 작성된 표현식이 포함됩니다.
<import expressionLanguage="java">
	import com.ibm.act.sample.StaticHelper;
	import com.ibm.act.test.Queue;
</import>

import 문에서는 전체 클래스 이름을 사용할 필요는 없지만 컴파일 시간을 줄이려면 전체 이름을 지정해야 합니다. 예를 들어, Java 클래스는 com.ibm.act.* 또는 com.ibm.act.sample.*가 아닌 com.ibm.act.sample.StaticHelper로 지정해야 합니다.

정적 메소드에 액세스

다음 예제는 규칙 응답 조치 내의 표현식이 클래스를 가져온 후에 StaticHelper 클래스를 참조하는 방법을 보여줍니다.
<onDetection>
	<action expressionLanguage="java">
		StaticHelper.pageAdministrator("Too many login attempts for " + act_event.getAttribute("userID"));
	</action>
</onDetection>

오브젝트용 인스턴스 메소드에 액세스

다음 예제는 클래스를 가져온 후 규칙 응답 조치 내의 표현식이 Queue 클래스를 참조하는 방법을 보여줍니다. 이 예제에서 이름이 OutputQueueOne이고 유형이 Queue인 외부 오브젝트를 확보하여 특정 대기열에 이벤트를 배치합니다.
<onDetection>
	<action expressionLanguage="java">
		Queue myQueue = (Queue)act_lib.getExternalContext("OutputQueueOne");
		myQueue.enqueue(act_event);
	</action>
</onDetection>