隔叶黄莺 The Blog of Unmi

〖隔叶黄莺三四声,挂壁飞瀑千万尘。若是人间无净土,此处为何妙语真! 隔叶黄莺四字,本非取自此句,而有寄寓他意,因见妙语,亦与予心合!〗

BlogJava 首页 新随笔 联系 聚合 管理
  209 Posts :: 84 Stories :: 392 Comments :: 0 Trackbacks

01 2008 档案

     摘要: 通常 Websphere Application Server (WAS) 都是结合 LDAP 来对用户对行验证,实现单点登陆的。因为 LDAP 有着一个得天独厚的优势,它对查询进行了优化,因此 WAS 理所当然的提供了对 LDAP 十分完善的支持。从 WAS 控制台进 安全性->用户注册表->LDAP,在类型里可以看到支持 IBM_Directory_Server、SecureWay、Sun ONE、Domino、Active_Directory、eDirectory 还可定制 LDAP 连接。

好,就此打住,我在这里要介绍的是如何配置 WAS 控制台和应用通过 JDBC 来验证用户。这一想法产生的背景是:公司原所有系统是通过 Portal 做的集成,配置 LDAP 便能实现 SSO,但有一个新的项目暂不能通过 LDAP 来验证,但也要能实现 SSO,于是就意思到要用 JDBC 来进行用户验证。你也许已注意到在 安全性->用户注册表 下除了 本地 OS 和 LDAP 外,还有一个 定制。我们就是要在这个 "定制" 上做文章的。下面详细具体步骤。  阅读全文
posted @ 2008-01-27 14:51 隔叶黄莺 阅读(914) | 评论 (3)  编辑

     摘要: 假定Java 程序中要定期执行 SQL 语句,因需求变更应修改原有 SQL 语句或者加上更多的语句时,不得不修改源代码,然后再次编译。要是把 SQL 语句写在单独的 SQL 脚本文件中,由 Java 程序来定时加载执行,那么每次改动时仅仅修改 SQL 脚本文件就行了。

Java 没有提供现成的东西,所以自己写了一个这样的 SQL 脚本执行类 SqlFileExecutor。支持通用的 SQL 脚本文件,"--" 作为注释前导符,分号 ";" 分隔语句。不支持 MySQL 的 /*...*/ 形式的注释格式。对于 Windows 和 Linux/Unix 下编辑的脚本文件都测试通过。这两个系统文件中的换行符不一样,Windows 是 "\r\n",Linux/Unix 是 "\n"。
  阅读全文
posted @ 2008-01-22 15:21 隔叶黄莺 阅读(1259) | 评论 (9)  编辑

     摘要: 有时候我们要跟踪方法的执行时间,来观察系统的性能、时间分布。特别是要找出那些十分耗时的操作。如果是在每个方法中起始和结束位置记下时间相减,那是不太现实的,对代码的侵入性太过份,而且在产品环境中又得屏闭那部份代码。

幸好现在有了 AOP,通过配置方式再加上外部辅助代码就能达到我们的要求,正式上线时只需要简单改个配置项拆卸下来即可。

下面介绍三种方式来打印每个方法的执行时间,分别是:

1. Spring 2.0 用 AspectJ 实现 AOP
2. Spring 通用的方法拦截
3. 直接用 AspectJ 实现  阅读全文
posted @ 2008-01-18 13:45 隔叶黄莺 阅读(1347) | 评论 (5)  编辑

     摘要: 我在 Websphere Application Server (WAS) 下配置 JDBC 提供程序时,选择了 Oracle JDBC Driver 确定之后,看到最后一个选项是:oracle.jdbc.pool.OracleConnectionPoolDataSource。

顾名思义,这是一个 DataSource 实现为,就像 DBCP 的 BasicDataSource 一样。那么能不能也像 BasicDataSource 那样,通过 new BasicDataSource(),然后设置各个必须的属性得到一个数据源 DataSource 呢?这个 OracleConnectionPoolDataSource 又是在哪个包里呢?  阅读全文
posted @ 2008-01-16 14:47 隔叶黄莺 阅读(905) | 评论 (2)  编辑

     摘要: 七. 线程在 Quartz 中的用法

线程与 Quartz 来说尤为重要,因为 Quartz 就是设计为支持同时运行多个 Job。为达到此效果,Quartz 非常倚重于内建于 Java 语言的线程,借助于自己的类和借口还有所增强。你已经在本章或前面章节中看到过这方面的例子。

当 Quartz Schduler 首次由某个工厂方法创建时,工厂配置了 Scheduler 会在它的整个生命周期中用到的几个重要的资源。其中一些重要的资源是与线程相关的。

·主处理线程:QuartzSchedulerThread

Quartz 应用第一次运行时,main 线程会启动 Scheduler。QuartzScheduler 被创建并创建一个 org.quartz.core.QuartzSchedulerThread 类的实例。QuartzSchedulerThread 包含有决定何时下一个 Job 将被触发的处理循环。顾名思义,QuartzSchedulerThread 是一个 Java 线程。它作为一  阅读全文
posted @ 2008-01-08 23:07 隔叶黄莺 阅读(1280) | 评论 (4)  编辑

     摘要: 环境:dwr 1.1.4 + Tomcat 5.0.28 + jdk 1.6.0_03
配置了最基本的 web.xml,加了一个 web.xml 和 RemoteBean,部署后通过网址

http://localhost:8080/testdwr/dwr 访问

页面出现错误

javax.xml.transform.TransformerFactoryConfigurationError: Provider org.apache.xalan.processor.TransformerFactoryImpl not found
javax.xml.transform.TransformerFactory.newInstance(Unknown Source)
uk.ltd.getahead.dwr.convert.DOMConverter.(DOMConverter.java:157)

这是一个 XML 解析器的问题,我们能直接能理解的就是 TransformerFactoryImp  阅读全文
posted @ 2008-01-05 00:10 隔叶黄莺 阅读(1040) | 评论 (0)  编辑

     摘要: 因公司生产系统是基于 LDAP 实现的 SSO 验证,开发主要还是基于 Tomcat 来进行的,于是乎就想能不能用 Tomcat 也连接 LDAP 来进行相仿的验证,网上找了些资料,唯独这篇文章我最喜欢,欣喜间不忘把它翻译过来以饷诸位同仁 (忙乱中拣些闲暇,历经数日方成);自私、坦白讲是为锻炼一下自己的阅读能力,难免在不明之处欠些琢磨更要紧是水平的不到位,见谅!并希望能得到无情的指摘。同时 Unmi 也对例子有所实践,并非平白引进;还有就是注意到文中用的是 Form 的验证方式,读者可自己试验 Basic 的验证,更多的属性配置就该参考 Tomcat 关于 Realm 的配置文档了。

几乎所有的 Java Web 应用都需要某种类型的安全性的控制, 并且这通常会借助于 Lightweight Directory Access Protocol (LDAP) 目录服务来实现. 作为一个开发者,很有必要在本地安装一个 OpenLDAP 和 Web 容器来提高开发效率. 配置 Tomcat 连接到 OpenLDAP 的过程假如你能理解的话,还是很直白的. 这篇文章  阅读全文
posted @ 2008-01-03 23:50 隔叶黄莺 阅读(1509) | 评论 (0)  编辑