웹 서비스 글로벌 핸들러 추가

모든 웹 서비스 엔드포인트에 웹 서비스 핸들러를 등록해야 하는 컴포넌트는 Handler 인터페이스를 구현하고 해당 구현을 서비스 레지스트리에 등록해야 합니다.

시작하기 전에

글로벌 핸들러 서비스는 jaxws-2.2, 또는 jaxrs-1.1 또는 jaxrs-2.0 또는 jaxrs-2.0 client에서 제공되므로 server.xml 파일에서 다음 기능 또는 기능 조합을 지정해야 합니다.
  • jaxws-2.2
  • jaxrs-1.1
  • jaxrs-2.0
  • jaxrs-2.0 client
  • jaxws-2.2jaxrs-1.1
  • jaxws-2.2jaxrs-2.0
  • jaxws-2.2jaxrs-2.0 client

이 태스크 정보

Handler SPI는 핸들러가 적용되는 ENGINE_TYPE, FLOW_TYPE 및 클라이언트 측(IS_CLIENT_SIDE) 또는 서버 측(IS_SERVER_SIDE)을 지정하기 위한 여러 특성을 제공합니다.

Handler 인터페이스를 구현하고 해당 구현 클래스를 서비스 레지스트리에 등록해야 합니다.

각 Liberty SPI에 대한 Java API 문서는 ${wlp.install.dir}/dev 디렉토리의 javadoc 서브디렉토리 중 하나에 있는 별도의 압축 파일에서 사용 가능합니다.

핸들러 번들 배치

WebSphere® Application Server Developer Tools for Eclipse를 사용하여 핸들러 번들을 배치할 수 있습니다.

프로시저

  1. 파일 > 새로 작성 > 기타를 클릭한 다음 OSGi를 펼치십시오.
  2. OSGi 번들 프로젝트를 클릭하고 다음을 클릭하십시오. 새 OSGi 번들 프로젝트 창이 열립니다.
  3. 프로젝트 이름으로 MyHandler를 입력하십시오. 대상 런타임 목록에서 WebSphere Application Server Liberty를 선택하십시오. 런타임이 없는 경우에는 새 런타임을 클릭하여 WebSphere(r) Application Server Liberty 런타임을 작성하십시오.
  4. 애플리케이션에 번들 추가 선택란을 지우십시오.
  5. 다음을 두 번 클릭한 다음 OSGi 번들 페이지로 이동하십시오.
  6. OSGi 번들 페이지에서 번들의 라이프사이클을 제어하는 Java 클래스인 활성기 생성을 선택하십시오. 활성기 이름myhandler.Activator로 두고 완료를 클릭하십시오.
  7. > 환경 설정 > 플러그인 개발 > 대상 플랫폼을 클릭하고 SPI를 포함한 WebSphere Application Server Liberty를 선택하십시오.
    참고: 3에서 WebSphere Application Server Liberty 런타임을 추가했는지 확인하십시오.
  8. 적용을 클릭한 후 확인을 클릭하십시오.
  9. MyHandler > BundleContent > META-INF를 펼치고 플러그인 Manifest 편집기를 사용하여 MANIFEST.MF 파일을 여십시오.
  10. MyHander 및 MyActivitor 클래스를 작성하십시오.
    ...
    import com.ibm.wsspi.webservices.handler.Handler;
    ...
    
    public class MyHandler implements Handler {
        ...
        public void handleFault(GlobalHandlerMessageContext arg0) {
            ...
        }
        public void handleMessage(GlobalHandlerMessageContext msgctxt) throws Exception {
    
            if (msgctxt.getFlowType().equalsIgnoreCase(HandlerConstants.FLOW_TYPE_OUT)) {
                }
            ...
         }
         ....
    }
    public class MyActivator implements BundleActivator {
        ...
        public void start(BundleContext context) throws Exception {
    
              final Hashtable<String, Object> handlerProps = new Hashtable<String, Object>();
               handlerProps.put(HandlerConstants.ENGINE_TYPE, HandlerConstants.ENGINE_TYPE_JAXWS);
               handlerProps.put(HandlerConstants.FLOW_TYPE, HandlerConstants.FLOW_TYPE_IN);
               handlerProps.put(HandlerConstants.IS_CLIENT_SIDE, true);
               handlerProps.put(HandlerConstants.IS_SERVER_SIDE, true);
               handlerProps.put(org.osgi.framework.Constants.SERVICE_RANKING, 3);
               MyHandler myHandler = new MyHandler();
               context.registerService(Handler.class, myHandler, handlerProps);
               ...
            }
            ...
       }
  11. 파일 > 새로 작성 > 기타를 클릭한 다음 OSGi를 펼치십시오.
  12. Liberty 기능 프로젝트를 클릭한 후 다음을 클릭하십시오. Liberty 기능 프로젝트 창이 열립니다.
  13. 프로젝트 이름으로 MyHandlerFeature를 지정하십시오.
  14. 대상 런타임 목록에서 WebSphere Application Server Liberty를 선택하고 다음을 클릭하십시오. OSGi 번들 선택 페이지가 열립니다.
  15. OSGi 번들 선택 페이지에서 MyHandler 1.0.0포함된 번들로 선택하고 완료를 클릭하십시오.
  16. MyHandler 프로젝트에서 Manifest:MyHandler를 수정하십시오. MANIFEST.MF 탭을 클릭하고 com.ibm.wsspi.webservices.handlerImport-pacakge 요소에 추가하십시오.
  17. MyHandlerFeature 프로젝트를 마우스 오른쪽 단추로 클릭하고 기능 설치를 클릭하여 기능을 Liberty 런타임에 설치하십시오.
  18. MyHandlerFeature를 사용하도록 server.xml 파일을 편집하십시오.
    <featureManager> ......
    		<feature>jsp-2.2</feature>
    <feature>jaxws-2.2</feature> // you can also use one of the following feature or feature combinations: jaxrs-1.1, jaxrs-2.0, jaxrsClient-2.0, 
    jaxws-2.2 and jaxrs-1.1, jaxws-2.2 and jaxrs-2.0, jaxws-2.2 and jaxrsClient-2.0
    <feature>usr:MyHandlerFeature</feature> ......
    </featureManager>

주제의 유형을 표시하는 아이콘 태스크 주제



시간소인 아이콘 마지막 업데이트 날짜: Monday, 5 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_web_services_global_handlers
파일 이름: twlp_web_services_global_handlers.html