package gcom.batch.faturamento; import java.util.Collection; import javax.ejb.CreateException; import javax.ejb.EJBException; import javax.ejb.MessageDrivenBean; import javax.ejb.MessageDrivenContext; import javax.jms.Message; import javax.jms.MessageListener; import javax.jms.ObjectMessage; import org.jboss.logging.Logger; import gcom.faturamento.ControladorFaturamentoLocal; import gcom.faturamento.ControladorFaturamentoLocalHome; import gcom.micromedicao.Rota; import gcom.util.ConstantesJNDI; import gcom.util.ServiceLocator; import gcom.util.ServiceLocatorException; import gcom.util.SistemaException; public class BatchGerarTaxaEntregaOutroEnderecoMDB implements MessageDrivenBean, MessageListener { private static final long serialVersionUID = -6273559462969163613L; private static Logger logger = Logger.getLogger(BatchGerarTaxaEntregaOutroEnderecoMDB.class); public BatchGerarTaxaEntregaOutroEnderecoMDB() { super(); } public void setMessageDrivenContext(MessageDrivenContext ctx) throws EJBException { } public void ejbRemove() throws EJBException { } public void onMessage(Message message) { if (message instanceof ObjectMessage) { ObjectMessage objectMessage = (ObjectMessage) message; try { this.getControladorFaturamento().gerarTaxaEntregaDeContaEmOutroEndereco( (Collection<Rota>) ((Object[]) objectMessage.getObject())[0], (Integer) ((Object[]) objectMessage.getObject())[1], (Integer) ((Object[]) objectMessage.getObject())[2]); } catch (Exception e) { logger.error("Erro ao gerar taxa de entrega", e); } } } private ControladorFaturamentoLocal getControladorFaturamento() { try { ServiceLocator locator = ServiceLocator.getInstancia(); ControladorFaturamentoLocalHome localHome = (ControladorFaturamentoLocalHome) locator.getLocalHomePorEmpresa(ConstantesJNDI.CONTROLADOR_FATURAMENTO_SEJB); ControladorFaturamentoLocal local = localHome.create(); return local; } catch (CreateException e) { throw new SistemaException(e); } catch (ServiceLocatorException e) { throw new SistemaException(e); } } public void ejbCreate() { } }