尽人事而顺天命

关注 esb , soa ,设计模式,快速组件式开发

   :: 首页 :: 联系 :: 聚合  :: 管理
  6 Posts :: 0 Stories :: 1 Comments :: 0 Trackbacks

2006年2月20日 #

没有想到会碰到这样的一个问题,百思不得其解,贴出来希望哪位也在使用 db2  type2 app jdbc 的兄弟帮忙分析一下: 

使用 ibatis  sql map以及 dao 框架 ,使用 JTA 事务管理,在 websphere 5.1 以及 jboss 4.1 上测试,都出现以下的怪现象: 

使用  sql map 执行 insert  操作的时候, 声明如下的 sql map:

<insert id="ppl_t1.insert" parameterClass="com.surekam.ppl.dao.test.PPLT1">
        asfafdafsdafafsd values (#projId#,#name#);
</insert>
也就是说,一个完全不合法的 sql 语句,但是,在执行的时候, db2 jdbc 居然不报错!!查找到 ibatis 的 sql 执行部分的代码: SqlExecutor 类的: 
 
 1public int executeUpdate(RequestScope request, Connection conn, String sql, Object[] parameters)
 2      throws SQLException {
 3    ErrorContext errorContext = request.getErrorContext();
 4    errorContext.setActivity("executing update");
 5    errorContext.setObjectId(sql);
 6
 7    PreparedStatement ps = null;
 8    int rows = 0;
 9
10    try {
11      errorContext.setMoreInfo("Check the SQL Statement (preparation failed).");
12      ps = conn.prepareStatement(sql);
13
14      errorContext.setMoreInfo("Check the parameters (set parameters failed).");
15      request.getParameterMap().setParameters(request, ps, parameters);
16
17      errorContext.setMoreInfo("Check the statement (update failed).");
18
19      ps.execute();
20      rows = ps.getUpdateCount();
21    }

22    finally {
23      closeStatement(ps);
24    }

25
26    return rows;
27  }


其中并没有什么特别的地方,可是  PrepardStatement 在执行的时候就是不 抛出 SQLException ,而是处理成 SQLWarning ,可以通过 getWarning 取到错误信息. 

而直接自己写一个测试,直接去测试这样一个不合法的 sql ,是会抛出异常的.
db2jdbc 的 bug ?? 还是其它哪里的环境设置?? 

posted @ 2006-04-03 10:11 boss_ch 阅读(616) | 评论 (1)编辑 收藏

使用模板对页面布局进行管理,是一直以来的一个大问题,从以前的 include 方式到后来使用 tiles 进行布局,对于一个新的项目来说,我觉得布局、安全性、权限等这些东西,都是先要考虑的。

布局管理的目标是什么?? 一般的应用(或是网站)中,具体内容部分相对是比较固定的,但是其外框却可能随客户的喜好而有不同的修改(或是类似网站改版),那么,我认为,使用布局管理的主要目的,就是在这种布局管理修改时,能从容应对,只改动最可能少的文件。

为了达到只改动最可能少的文件的目录,那么,自然的,我们会想到类似于OO语言中的继承机制,如果布局是由父类管理的,那么改动时只改动父类就可以了。类似的,模板管理的布局,也应该是达到 这样的目标的。 从这个角度来说, tiles 最大的可取之处,在于其页面配置中的继承机制(不了解 tiles的人请自己找找 tiles的资料看看),同时可参考 http://www.blogjava.net/steady/archive/2006/02/08/29953.html 。

在 struts 下,导航可以直接指向 tiles-config 里的定义,这样就相当于是一个子类(个人觉得,对于大项目来说,这个配置文件的管理也是个大问题)。而在 jsf 里,页面导航不能直接指向模板定义,而需要一个 jsp ,,虽然是个简单的 jsp ,可是却为了一个 view ,我们需要创建两个 jsp?  对于大点的项目来说,这样子的工作量并不小。 因此 ,总的来说,使用 tiles这样子的布局管理,并不能达到我们想要的目的。 
说到这个,倒是让人想起 wicket 的好处来,wicket 里,页面是一个 java 类对应的,java 类可以继承,这样就很自然的把页面布局的管理,换成上述的 OO 类继承的方式了。 具体可以参考 wicket 的 example

posted @ 2006-03-15 10:08 boss_ch 阅读(3909) | 评论 (0)编辑 收藏

myeclipse ide  4.1正式发布好像也有一段时间了,今天有点空给下载试了一下。
感觉最过份的,,, 是居然把图象编辑给做了进去,,真是过份啊,,图像编辑器里也有层次、渐变工具、套索工具等,做做简单的图片修改还真是够用。

难不成,程序员自己操刀做简单美工的需求比较大么? 程序员兼做着美工可真够累的啊。

不过。另外啰嗦一下,myeclipse 的  uml 功能,还是远远没有达到让我想要用他的程度,可能是以前用 together 用习惯了给宠的吧。在 eclipse 平台上,现在还真是没有什么感觉非常好的 uml 工具。 together 与 ibm rsa 都巨慢无比。。。。

在 jboss 的项目源码里看到一个 .zuml 的文件,查了一下好像是一个名为 "Poseidon " 的工具,但是这东西没有听说过。。具体也不敢说了。

作为一个 web 开发套件来说,myeclipse 还是 eclipse 平台上的最好选择。其实对于比较熟练的开发人员来说,不需要太多的图形化的东西,像jsf 的所见即所得编辑器,效率并不高。 毕竟 jsf 与 传统的这种 UI 界面还是有很大的差距。

posted @ 2006-03-07 17:07 boss_ch 阅读(327) | 评论 (0)编辑 收藏

 

要使用 wsadmin 来停止应用程序,执行以下步骤:

在 OS/400 命令行上,运行 STRQSH(启动 Qshell)命令。

运行 cd 命令来进入包含 wsadmin 工具的目录:

cd /QIBM/ProdData/WebASE51/ASE/bin
启动 wsadmin。

在 wsadmin 提示符处,运行以下命令来标识应用程序所驻留的服务器的应用程序管理器 MBean,并将其赋给 appManager 变量:

set appManager [$AdminControl queryNames type=ApplicationManager,*]
此命令返回应用程序管理器 MBean。

可以停止单个应用程序,也可以停止正在应用程序服务器中运行的所有应用程序。

要停止单个应用程序,运行以下命令:

$AdminControl invoke $appManager stopApplication portlet_oa_war
其中 myApp 是要停止的应用程序的名称。

要停止应用程序服务器中所有正在运行的应用程序,执行以下步骤:

运行以下命令来查询应用程序服务器中正在运行的应用程序,并将结果赋给 apps 变量:

set apps [$AdminControl queryNames type=Application,*]
此命令返回应用程序 MBean 的列表。

运行以下命令来停止所有正在运行的应用程序:

foreach app $apps {set appName [$AdminControl getAttribute $app name];
 $AdminControl invoke $appManager stopApplication $appName}



另:
wsadmin.sh  连接时的语法:
./wsadmin.sh -conntype SOAP -host localhost -port 8882 -user uid  -password pwd

posted @ 2006-02-24 16:21 boss_ch 阅读(1178) | 评论 (0)编辑 收藏

(写在前头:这是作者的好友在异国结婚时,她父亲从大陆寄来的信,结婚当日司仪当众就把全文朗诵出来,那是我见过最安静的一次请客场合,在场学生无不为其父母的挚爱而感动。)

  

萍儿:

  爸妈听到你要结婚的喜讯,真为你高兴,远隔千里,我们不能参加你的婚礼,不能在婚礼上献上我们的家长致辞,这是我们内心的一点遗憾。但你是我们的女儿,相信你能理解爸妈的一份感受。

  那天放下电话,我和你妈沉默了良久--我们的孩子怎么一下子就长大了?后来,你妈对着镜子淡淡地说:"你看,我的白头发又多了,萍儿也该结婚了。"我数着你妈的白发,那些白发竟像许多往事,一件一件浮上心头。你妈提醒我:"还是给女儿写一封信吧,就算是我们送你的一份新婚礼物!"

  萍儿,我们只是天底下最平凡的父母,我们的孩子也只是天底下最平凡的女儿,我们不奢求太多,只是希望我的孩子踏上婚姻之路,走向人生之旅后,能满怀感恩,一路平安。在这里,给你一个我们的生活体会。

  先要告诉你:家不是一个讲理的地方。这句话听起来,很没有道理,但千真万确,这句话是真理,是至理,是多少夫妇,多少家庭(包括我们家)用多少岁月,多少辛酸,多少爱恨,多少是非,多少对错,在纠缠不清难解难分的混乱中,梳理出来的一个最后结论。

  当夫妇之间开始据理力争时,家里便开始布上阴影。两人都会不自觉地各抱一堆面目全非的歪理,敌视对方,伤害对方,最后只能两败俱伤,难以收拾。多少夫妻,为了表面的一个"理",落得负心无情。他们不知道,家不是讲理的地方,不是算帐的地方。那么,何为"家",家是什么地方? 萍儿,我们年轻的时候,也回答不了这个问题;也像许多夫妻那样,为一点小事争闹不休。那一年为了你小叔的调动问题,我和你妈大吵了一场,甚至闹到要离婚的地步。只是在那个时代我们 还缺乏勇气。直到有一天,一位老战友在他孩子的婚礼上说"希望你们白头偕老,相爱永远"时,爱这简短的字,像春雷响在我心里。

  是的,家不是讲理的地方,家该是讲爱的地方。爱一时很容易,爱一生一世却不容易,这里面有许多妙处需要我们去总结和体会。

  其次我们要告诉你:婚姻是个空盒子,你必须往里面放东西,才能取回你要的东西;你放的愈多,得到的也就愈多。很多人结婚时,对婚姻有许多期盼,期盼从中可以得到富贵,藉慰,爱情,宁静,快乐,健康,其实婚姻开始的时候,只是一个空盒子。走到一起的两个人,一定要养成一个习惯,去给,去爱,彼此侍奉,彼此赞赏,日后,那个空盒子才会日渐丰富起来。

  空盒子最先该放的应该是"思念",思念是一种使我们刻骨铭心的东西。它是两个人有了肯定,有了情感,然后进而关怀,进而疼爱的一种情绪。"思念"是疲惫时通向家里的一条小路,是寒冷冬夜里的一股暖意,是匆忙推开家门后扑面而来家饭香……

  空盒子里还要放进"艺术",婚姻生活中的艺术。在婚姻生活中,需要讲艺术的地方无处不在,生气有艺术,吵架有艺术。有一对夫妇含辛茹苦养育了五个孩子,其中之艰难,只有他们自己能体会。一天,夫妻为了孩子的一件小事吵起来,越吵越厉害,眼看不可收拾了,妻子突然说:"等一下,我要去生孩子了。"这句话,就是吵架的艺术。

  婚姻的盒子里,除了放"思念"和"艺术"外,还有许多东西,都可以放进去,这有待于你们自己去填补。

  写到这里想到一位作家说过的一句话:你们生养他,教育他,你们的责任已尽,而你们给他最好的礼物,是一对翅膀。萍儿,这封信,就是爸妈送给你的结婚礼物,我们希望你带着我们的祝福,快乐的飞翔!

posted @ 2006-02-22 11:04 boss_ch 阅读(395) | 评论 (0)编辑 收藏

在 blogjava 潜水也有一段时间了,论坛太多,朋友太少,在 blog java 占这么一块地盘,希望与从事 j2ee 架构设计的相关朋友一起学习探讨。 

当前关注的重点方向: ESB , SOA, 快速组件式应用开发。

posted @ 2006-02-20 09:37 boss_ch 阅读(334) | 评论 (0)编辑 收藏