尽人事而顺天命

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

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

2006年2月24日 #

没有想到会碰到这样的一个问题,百思不得其解,贴出来希望哪位也在使用 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 阅读(606) | 评论 (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 阅读(3896) | 评论 (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 阅读(319) | 评论 (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 阅读(1162) | 评论 (0)编辑 收藏