Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- TopicSubscriber initializing...
- Jul 12, 2018 2:27:56 PM com.solacesystems.jcsmp.protocol.impl.TcpClientChannel call
- INFO: Connecting to host 'blocked out' (host 1 of 1, smfclient 2, attempt 1 of 1, this_host_attempt: 1 of 1)
- Jul 12, 2018 2:28:17 PM com.solacesystems.jcsmp.protocol.impl.TcpClientChannel call
- INFO: Connection attempt failed to host 'blocked out' ConnectException com.solacesystems.jcsmp.JCSMPTransportException: ('blocked out') - Error communicating with the router. cause: java.net.ConnectException: Connection timed out: no further information ((Client name: 'blocked out' Local port: -1 Remote addr: 'blocked out') - )
- Jul 12, 2018 2:28:20 PM com.solacesystems.jcsmp.protocol.impl.TcpClientChannel close
- INFO: Channel Closed (smfclient 2)
- Exception in thread "main" com.solacesystems.jcsmp.JCSMPTransportException" (Client name: 'blocked out' Local port: -1 Remote addr: 'blocked out') - Error communicating with the router.
- import java.util.concurrent.CountDownLatch;
- import com.solacesystems.jcsmp.BytesXMLMessage;
- import com.solacesystems.jcsmp.JCSMPException;
- import com.solacesystems.jcsmp.JCSMPFactory;
- import com.solacesystems.jcsmp.JCSMPProperties;
- import com.solacesystems.jcsmp.JCSMPSession;
- import com.solacesystems.jcsmp.TextMessage;
- import com.solacesystems.jcsmp.Topic;
- import com.solacesystems.jcsmp.XMLMessageConsumer;
- import com.solacesystems.jcsmp.XMLMessageListener;
- public class TopicSubscriber {
- public static void main(String... args) throws JCSMPException {
- // Check command line arguments
- if (args.length != 3 || args[1].split("@").length != 2) {
- System.out.println("Usage: TopicSubscriber <host:port> <client-username@message-vpn> <client-password>");
- System.out.println();
- System.exit(-1);
- }
- if (args[1].split("@")[0].isEmpty()) {
- System.out.println("No client-username entered");
- System.out.println();
- System.exit(-1);
- }
- if (args[1].split("@")[1].isEmpty()) {
- System.out.println("No message-vpn entered");
- System.out.println();
- System.exit(-1);
- }
- System.out.println("TopicSubscriber initializing...");
- final JCSMPProperties properties = new JCSMPProperties();
- properties.setProperty(JCSMPProperties.HOST, args[0]); // host:port
- properties.setProperty(JCSMPProperties.USERNAME, args[1].split("@")[0]); // client-username
- properties.setProperty(JCSMPProperties.PASSWORD, args[2]); // client-password
- properties.setProperty(JCSMPProperties.VPN_NAME, args[1].split("@")[1]); // message-vpn
- final Topic topic = JCSMPFactory.onlyInstance().createTopic("tutorial/topic");
- final JCSMPSession session = JCSMPFactory.onlyInstance().createSession(properties);
- session.connect();
- final CountDownLatch latch = new CountDownLatch(1); // used for
- // synchronizing b/w threads
- /** Anonymous inner-class for MessageListener
- * This demonstrates the async threaded message callback */
- final XMLMessageConsumer cons = session.getMessageConsumer(new XMLMessageListener() {
- @Override
- public void onReceive(BytesXMLMessage msg) {
- if (msg instanceof TextMessage) {
- System.out.printf("TextMessage received: '%s'%n",
- ((TextMessage) msg).getText());
- } else {
- System.out.println("Message received.");
- }
- System.out.printf("Message Dump:%n%s%n", msg.dump());
- latch.countDown(); // unblock main thread
- }
- @Override
- public void onException(JCSMPException e) {
- System.out.printf("Consumer received exception: %s%n", e);
- latch.countDown(); // unblock main thread
- }
- });
- session.addSubscription(topic);
- System.out.println("Connected. Awaiting message...");
- cons.start();
- // Consume-only session is now hooked up and running!
- try {
- latch.await(); // block here until message received, and latch will flip
- } catch (InterruptedException e) {
- System.out.println("I was awoken while waiting");
- }
- // Close consumer
- cons.close();
- System.out.println("Exiting.");
- session.closeSession();
- }
- }
Add Comment
Please, Sign In to add comment