⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jmsserviceengine.java

📁 Sequoia ERP是一个真正的企业级开源ERP解决方案。它提供的模块包括:电子商务应用(e-commerce), POS系统(point of sales),知识管理,存货与仓库管理
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        } catch (JMSException je) {            throw new GenericServiceException("JMS Internal Error.", je);        }        return ServiceUtil.returnSuccess();    }    protected Map runQueue(ModelService modelService, Map context, Element server) throws GenericServiceException {        String serverName = server.getAttribute("jndi-server-name");        String jndiName = server.getAttribute("jndi-name");        String queueName = server.getAttribute("topic-queue");        String userName = server.getAttribute("username");        String password = server.getAttribute("password");        String clientId = server.getAttribute("client-id");        InitialContext jndi = null;        QueueConnectionFactory factory = null;        QueueConnection con = null;                try {            jndi = JNDIContextFactory.getInitialContext(serverName);            factory = (QueueConnectionFactory) jndi.lookup(jndiName);          } catch (GeneralException ge){            throw new GenericServiceException("Problems getting JNDI InitialContext.", ge.getNested());                } catch (NamingException ne) {            JNDIContextFactory.clearInitialContext(serverName);                       try {                jndi = JNDIContextFactory.getInitialContext(serverName);                factory = (QueueConnectionFactory) jndi.lookup(jndiName);             } catch (GeneralException ge2) {                throw new GenericServiceException("Problems getting JNDI InitialContext.", ge2.getNested());                        } catch (NamingException ne2) {                throw new GenericServiceException("JNDI lookup problem.", ne2);            }                    }                try {            con = factory.createQueueConnection(userName, password);            if (clientId != null && clientId.length() > 1)                con.setClientID(clientId);            con.start();            QueueSession session = con.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);            Queue queue = (Queue) jndi.lookup(queueName);            QueueSender sender = session.createSender(queue);            // create/send the message            Message message = makeMessage(session, modelService, context);            sender.send(message);            if (Debug.verboseOn()) Debug.logVerbose("Sent JMS Message to " + queueName, module);            // close the connections            sender.close();            session.close();            con.close();        } catch (NamingException ne) {            throw new GenericServiceException("Problems with JNDI lookup.", ne);        } catch (JMSException je) {            throw new GenericServiceException("JMS Internal Error.", je);        }        return ServiceUtil.returnSuccess();    }    protected Map runXaQueue(ModelService modelService, Map context, Element server) throws GenericServiceException {        String serverName = server.getAttribute("jndi-server-name");        String jndiName = server.getAttribute("jndi-name");        String queueName = server.getAttribute("topic-queue");        String userName = server.getAttribute("username");        String password = server.getAttribute("password");        String clientId = server.getAttribute("client-id");                InitialContext jndi = null;        XAQueueConnectionFactory factory = null;        XAQueueConnection con = null;                        try {            jndi = JNDIContextFactory.getInitialContext(serverName);            factory = (XAQueueConnectionFactory) jndi.lookup(jndiName);                                } catch (GeneralException ge){            throw new GenericServiceException("Problems getting JNDI InitialContext.", ge.getNested());        } catch (NamingException ne) {            JNDIContextFactory.clearInitialContext(serverName);             try {                jndi = JNDIContextFactory.getInitialContext(serverName);                factory = (XAQueueConnectionFactory) jndi.lookup(jndiName);            } catch (GeneralException ge2){                throw new GenericServiceException("Problems getting JNDI InitialContext.", ge2.getNested());                            } catch (NamingException ne2) {                throw new GenericServiceException("JNDI lookup problems.", ne2);            }        }                                try {            con = factory.createXAQueueConnection(userName, password);            if (clientId != null && clientId.length() > 1)                con.setClientID(userName);            con.start();            // enlist the XAResource            XAQueueSession session = con.createXAQueueSession();            XAResource resource = session.getXAResource();            if (TransactionUtil.getStatus() == TransactionUtil.STATUS_ACTIVE)                TransactionUtil.enlistResource(resource);            Queue queue = (Queue) jndi.lookup(queueName);            QueueSession qSession = session.getQueueSession();            QueueSender sender = qSession.createSender(queue);            // create/send the message            Message message = makeMessage(session, modelService, context);            sender.send(message);            if (TransactionUtil.getStatus() != TransactionUtil.STATUS_ACTIVE)                session.commit();            Debug.logInfo("Message sent.", module);            // close the connections            sender.close();            session.close();            con.close();        } catch (GenericTransactionException gte) {            throw new GenericServiceException("Problems enlisting resource w/ transaction manager.", gte.getNested());        } catch (NamingException ne) {                        throw new GenericServiceException("Problems with JNDI lookup.", ne);        } catch (JMSException je) {                       throw new GenericServiceException("JMS Internal Error.", je);        }        return ServiceUtil.returnSuccess();    }    protected Map run(ModelService modelService, Map context) throws GenericServiceException {        Element serviceElement = getServiceElement(modelService);        List serverList = serverList(serviceElement);        Map result = new HashMap();        Iterator i = serverList.iterator();        while (i.hasNext()) {            Element server = (Element) i.next();            String serverType = server.getAttribute("type");            if (serverType.equals("topic"))                result.putAll(runTopic(modelService, context, server));            else if (serverType.equals("queue"))                result.putAll(runQueue(modelService, context, server));            else                throw new GenericServiceException("Illegal server messaging type.");        }        return result;    }    /**     * @see org.ofbiz.service.engine.GenericEngine#runSync(java.lang.String, org.ofbiz.service.ModelService, java.util.Map)     */    public Map runSync(String localName, ModelService modelService, Map context) throws GenericServiceException {        return run(modelService, context);    }    /**     * @see org.ofbiz.service.engine.GenericEngine#runSyncIgnore(java.lang.String, org.ofbiz.service.ModelService, java.util.Map)     */    public void runSyncIgnore(String localName, ModelService modelService, Map context) throws GenericServiceException {        run(modelService, context);    }    /**     * @see org.ofbiz.service.engine.GenericEngine#runAsync(java.lang.String, org.ofbiz.service.ModelService, java.util.Map, org.ofbiz.service.GenericRequester, boolean)     */    public void runAsync(String localName, ModelService modelService, Map context, GenericRequester requester, boolean persist) throws GenericServiceException {                Map result = run(modelService, context);        requester.receiveResult(result);    }    /**     * @see org.ofbiz.service.engine.GenericEngine#runAsync(java.lang.String, org.ofbiz.service.ModelService, java.util.Map, boolean)     */    public void runAsync(String localName, ModelService modelService, Map context, boolean persist) throws GenericServiceException {        run(modelService, context);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -