dimanche, septembre 03, 2006

Using JMS with jBPM

ObjectMessage msg = session.createObjectMessage();
HashMap map = new HashMap();
map.put("long99", new Long(99));
msg.setObject(map);
msg.setStringProperty(JmsMessageConstants.PROPERTY_CMD, Command.CMD_START_PROCESS);
msg.setStringProperty(JmsMessageConstants.PROPERTY_PROCESSNAME, "websale");
msg.setIntProperty(JmsMessageConstants.PROPERTY_PROCESSVERSION, 1);
msg.setBooleanProperty(JmsMessageConstants.PROPERTY_RETURNCONTEXT, false);
msg.setStringProperty(JmsMessageConstants.PROPERTY_ACTOR, "bert");
// Create acknowledgement temporary queue
TemporaryQueue replyQueue = session.createTemporaryQueue();
msg.setJMSReplyTo(replyQueue);
sender.send(msg);
sender.close();
session.commit();
QueueReceiver receiver = session.createReceiver(replyQueue);
ObjectMessage replyMessage = (ObjectMessage) receiver.receive();
CommandAck ack = (CommandAck) replyMessage.getObject();
Object o = ack.getResult();
System.out.println(o instanceof CommandFaultResponse ? "failure" : "success");
Long id = (Long) o;
System.out.println("New process instance id: " + id);

0 commentaires: