Passo 1: Contruindo o EJB Message-DrivenCriar um Message-Driven que escute o tópico topic/wdkDocument: Segue fonte exemplo: Bloco de código |
---|
language | java |
---|
theme | Eclipse |
---|
firstline | 1 |
---|
title | TxtMessageBean.java |
---|
linenumbers | true |
---|
| package com.fluig.conv;
import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.jms.Message;
import javax.jms.MessageListener;
@MessageDriven(name = "test/TxtConverter", activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Topic"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "topic/wdkDocument")
})
public class TxtMessageBean implements MessageListener {
@Override
public void onMessage(Message message) {
try {
String event = message.getStringProperty("event");
if (event != null && event.equals("EXTERNALCONVERTION")) {
String doc = message.getStringProperty("documentpath");
if (doc != null && doc.endsWith(".txt")) {
ProcessBuilder pb = new ProcessBuilder("txt2pdf.exe", doc, doc + ".pdf", "-lpp40");
pb.start();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
} |
O Message-Driven acima configura a propriedade destinationType para "javax.jms.Topic" para indicar que irá escutar um tópico JMS, e a propriedade destination para "topic/wdkDocument" para indicar qual tópico será ouvido. O tópico "topic/wdkDocument" se refere à onde os eventos de publicação de documentos são enviados. Ao receber uma mensagem, deverá verificar o tipo de evento publicado através da StringProperty "event", se o valor dessa propriedade for "EXTERNALCONVERTION", significa que o Fluig está indicando que é o momento da conversão customizada ser executada. Para conhecer o caminho do documento, verifique a StringProperty "documentpath". Após isto, verifica-se a extensão do arquivo para validar se este é o conversor correto, pois pode haver mais de um para extensões diferentes. Validado os parâmetros, pode-se então chamar o programa conversor, que no caso do exemplo, foi usado o freeware txt2pdf . O documento destino deverá possuir o mesmo nome acrescido da extensão .pdf e este deverá ficar no mesmo diretório. Ex: doc.txt convertido: doc.txt.pdf Lembramos que o documento origem não poderá ser modificado, com a penalidade de o Fluig indicar que ele foi alterado externamente (validação de CRC). Este Message-Driven deverá ser empacotado e implantado no servidor de aplicações conforme as especificações do Java™ EE. |