- 浏览: 568719 次
- 性别:
- 来自: 武汉
-
文章分类
最新评论
-
bo_hai:
快速排序:https://bo-hai.iteye.com/b ...
插入排序、选择排序、冒泡排序 简单实例 -
bo_hai:
参考:https://bo-hai.iteye.com/blo ...
插入排序、选择排序、冒泡排序 简单实例 -
bo_hai:
JDK1.8后,解决问题的办法就简单啦:List<Int ...
List 中去除 null 方法讨论 -
bo_hai:
上述两种办法都不是最好的单例模式。
安全发布单例模式 -
bo_hai:
我来评论一下。
MySql 删除重复数据的方法
一、EJBFactory 设计类如下:
import java.util.Collections; import java.util.HashMap; import java.util.Map; import javax.ejb.EJBHome; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.rmi.PortableRemoteObject; import javax.jms.JMSException; import javax.jms.ObjectMessage; import javax.jms.Queue; import javax.jms.QueueConnection; import javax.jms.QueueConnectionFactory; import javax.jms.QueueSender; import javax.jms.QueueSession; import javax.jms.Session; import javax.naming.Context; /** * EJB Home Factory, maintains a simple hashmap cache of EJBHomes * For a production implementations, exceptions such as NamingException * can be wrapped with a factory exception to futher simplify * the client. */ public class EJBHomeFactory { private Map ejbHomes; private static EJBHomeFactory aFactorySingleton; Context ctx; private Log4j log = new Log4j(Constant.ModuleType.SETTLEMENT, this); /** * EJBHomeFactory private constructor. */ private EJBHomeFactory() throws NamingException { try { ctx = new InitialContext(); this.ejbHomes = Collections.synchronizedMap(new HashMap()); } catch (Exception e) { //can't do anything about this //client will catch errors upon trying to //do a lookup } } /** * Returns the singleton instance of the EJBHomeFactory * The sychronized keyword is intentionally left out the * as I don't think the potential to intialize the singleton * twice at startup time (which is not a destructive event) * is worth creating a sychronization bottleneck on this * VERY frequently used class, for the lifetime of the * client application. */ public static EJBHomeFactory getFactory() throws IException { try { if (EJBHomeFactory.aFactorySingleton == null) { EJBHomeFactory.aFactorySingleton = new EJBHomeFactory(); } } catch (NamingException e) { throw new IException("EJBHomeFactory NamingException", e); } return EJBHomeFactory.aFactorySingleton; } /** * Lookup and cache an EJBHome object using a home class. * Assumes that the JNDI name of the EJB Home being looked for * is the same as the fully qualified class name of the * same EJB Home. * If EJB-REF tags are being used externally, then the classname * of the EJB Home can be mapped to the actual JNDI name of the * deployed bean transaprently at deployment time. * If EJB-REF tags are not used, then the EJB's must be deployed * with JNDI names equal to their fully qualified home interfaces. */ public EJBHome lookUpHome(Class homeClass) throws IException { EJBHome anEJBHome; String jndiName = ""; anEJBHome = (EJBHome) this.ejbHomes.get(homeClass); try { String ResourceReference = homeClass.getName().substring(homeClass.getName().lastIndexOf(".") + 1, homeClass.getName().length()); if (anEJBHome == null) { anEJBHome = EJBObject.getEJBHome(ResourceReference); //anEJBHome = (EJBHome) PortableRemoteObject.narrow(ctx.lookup(jndiName), AccountHome.class); this.ejbHomes.put(homeClass, anEJBHome); log.info(ResourceReference + " lookup successfully."); } } catch (ClassCastException e) { throw new IException("EJBHomeFactory ClassCastException", e); } catch (NamingException e) { throw new IException("EJBHomeFactory ClassCastException", e); } catch (Exception e) { Log.print(jndiName + " home not found - " + "Is bean registered with JNDI?: " + e.toString()); } return anEJBHome; } }
二、获取EJB实例的方法:
try { TransCurrentDepositHome home = (TransCurrentDepositHome) EJBHomeFactory.getFactory().lookUpHome(TransCurrentDepositHome.class); transCurrentDepositFacade = (TransCurrentDeposit) home.create(); } catch (RemoteException e) { throw e; } catch (IException e) { e.printStackTrace(); throw new RemoteException(); } catch (CreateException e) { e.printStackTrace(); throw new RemoteException(); }
三、仅供参考设计EJBFactory的方法。
发表评论
-
lockInterruptibly 和lock的区别
2014-09-03 11:04 3295这是个被无数人写过并还会被其他人继续写下去的blog。 代 ... -
Spring MVC 的单元测试实例
2014-08-15 16:48 893一、先定义实例: public class BaseTes ... -
HTTPClient 简单使用
2014-08-15 13:47 1115HttpClient 的用模拟http请求的工具,一般用在 ... -
tomcat 配置虚拟主机实例
2014-07-29 14:20 1532一、先来解释一下虚拟主机的概念:在一个tomcat上放多个工 ... -
Eclipse3.6 安装EGit
2014-07-08 21:56 635Eclipse3.6 安装EGit地址是 http://do ... -
ThreadPoolExecutor 中饱和策略分析
2014-07-03 15:25 2296import java.util.concurrent.Ti ... -
FutureTask 实例
2014-06-29 10:56 674先来总结一下FutureTask使用场景: 如果不想分支线 ... -
ReadWriteLock 使用实例
2014-06-28 20:21 907首先来讨论ReadWriteLock 类的使用场景,记住一句 ... -
安全发布单例模式
2014-06-27 17:24 7001、最简单的方法: public class Singl ... -
JAVA notifyAll wait 实例
2014-06-27 13:55 539两个线程,分别有两数据结构:1到10的数据和A到E的字符。 ... -
获取机器CPU数量的方法
2014-06-22 15:58 675public class CPUNum { /** ... -
动态代理的实现
2014-06-17 21:26 523public interface IHelloWorld ... -
线程同步优化实例
2014-06-11 17:56 553代码如下: package com.bohai.thre ... -
JavaScript 遍历JSON 获取key value
2014-04-30 16:20 672if (!$.isEmptyObject(subProdIn ... -
计算器算法(支持加减乘除括号)
2014-04-19 17:53 5635import java.util.ArrayList; i ... -
实用工具类 && CollectionUtils
2014-04-19 13:53 7894import java.util.ArrayList; ... -
解决fatal: unable to connect to github.com问题
2014-04-08 16:43 2229问题: 在使用Aptana Studio3 ... -
JAVA多线程 Semaphore 应用
2014-01-24 16:04 553import java.util.concurrent.Ex ... -
JAVA多线程 Exchanger 应用
2014-01-24 15:42 716import java.util.concurrent.Ex ... -
Condition 在多线程协作中应用实例
2014-01-16 15:47 538import java.util.ArrayList; ...
相关推荐
7. **EJB的Local接口**:在`AdderServlet`中,使用`EJBFactory.getEJB()`获取`AdderBean/local`,表明Servlet正在本地调用Session Bean。`Adder`接口定义了业务方法,`AdderBean`实现了这个接口,包含了业务逻辑。 ...
public class EJBFactory { public static Object getEJB(String jndiPath) { try { Properties props = new Properties(); props.setProperty("java.naming.factory.initial", "org.jnp.interfaces....
图像处理项目实战
CCleaner用来清理注册表
图像处理项目实战
chromedriver-win64-136.0.7064.0.zip
系统选用B/S模式,后端应用springboot框架,前端应用vue框架, MySQL为后台数据库。 本系统基于java设计的各项功能,数据库服务器端采用了Mysql作为后台数据库,使Web与数据库紧密联系起来。 在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。
图像处理项目实战
python、yolo、pytorch
人工智能、大语言模型相关学习资料
内容概要:本文详细介绍了由幻方量化公司创建的 DeepSeek 子公司的背景及发展历程,重点阐述了DeepSeek R1推理模型的特性和技术优势。文中不仅比较了五种使用 DeepSeek的方式及其应用场景,还深入探讨了 R1模型的训练机制和核心技术组件如冷启动数据、监督微调、强化学习、蒸馏等,同时展示了 R1与其他大厂同类产品的差异点和发展方向。 适合人群:有兴趣了解最新一代深度学习架构和训练技术的研究人员和开发者,尤其是关注自然语言处理(NLP)领域的工作者。 使用场景及目标:该材料对于希望利用最先进的大型语言模型解决实际问题的从业者十分有价值。它提供详细的指引和支持,以帮助企业用户选择合适的接入途径并有效地实施解决方案;同时也适用于学术界用作参考资料或教学内容,帮助培养下一代AI人才。 其他说明:文中还提及了 DeepSeek的产品生态系统及其未来改进计划,如增强通用能力、改善多语种支持等。附带提供的链接指向官方网站和教育平台,可进一步加深理解和获取一手资料。
1、文件内容:teamd-1.29-3.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/teamd-1.29-3.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、更多资源/技术支持:公众号禅静编程坊
图像处理项目实战
车牌识别项目
图像处理项目实战
NVIDIA-Linux-x86_64-550.100.run
图解 72 个机器学习基础知识点
高精度运算(大数运算).md
车牌识别项目