OSGi 서비스 사용

언제든 비동기식으로 서비스를 등록하고 등록 해제할 수 있습니다. 따라서 가능한 짧은 기간 동안 서비스를 호출하십시오. ServiceTracker 클래스를 사용하여 동시에 서비스 가용성을 추적할 수 있습니다.

이 태스크 정보

서비스를 추적하려는 경우 번들 컨텍스트, 원하는 인터페이스, 일치시키려는 특성을 사용하여 ServiceTracker 오브젝트를 작성한 후 트랙커를 열 수 있습니다. 트랙커를 조회하여 최적 일치 항목 또는 모든 일치 항목을 조회할 수 있습니다. 서비스를 사용한 후에 이 서비스를 점유하고 있지 않은지 확인하십시오. 완료되었음을 트랙커에게 알릴 필요는 없습니다. 트랙커가 일치하는 서비스를 내부적으로 캐시하여 서비스가 등록 해제되면 이를 지웁니다. 트랙커 사용이 완료되면 serviceTracker.close() 메소드를 사용하여 이를 닫으십시오.

다음 예제는 ServiceTracker 오브젝트를 사용하여 서비스를 추적하는 방법을 보여줍니다.

package com.ibm.foo.tracker;

import com.ibm.foo.simple.Foo;
import org.osgi.framework.BundleContext;
import org.osgi.util.tracker.ServiceTracker;

/**
 * Simplest use of a ServiceTracker to get a service
 */
public class TrackingFooUser
{

    private ServiceTracker<Foo,Foo> serviceTracker;

    public TrackingFooUser( BundleContext bundleContext )
    {
        serviceTracker = new ServiceTracker<Foo, Foo>( bundleContext, Foo.class, null );
        serviceTracker.open();
    }

    public void doFoo() {
        Foo foo = serviceTracker.getService();
        //use foo
        //no need to return it... just don't use it for long.
    }

    public void shutdown() {
        serviceTracker.close();
    }
}

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



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