WebSphere Enterprise Service Bus, 버전 6.2.0 운영 체제: AIX, HP-UX, i5/OS, Linux, Solaris, Windows


컴포넌트 호출

모듈이 있는 컴포넌트는 WebSphere® ESB 클러스터의 모든 노드에서 컴포넌트를 사용할 수 있습니다.

시작하기 전에

컴포넌트를 호출하기 전에 컴포넌트가 들어 있는 모듈이 WebSphere ESB에 설치되어 있는지 확인하십시오.

이 태스크 정보

컴포넌트는 컴포넌트 이름을 사용하고 컴포넌트가 예상하는 데이터 유형을 전달하여 WebSphere ESB 클러스터에서 사용할 수 있는 모든 서비스 컴포넌트를 사용할 수 있습니다. 이 환경에서 컴포넌트를 호출하는 것은 필요한 컴포넌트에 대한 참조를 찾아 작성하는 것을 포함합니다.
주: 모듈에 있는 컴포넌트는 같은 모듈에 있는 컴포넌트를 호출할 수 있는데, 이를 모듈 내 호출이라고 합니다. 제공 컴포넌트에 있는 인터페이스를 내보내고 이 인터페이스를 호출 컴포넌트에 가져옴으로써 외부 호출(모듈 간 호출)을 구현합니다.
중요사항: 호출 모듈이 실행 중인 서버와 다른 서버에 있는 컴포넌트를 호출할 때 이들 서버에 추가 구성을 수행해야 합니다. 필요한 구성은 컴포넌트가 비동기 또는 동기로 호출되는지에 따라 다릅니다. 이 경우 Application Server를 구성하는 방법은 관련 타스크에 설명되어 있습니다.
프로시저
  1. 호출 모듈에서 필요한 컴포넌트를 결정하십시오.

    컴포넌트의 인터페이스 이름 및 인터페이스에 필요한 데이터 유형을 참고하십시오.

  2. 데이터 오브젝트를 정의하십시오.

    입력 또는 리턴이 Java™ 클래스일 수는 있지만 서비스 데이터 오브젝트가 최적입니다.

  3. 컴포넌트를 찾으십시오.
    1. ServiceManager 클래스를 사용하여 호출 모듈에 사용 가능한 참조를 얻으십시오.
    2. locateService() 메소드를 사용하여 컴포넌트를 찾으십시오.

      컴포넌트에 따라 인터페이스는 WSDL(Web Service Descriptor Language) 포트 유형 또는 Java 인터페이스가 될 수 있습니다.

  4. 컴포넌트를 동기적으로 호출하십시오.

    Java 인터페이스를 통해 컴포넌트를 호출하거나 invoke() 메소드를 사용하여 컴포넌트를 동적으로 호출할 수 있습니다.

  5. 리턴을 처리하십시오.

    컴포넌트는 예외를 생성할 수 있으므로 클라이언트가 이러한 가능성을 처리할 수 있어야 합니다.

호출 컴포넌트의 예제

다음 예에서 ServiceManager 클래스를 작성합니다.
ServiceManager serviceManager = new ServiceManager();
다음 예제에서는 ServiceManager 클래스를 사용하여 컴포넌트 참조를 포함하는 파일에서 컴포넌트 목록을 가져옵니다.
InputStream myReferences = new FileInputStream("MyReferences.references");
ServiceManager serviceManager = new ServiceManager(myReferences);
다음 코드는 StockQuote Java 인터페이스를 구현하는 컴포넌트를 찾습니다.
StockQuote stockQuote = (StockQuote)serviceManager.locateService("stockQuote");
다음 코드는 Java 또는 WSDL 포트 유형 인터페이스를 구현하는 컴포넌트를 찾습니다. 호출 모듈은 Service 인터페이스를 사용하여 컴포넌트와 상호작용합니다.
팁: 컴포넌트가 Java 인터페이스를 구현하는 경우 컴포넌트는 인터페이스 또는 invoke() 메소드를 통해 호출될 수 있습니다.
Service stockQuote = (Service)serviceManager.locateService("stockQuote");
다음 예에서 다른 컴포넌트를 호출하는 코드인 MyValue를 보여줍니다.
public class MyValueImpl implements MyValue {

	public float myValue throws MyValueException {
		
		ServiceManager serviceManager = new ServiceManager();

	    // variables
	        Customer customer = null;
	        float quote = 0;
	        float value = 0;

	        // invoke
	        CustomerInfo cInfo = 
						(StockQuote)serviceManager.locateService("stockQuote");
	        customer = cInfo.getCustomerInfo(customerID);

	    if (customer.getErrorMsg().equals("")) {

	        // invoke
	    		StockQuote sQuote = 
						(StockQuote)serviceManager.locateService("stockQuote");
	    		Ticket ticket =  sQuote.getQuote(customer.getSymbol());
				// … do something else …
	    		quote =  sQuote.getQuoteResponse(ticket, Service.WAIT);

	        // assign
	        	value = quote * customer.getNumShares();
	    } else {

	        // throw
	       	throw new MyValueException(customer.getErrorMsg()); 
	    }
	    // reply
	        return value;
	}
}

다음에 수행할 작업

호출 모듈 참조와 컴포넌트 인터페이스의 연결을 구성합니다.

task 타스크 주제

이용약관 | 피드백


시간소인 아이콘 마지막 갱신 날짜: 2010년 7월 7일 수요일


http://publib.boulder.ibm.com/infocenter/dmndhelp/v6r2mx/topic//com.ibm.websphere.wesb620.doc/doc/tdev_devclientcomps.html
Copyright IBM Corporation 2005, 2010. All Rights Reserved.
이 Information Center는 Eclipse 기술을 기반으로 합니다(http://www.eclipse.org 웹 사이트 참조).