`
bluepopopo
  • 浏览: 91633 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
转换Xml与java object,一般使用JDom或SAX。但这样手动mapping,代码实在冗长乏味。目前已有jaxb,castor, xstream等类库提供自动映射,如Xfire的webservice就是基于这些类库进行xml解组. 1.已定义xml模板文件 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <job-config> <purge-interval>3</purge-interval> ...
续Java transaction笔记(一, 继续我的transaction之旅。这次是XA transaction. Wiki对于XA的描述 引用在计算技术上,XA规范是 The Open Group关于分布式事务处理 (DTP)的规范。规范描述了全局的事务管理器与局部的资源管理器之间的接口。XA规 ...
蛮精彩,感动。
我所在的团队是以二次开发和维护一套大型件产品为主。不谈项目与产品的区别,只说目前的开发流程。看看大家对这种开发方式有什么建议。 1.产品有多个版本,以不同的分支并行开发。处于开发阶段的一般都是最高版本。每当发布小版本,则该小版本所有的defect item 都需要在高版本中拷贝一份(譬如clearquest clone),以便高版本中也进行修改。这样使得修正过后的代码与高版本branch同步,同时意味着高版本也修正了这些defect. 当然需要重新在高版本中再进行测试和验证。 2.因为产品有很多用户,所以很多时候需要考虑的是向后兼容性,而不是发现个defect则不管三七二十一修正了是。如果改 ...
稍稍记录一下EasyMock的使用。 废话没有,单元测试一般都会用XUnit测试框架。简单对象或方法还好,倘若出现复杂对象依赖那么光是准备依赖对象就够喝一壶的了。譬如要测试Class_A.method(Class_B obj){...} Class_B depends Class_C. Mock对象便出马了,其实就是基于动态代理机制产生Class_B/Class_C的实例。听说过JMock,EasyMock,MockEJB等等,目前尝试过的只有EasyMock.下面开始。 从EasyMock站点下载发行包,我使用的是easymock-2.5.2。使用很简单,查看user guide就可以上 ...
最近碰着了java.lang.OutOfMemoryError: unable to create new native thread,籍由这个机会尝试深入理解这个问题。 原因是创建过多thread引出的问题,JVM此时无法再创建出更多的线程。这里的解释还是比较靠谱的 引用As you can see, the maximum number of threads I can create decreases as the heap size gets larger. This is because the JVM immediately reserves the address space ...
这篇文章很直接,简单易懂。尝试着翻译一下 ,原文是What are writeObject and readObject? Customizing the serialization process. 在Java中使用Serialization相当简单。如果你有一些对象想要进行序列化,你只需实现Serializable接口。然后,你可以使用ObjectOutputStream将该对象保存至文件或发送到其他主机。所有的non-transient和non-static字段都将被序列化,并且由反序列化重构造出一模一样的对象联系图(譬如许多引用都指向该对象)。但有时你可能想实现你自己的对象序列化和反序 ...
续前一篇,补充一下广播(broadcast)和多播(multicast)。两者皆基于UDP协议。 广播(broadcast) 程序写法与单播一样,区别在于目的地址不同。单播使用的是独立ip地址,而广播顾名思义就是要向其他的客户端发送消息,所以使用的是255.255.255.255(ipv4)。 InetAddress adress = InetAddress.getByName("255.255.255.255"); DatagramPacket packet = new DatagramPacket(byteToSend, byteToSend.length,adr ...
最近一直在看Socket,将自己的所学的记录一下。 TCP/TP 不详细涉及,网络上有充足的信息,可以参考http://baike.baidu.com/view/7729.htm。我说熟知的便是TCP/UDP属于传输层,而IP属于网络层。而IP提供了TCP/UDP网络传输的底层机制。 TCP提供检测和恢复IP层中通道可能造成的数据丢失以及其他错误。它的通道是基于byte-stream的,但是这个特点可能会造成报文接收不能与发送发一致,稍后谈这个问题。 UDP不对传输造成的错误进行修复,使用它时需要考虑处理这些问题。 Traditional Socket 再没有nio之前,一般使用blo ...
这两天闲来无事,从infoQ下载了javatransactionsbook.pdf看看。这本书写的还是蛮直白的,很多知识都比较常见,正好巩固一下自己并不扎实的基础。 事务(transaction)分三种类型 Local transaction model 只能用来操作connetion,不适用于transaction.譬如说, conn = getConnection(); conn.setAutoCommit(false); . . . conn.commit()/rollback(); 一般用于小型的应用,不足之处在于开发人员处理transaction时需要非常小心。还有一点就是 ...
重温了一下factory pattern,赶紧记录之 - Simple Factory pattern: 将变化的对象创建方法转移到单独的类中。需要传入参数,一般情况下已经够用。唯一的问题就是增加产品类别,需要改动工厂类。扩展优先于修改呀! public Product createProduct(int type) { switch (type) { case 1: return new ProductA(); case 2: return new ProductB(); default: return null; } ...

LRU Cache

    博客分类:
  • J2EE
看了下RU(Least Recently Used ,最近最少使用),可以使用LinkedHashMap实现,到是蛮简单的.LinkedHashMap会将get或是put的数据置于底端. 重写removeEldestEntry()可以设定根据size来调整cache的数量. import java.util.Collection; import java.util.LinkedHashMap; import java.util.Map; /** * This class uses the LinkedHashMap to build LRU cache. * User c ...
<o:p> </o:p>接手的项目用到了基于stateless session bean 的webservice,以前没有怎么接触过ws.整理一下自己的学习资料:<o:p> </o:p> • Quick introduction Webservice<o:p></o:p> HTTP is supported by all Internet browsers and servers. Firewalls and proxy servers will not block this kind of traffic.<o ...
目前遇到一问题关于app cluster的:    有一个local stateless bean,称之为ABean,它用于产生连续数字(有点象oracle的sequence)供其它bean使用,并保存在数据库中。问题出现了,在单机环境下没问题,可在cluster中时不时地出现数字跳跃式增长。譬如1,2,6010,3,6011,4,5,6012. ABean会基于数据库的纪录,一次cache 6000个数字。 很明显是cluster中的各成员调用不同的ABean实例。   如果能将ABean 设为cluster中只有一个实例,也就是整个cluster都共享这个ABean的实例,就好了。因为 ...

JAAS

    博客分类:
  • J2EE
项目中用到了JAAS,以前没有接触过,google了半天资料。赶快纪录下来: 1.JAAS全称为Java authentication and authorization service,用于设计可拔插的安全机制。一般项目中用在web端或ejb访问控制。 2.直接以例子进行(基于JBoss4.0.0):    2.1 首先确定需要以何种方式进行验证,文件/数据库/LDAP。目前的项目是用数据库方式。    2.2  在JBoss中以文件方式验证,可以参考jmx-console.war的配置:将jboss-web.xml中的注释去掉,然后再把web.xml中的那一段注释拿掉。确认class ...
Global site tag (gtag.js) - Google Analytics