import javax.jms.*;
import javax.naming.*;
public class JMSFilterExample {
public static void main(String[] args) {
try {
InitialContext context = new InitialContext();
ConnectionFactory connectionFactory = (ConnectionFactory) context.lookup("jms/ConnectionFactory");
Connection connection = connectionFactory.createConnection();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageConsumer consumer = session.createConsumer(session.createQueue("exampleQueue"),
"property1='value1' and property2 > 100");
consumer.setMessageListener(new MessageListener() {
public void onMessage(Message message) {
try {
if (message instanceof TextMessage) {
TextMessage textMessage = (TextMessage) message;
String text = textMessage.getText();
System.out.println("Received message: " + text);
}
} catch (JMSException e) {
e.printStackTrace();
}
}
});
connection.start();
MessageProducer producer = session.createProducer(session.createQueue("exampleQueue"));
TextMessage message = session.createTextMessage("Hello JMS!");
message.setStringProperty("property1", "value1");
message.setIntProperty("property2", 200);
producer.send(message);
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}