随笔 - 59, 文章 - 4, 评论 - 184, 引用 - 7
数据加载中……

WebWork2.2集成Spring作为正式IoC容器

23号,Webwork团队的领导者写了篇Blog宣布如下信息:
adopted Spring as the official IoC container. WebWork's own IoC container is deprecated as of version 2.2 beta 2.
WebWork的Ioc容器停摆了
http://blogs.opensymphony.com/webwork/2005/09/spring_and_webwork_together.html
新的集成方法使得Spring的applicationContext.xml中的Action的配置更加简单
http://wiki.opensymphony.com/display/WW/Spring

在Spring的网站首页上也报道了该事件
http://www.springframework.org

posted @ 2005-09-26 14:52 fisher 阅读(1102) | 评论 (0)编辑 收藏

重新带J2EE项目-兼谈架构模式的影响

 

写了几个月的通讯中间件,再次带领一个J2EE项目,使用WebWork、Spring、Hibernate,感觉写J2EE项目就像在休假,要考虑的事情少之又少,无论是效率、异常处理、线程调度、架构模式,一切都不再那么重要,无需考虑那么多,只要语义清晰,沟通流畅就好了。
想起一周前跟Jerry聊天,说起因为Unixware下JDK1.3的notify语义的不稳定问题而一天内重新编写了三次通讯框架,最后采用了完全非框架的过程化写法,Jerry说应该先写出一个实现,然后在之上重构,就像爬山一样,不可能一下子攀登到顶峰,当时虽然心里感觉不是这样,但竟一时语塞,不知从何说起,再次回到J2EE开发,才恍然明白那天的感觉,框架开发和业务开发的不同就在于,很难重构,尤其是通讯框架,架构通常决定了它的几个重要指标。

架构模式不同于设计模式,设计模式的问题可以通过重构解决,而架构模式几乎只能重新做(当然也有例外),架构一旦确定,很多东西就无法再加入,所以为什么很多开源的J2EE框架在大版本升级后不得不抛弃向后兼容。这也是为什么国产通讯框架Cindy的作者想在其中加入FilterChain,而最终放弃的原因,因为这对基础库的改动实在太大。

而MINA的架构就足够灵活,它屏蔽了不同通讯方式和通讯底层事件机制的差异,就像在如同Cindy和Netty2这种基于NIO的reactor模式之上的框架,要想重构到BIO,就几乎要全部重写,不过Netty2要好一些,毕竟有Netty1作为铺垫,所以在NIO的reactor的路上走的不是很远(NIO的reactor实现真是的不咋个),而MINA则只需要在SocketIoProcessor中使用Helf Sync/Helf Async模式替换掉reactor之上的事件处理即可,当然,最好还要提供线程池以便进行overload shield,在向Apache LDAP团队提交了MINA的JDK1.3核心库时也曾想提起该问题,可惜后太忙,忘记了。不过我想以Trustin的聪明,一定会想到这个问题。

posted @ 2005-09-21 17:47 fisher 阅读(1506) | 评论 (3)编辑 收藏

网易代理CEO孙德棣中秋节辞世 到 新浪新闻两则

又一名IT精英人士英年早逝,北京和北京IT圈成为培养精英及早逝精英的温床

北京几秒钟产生一个百万负翁


职业IT人在IT“榨汁机”里的逝水年华

posted @ 2005-09-21 13:40 fisher 阅读(624) | 评论 (0)编辑 收藏

Who is Trustin Lee

Trustin Lee,MINA、Netty2通讯框架的作者
韩国人,80年出生,8岁起在MSX迷你计算机上编写BASIC程序,爱好游戏编程以及使用汇编、C和C++解决编程问题,1998年获得韩国信息奥林匹克竞赛铜牌。
就读于韩国Yonsei大学计算机系期间,曾为多家公司编写高性能网络应用以及少量的web程序,毕业后,就职于Arreo通讯公司,该公司为韩国最大的移动短信提供商之一。
目前为Apache SEDA framework的主要开发者以及LDAP的网络框架MINA的作者。

posted @ 2005-09-12 17:52 fisher 阅读(4235) | 评论 (1)编辑 收藏

[BIRT]-[Tutorial]-使用ScriptDataSet从POJO中获得数据(五)

四、预览结果

使用BIRT提供的预览窗口来预览所制作的报表,这是BIRT必须知道该如何找到在Script中引用的类,而BIRT的预览窗口是使用一个内嵌的web服务器来预览的,所以,我们需要将用于数据库资源访问的类和在script中使用的类打包成jar放入到这个web-appclasspath下。

这个web-app是作为一个Eclipseplugin存在的,它位置在:

<ECLIPSE_HOME>\plugins\org.eclipse.birt.report.viewer_1.0.0

将打包好的jar文件放入到该plugin下的如下目录:

<ECLIPSE_HOME>\plugins\org.eclipse.birt.report.viewer_1.0.0\birt\WEB-INFO\lib

然后将你的数据库访问组件所依赖的jar文件都一并拷贝到这个lib目录下,并将数据库访问组件需要的配置文件放入到WEB-INFO下,以便其可以在这个web应用的classpath中找到自己的配置文件

 

另外,如果使用配置文件的话,需要象在Tomcat中使用配置文件一样,将配置文件拷贝到以下目录,以便dom4j能够找到

<ECLIPSE_HOME>\plugins\org.eclipse.birt.report.viewer_1.0.0\birt\WEB-INFO\classes

 

最后,也是最重要的一点!也是困扰了我几个小时的问题

教程中没有提到,拷贝完自己的这些数据库访问组件后,需要重启Eclipse才能使用!!?

这个viewerweb程序会在每次Eclipse启动时启动,并读入这些配置信息,运行期则不会在重新装载配置信息

 

―――――――――――

另外,还有另一种方法来发布数据库访问组件,就是将编译好的class文件放入到这个WEB-INFO目录的classes目录下,但要注意要建立目录以匹配自己的包结构,就如同普通的Tomcat程序那样

―――――――――――

预览结果:(图)

o_Snap8.jpg
五、发布环境中运行

发布时的操作要比预览时简单的多,你可以将这个报表文件当作你的web程序中的一个JSP文件来通过URL来访问,并可以在URL中传递参数给报表文件,以便指定查询条件,这些问题在BIRT的教程中讲的很清楚了,这里就不再说明

posted @ 2005-09-06 13:47 fisher 阅读(2685) | 评论 (2)编辑 收藏

仅列出标题
共12页: First 上一页 3 4 5 6 7 8 9 10 11 下一页 Last