com.gauce.gsaf
Class GauceAction

java.lang.Object
  extended bycom.gauce.gsaf.GauceAction
All Implemented Interfaces:
Action

public abstract class GauceAction
extends java.lang.Object
implements Action

Action인터페이스를 구현한 클래스이며 action-chain에 등록할 모든 Action은 이 클래스를 상속받아 작성한다. 이 클래스에서는 Action인터페이스에서 제공하지 않는 logging과 관련된 유익한 메소드를 제공하고 있다.

Since:
4.0
Version:
4.0

Method Summary
 void destroy()
          action-chain에 등록된 Action들이 re-loading될 때 기존에 등록되어 있던 Action들에 대해 가우스 서버가 호출한 후 action-chain에서 삭제된다. init메소드와 마찬가지로 action-chain에서 Action이 제거될 때 최종적으로 한 번만 호출된다.
 java.lang.String getInfo()
          가우스 Action의 정보를 반환한다.
 void init()
          Action에 정의된 init메소드는 항상 ActionConfig를 처리해야 하기 때문에 이런 작업 하지 않아도 되도록 편의를 위해 제공하는 메소드이다.
 void init(ActionConfig config)
          가우스 Action이 처음으로 생성되어 action-chain에 등록될 때 최초 한번만 호출되며 ActionConfig를 통해 action-chain에대한 정보를 획득할 수 있다.
abstract  void invoke(HttpGauceRequest request, ActionChain chain)
          클라이언트에서 서비스를 호출할 때 가우스 서버는 gsaf-config.xml에서 해당 서비스의 action-chain에 등록된 Action들은 Request가 해당 서비스에 도달되기 전에 이 메소드를 호출한다.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

init

public void init(ActionConfig config)
          throws javax.servlet.ServletException
가우스 Action이 처음으로 생성되어 action-chain에 등록될 때 최초 한번만 호출되며 ActionConfig를 통해 action-chain에대한 정보를 획득할 수 있다. 이 메소드를 override하는 클래스는 반드시 super.init(config)를 호출해야 한다. GauceAction클래스에서는 편의를 위해 파라미터가 없는 init메소드를 제공하며 필요할 경우 이 메소드를 이용하면 된다.

Specified by:
init in interface Action
Parameters:
config - action-chain에 대한 정보를 획득할 수 있는 ActionConfig, 이 인터페이스를 이용하여 ServletContext도 획득할 수 있으며 따라서 서블릿과 유연한 연동을 제공한다.
Throws:
javax.servlet.ServletException - init메소드에서 서블릿과 관련된 오류가 발생할 경우
Since:
4.0

init

public void init()
          throws javax.servlet.ServletException
Action에 정의된 init메소드는 항상 ActionConfig를 처리해야 하기 때문에 이런 작업 하지 않아도 되도록 편의를 위해 제공하는 메소드이다. 따라서 이 메소드를 override하면 super.init(config)를 수행하지 않아도 된다. 기본 기능은 init(ActionConfig)와 동일하다.

Throws:
javax.servlet.ServletException - 초기화 하는 과정에서 오류가 발생할 경우
Since:
4.0

getInfo

public java.lang.String getInfo()
가우스 Action의 정보를 반환한다.

Specified by:
getInfo in interface Action
Returns:
가우스 Action정보
Since:
4.0

invoke

public abstract void invoke(HttpGauceRequest request,
                            ActionChain chain)
                     throws java.io.IOException,
                            javax.servlet.ServletException
클라이언트에서 서비스를 호출할 때 가우스 서버는 gsaf-config.xml에서 해당 서비스의 action-chain에 등록된 Action들은 Request가 해당 서비스에 도달되기 전에 이 메소드를 호출한다. 따라서 비즈니스 로직에 해당하는 부분을 이 메소드를 통해 구현할 수 있다.
등록된 Action들은 체인을 형성하기 때문에 이 메소드에서 처리가 완료되면 ActionChain을 통해 다음 Action이 동작할 수 있도록 invokeNext메소드를 반드시 호출해야 한다. 만약 이 메소드를 호출하지 않을 경우 Action 체인은 현재의 Action에서 종료가 되며 이 후의 Action은 수행하지 않게된다.

Specified by:
invoke in interface Action
Parameters:
request - 클라이언트(컴포넌트)에서 요청된 Request객체, HttpServletReqeust를 상속받은 인터페이스이기 때문에 HttpServlet에 있는 메소드는 동일한 방법으로 사용할 수 있다.
chain - 현재 Action이 등록되어 있는 Action체인을 나타낸다. 이 메소드에서 처리가 완료되면 다음 Action의 처리를 위해 invokeNext메소드를 호출한다.
Throws:
java.io.IOException - Action에서 업무로직을 처리하는 동안 IO와 관련된 오류가 발생할 경우
javax.servlet.ServletException - 서블릿과 관련된 오류가 발생할 경우
Since:
4.0

destroy

public void destroy()
action-chain에 등록된 Action들이 re-loading될 때 기존에 등록되어 있던 Action들에 대해 가우스 서버가 호출한 후 action-chain에서 삭제된다. init메소드와 마찬가지로 action-chain에서 Action이 제거될 때 최종적으로 한 번만 호출된다. 참고로 Action에서 전역으로 사용하고 있는 리소스를 해제하기 위해 이 메소드를 이용하면 유익하다.

Specified by:
destroy in interface Action
Since:
4.0