kr.co.hit.live.aop.target
Class EJBDelegatorTargetProxy

java.lang.Object
  extended by kr.co.hit.live.aop.target.AbstractTargetProxy
      extended by kr.co.hit.live.aop.target.EJBDelegatorTargetProxy
All Implemented Interfaces:
InvocationHandler, TargetProxy

public class EJBDelegatorTargetProxy
extends AbstractTargetProxy

EJB Commander를 사용하여 원격에 있는 POJO를 호출하는 TargetProxy 구현 클래스이다. POJO 기반 서비스의 경우 분산환경을 지원하지 못하므로 이를 EJB Commander를 통하여 원격의 POJO를 호출할 수 있도록 제공되는 기능이다.

원격 POJO를 호출하기 위하여 아래와 같이 서비스 설정 파일에 등록한다.

  <service name="SystemMsgMgt"
           interface="${package}.systemmsgmgt.SystemMsgMgt"
           class="kr.co.hit.live.aop.target.EJBDelegatorTargetProxy"
           interceptor="system.proxy"
           singleton="true">
       <property name="targetName" value="systemmsgmgr.SystemMsgMgt"/>
       <property name="jndiProvider" value="cmc_his016"/>
  </service>
 
위의 설정에서 SystemMsgMgt 서비스를 원격 서버의 systemmsgmgr.SystemmsgMgt 서비스를 호출하도록 설정되었으며, 이때 원격 서버는 jndiProvider를 통하여 지정되었다. jndiProvider로 지정되는 명칭은 ejb-lookup.xml 파일에 <jndv-svc-link>로 정의되어 있어야한다.

Author:
kimhd

Field Summary
static String DEFAULT_EJB_COMMAND_JNDI_NAME
           
static String DEFAULT_EJB_COMMAND_JNDI_PROPERTY
           
static String EJB_COMMAND_METHOD_NAME
           
 
Fields inherited from class kr.co.hit.live.aop.target.AbstractTargetProxy
targetInterface
 
Constructor Summary
EJBDelegatorTargetProxy()
           
 
Method Summary
 Object invoke(Method method, Object[] args)
          원격의 EJB Commander로 POJO 메소드 호출을 요청한다.
 void setCommanderJndi(String jndiName)
          호출시 사용할 EJB Commander의 JNDI 명을 지정한다.
 void setJndiProvider(String jndiSvcName)
          호출할 POJO 서비스를 제공하는 서버의 JNDI 명을 설정한다.
 void setTargetName(String name)
          호출할 POJO 서비스 객체의 서비스 명을 설정한다.
 
Methods inherited from class kr.co.hit.live.aop.target.AbstractTargetProxy
getInterface, getServiceContainer, invoke, setInterface, setServiceContainer
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_EJB_COMMAND_JNDI_PROPERTY

public static final String DEFAULT_EJB_COMMAND_JNDI_PROPERTY
See Also:
Constant Field Values

DEFAULT_EJB_COMMAND_JNDI_NAME

public static final String DEFAULT_EJB_COMMAND_JNDI_NAME
See Also:
Constant Field Values

EJB_COMMAND_METHOD_NAME

public static final String EJB_COMMAND_METHOD_NAME
See Also:
Constant Field Values
Constructor Detail

EJBDelegatorTargetProxy

public EJBDelegatorTargetProxy()
Method Detail

setCommanderJndi

public void setCommanderJndi(String jndiName)
호출시 사용할 EJB Commander의 JNDI 명을 지정한다. 디폴트로 지정된 이름이 아닌 다른 이름의 EJB Commander를 사용하고자 할 경우 명시적으로 설정한다.

Parameters:
jndiName -

setTargetName

public void setTargetName(String name)
호출할 POJO 서비스 객체의 서비스 명을 설정한다.

Parameters:
name -

setJndiProvider

public void setJndiProvider(String jndiSvcName)
호출할 POJO 서비스를 제공하는 서버의 JNDI 명을 설정한다.

Parameters:
jndiSvcName -

invoke

public Object invoke(Method method,
                     Object[] args)
              throws Throwable
원격의 EJB Commander로 POJO 메소드 호출을 요청한다.

Specified by:
invoke in class AbstractTargetProxy
Returns:
메소드 호출 반환 값
Throws:
Throwable


Copyright © 2014. All Rights Reserved.