This example code describes a JAX-RPC client acting in the publisher registration role, registering a publisher (producer) application with a broker.
This example is based on using the Java™ API for XML-based remote procedure calls (JAX-RPC) APIs with code generated by using the WSDL2Java tool (run against the Notification Broker WSDL generated as a result of creating your WS-Notification service point) and WebSphere® Application Server APIs and SPIs.
// 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;