예: WS-Notification 공개자 등록

제공된 코드 추출 예를 기반으로 이용자 애플리케이션을 브로커에 등록할 수 있는 등록자 클라이언트 애플리케이션에 대한 코드를 작성하려면 이 태스크를 사용합니다.

이 태스크 정보

이 예제는 XML 기반 원격 프로시저 호출(JAX-RPC) API용 Java™ API를 WS-Notification 서비스 지점 작성의 결과로 생성된 알림 브로커 WSDL에 대해 실행되는 WSDL2Java 도구를 사용하여 생성된 코드와 WebSphere® Application Server API 및 SPI와 함께 사용하는 것을 기반으로 합니다.

WebSphere Application Server에서는 WS-Notification 서비스의 두 가지 구현(버전 6.1 및 버전 7.0)이 있습니다. 이 JAX-RPC 예제는 버전 6.1 또는 버전 7.0 WS-Notification 서비스 지점과 상호작용할 수 있습니다. 그러나 정책 세트가 있는 WS-Notification을 사용하려면(예를 들어, WS-ReliableMessaging이 있는 컴포지션을 사용하려면), WS-Notification 애플리케이션이 XML 기반 웹 서비스(JAX-WS) 프로그래밍 모델용 Java API를 사용하도록 인코딩되어야 하며 버전 7.0 WS-Notification 서비스 지점과 상호작용해야 합니다. JAX-WS 클라이언트 애플리케이션 프로그래밍에 생소하면 다음 주제를 참조하십시오.

이용자 애플리케이션을 브로커에 등록할 수 있는 공개자 클라이언트 애플리케이션의 코드를 작성하려면 다음 단계를 완료하십시오. 자세한 정보는 코드 추출 예를 참조하십시오.

프로시저

  1. JAX-RPC 서비스를 찾아보십시오. JNDI 이름은 웹 서비스 클라이언트 구현에 따라 다릅니다.
  2. 조작을 호출하려는 포트의 스텁을 가져오십시오.
  3. 등록되는 공개자(생성자)에 대한 참조를 작성하십시오. 생성자 웹 서비스의 주소가 포함됩니다.
  4. 생성자가 메시지를 공개하는 토픽을 설명하는 토픽 표현식의 목록(배열)을 작성하십시오.
  5. 공개자가 수요 기반 공개를 사용하려는 것으로 표시하십시오.
  6. 등록의 초기 종료 시간에 대한 값을 설정하십시오. 예를 들어, 향후 1년의 값을 값을 설정할 수 있습니다.
  7. 브로커에서 리턴된 여러 값을 보유할 홀더를 작성하십시오.
    • PublisherRegistrationReference는 등록의 수명 관리에 사용할 엔드포인트 참조를 정의합니다.
    • ConsumerReference는 후속 메시지 공개에 사용할 엔드포인트 참조를 정의합니다.
  8. 스텁에 대한 연관된 메소드를 호출하여 RegisterPublisher 조작을 호출하십시오.
  9. PublisherRegistrationReference를 검색하십시오.
  10. ConsumerReference를 검색하십시오.

다음 코드 예는 공개자(생성자) 애플리케이션을 브로커에 등록하여 공개자 등록 역할을 수행하는 JAX-RPC 클라이언트를 나타냅니다.

// Look up the JAX-RPC service. The JNDI name is specific to your web services client implementation
InitialContext context = new InitialContext();
javax.xml.rpc.Service service = (javax.xml.rpc.Service) context.lookup(
    "java:comp/env/services/NotificationBroker");

// Get a stub for the port on which you want to invoke operations
NotificationBroker stub = (NotificationBroker) service.getPort(NotificationBroker.class);

// Create a reference for the publisher (producer) being registered. This contains the address of the
// producer web service.
EndpointReference publisherEPR = 
    EndpointReferenceManager.createEndpointReference(new URI("http://myserver.mysom.com:9080/Producer"));

// Create a list (array) of topic expressions to describe the topics to which the producer publishes
// messages. For this example you add one topic
Map prefixMappings = new HashMap();
prefixMappings.put("abc", "uri:mytopicns");
TopicExpression topic = 
    new TopicExpression(TopicExpression.SIMPLE_TOPIC_EXPRESSION, "abc:xyz", prefixMappings);                
TopicExpression[] topics = new TopicExpression[] {topic};

// Indicate that you do not want the publisher to use demand based publishing
Boolean demand = Boolean.FALSE;

// Set a value for the initial termination time of the registration. For example, set a value 1 year in
// the future
Calendar initialTerminationTime = Calendar.getInstance();
initialTerminationTime.add(Calendar.YEAR, 1);

// Create holders to hold the multiple values returned from the broker:
// PublisherRegistrationReference: An endpoint reference for use in lifetime management of
// the registration
EndpointReferenceTypeHolder pubRegMgrEPR = new EndpointReferenceTypeHolder();

// ConsumerReference: An endpoint reference for use in subsequent publishing of messages
EndpointReferenceTypeHolder consEPR = new EndpointReferenceTypeHolder();

// Invoke the RegisterPublisher operation by calling the associated method on the stub
stub.registerPublisher(publisherEPR, topics, demand, initialTerminationTime, null, pubRegMgrEPR, consEPR);

// Retrieve the PublisherRegistrationReference
EndpointReference registrationEPR = pubRegMgrEPR.value;

// Retrieve the ConsumerReference
EndpointReference consumerReferenceEPR = consEPR.value;

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



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