跳转到主要内容


developerWorks 中国  >  Java technology  >  

文档库

developerWorks
 
  
 
 结果  2107   显示第 1 - 100 条结果     隐藏内容简介    
 
题目 日期依据日期排序 - 单击以反向排序
<
通过 JACOB 实现 Java 与 COM 组件的互操作
软件的互操作性是一个我们经常面临的问题,如果 Java 可以自由的调用其他语言和平台的成熟代码,可以充分利用您的 Java 技能,大大提高您的生产力。现有的 Java COM 互操作技术有很多种实现,JACOB 开源项目提供了一个简单方便的通用调用框架,本文就结合一个实例来介绍 JACOB 项目的使用和优点。
    2009年12月8日  
 
使用 Cognos 8 SDK 在 Web 应用中集成 Cognos 报表
本文介绍了 Cognos 8 Software Development Kit 的基本功能,并通过实例展示了如何使用 SDK 在 Web 应用中执行 Cognos 相关的操作。
    2009年12月8日  
 
使用 IBM FileNet P8 实现序列号分发器
相信吗,您也能够让使用 ECM 软件的面包店的客户整齐地排队!那就是让他们取号排队。本文讨论从 FileNet P8 储存库获取一个唯一的序列号的实现技术。看起来简单的方法可能隐藏着问题,但正确、实用的方法一定是简单、出色的。在解决常见问题的同时,我们将了解范围更广的 P8 开发的一些方面。
    2009年12月7日  
 
体验 Spring 的 Object/XML 映射支持
在 Java Platform Enterprise Edition (Java EE) 社区内,Spring 正在成为一个非常受欢迎的框架。Spring 的最新版本的特性之一是它的 Object/XML (O/X) 映射支持。这个 API 支持开发人员在 Java 对象和 XML 之间来回转换。在本文中,您将学习如何使用 Spring 中的 Object/XML 映射特性并了解它的优势。
    2009年12月7日  
 
为 Firefox 浏览器创建和实现 XPCOM 组件
了解如何创建、开发和测试跨平台组件对象模型(Cross-Platform Component Object Model,XPCOM)组件,Firefox 浏览器可以将该组件用作应用程序的扩展。随本文样例提供的样例代码能够让您快速为 Firefox 浏览器开发组件。
    2009年12月7日  
 
面向 Java 开发人员的 Scala 指南: 用 Scitter 更新 Twitter
Scitter 客户机库即将发布,但是还差最后一步。在这一期面向 Java 开发人员的 Scala 指南中,Ted Neward 展示如何将更新、显示和删除功能添加到用于访问 Twitter 的基于 Scala 的库中。
    2009年12月7日  
 
使用 HttpClient 和 HTML 解析器扩展 WebKing 静态页面测试
本文从 Web King 页面的静态分析出发,讨论了利用 HTTP Client 和 XML,HTML 解析工具开发部署在 WebSphere 上面的扩展程序。扩展程序是一种 Web 标准的反向代理程序。程序所讨论的方法可以辅助 Web King 在对 Web 页面进行 Section508/WAI, WCAG 1.0/2.0, XHTML 测试时所表现的在页面内容加载方面的不足。另外,文章中所谈论的技术还可以广泛地应用于反向代理,服务器端拦截通信,Web 页面的 ETL 等方面。
    2009年12月3日  
 
为 Eclipse Galileo 打补丁
Eclipse Galileo 包含了一些针对补丁应用的新功能,包括把一个补丁复制到剪切板,然后直接粘贴到 Project Explorer 中的功能。本文对此进行了介绍并提供了有关创建和应用补丁的方法概览,而且对 Eclipse 使用的补丁格式也进行了介绍。
    2009年12月3日  
 
使用 Apache MINA 2 开发网络应用
Apache MINA 2 是一个开发高性能和高可伸缩性网络应用程序的网络应用框架。它提供了一个抽象的事件驱动的异步 API,可以使用 TCP/IP、UDP/IP、串口和虚拟机内部的管道等传输方式。Apache MINA 2 可以作为开发网络应用程序的一个良好基础。本文将介绍 Apache MINA 2 的基本概念和 API,包括 I/O 服务、I/O 会话、I/O 过滤器和 I/O 处理器。另外还将介绍如何使用状态机。本文包含简单的计算器服务和复杂的联机游戏两个示例应用。
    2009年12月3日  
 
Java 开发 2.0: 使用方便的 EC2
提供一个 EC2 实例来托管 Java Web 应用程序将非常简单。在这一期 Java 开发 2.0 中,我们将快速构建一个利用 Groovy、Spring 和 Hibernate(通过 Grails 框架)的 Web 应用程序并将其部署到一个 EC2 实例。
    2009年11月30日  
 
GWT 应用,第 2 部分: 高级内容
借助 Google Web Toolkit(GWT),可以开发能在浏览器中运行的类桌面应用程序。在分两部分的本系列的第 2 部分中,David Geary 展示如何使用 GWT 一些更高级的方面,包括接收(sink)事件、使用计时器和预览事件。
    2009年11月30日  
 
使用 J2EE 和 STAF/STAX 实现全生命周期的自动化回归测试
本文介绍了一种基于 J2EE 和 STAF/STAX 的全生命周期自动化回归测试框架。本框架扩展灵活,易于使用,测试流程可自由订制,监控程度高,实现完全无人工干预的自动化测试。
    2009年11月26日  
 
通过分析 JDK 源代码研究 Hash 存储机制
HashMap 和 HashSet 是 Java Collection Framework 的两个重要成员,其中 HashMap 是 Map 接口的常用实现类,HashSet 是 Set 接口的常用实现类。虽然 HashMap 和 HashSet 实现的接口规范不同,但它们底层的 Hash 存储机制完全一样,甚至 HashSet 本身就采用 HashMap 来实现的。
    2009年11月26日  
 
Kevin Sutter 评论: Java Persistence API 2.0 更新
在 JPA 专家组 (JSR-317) 即将完成 JPA 2.0 规范之际,本文为您介绍了此最新规范中的一些新概念和特性。它还介绍了如何通过 Apache OpenJPA 项目体验这一新功能 —— 一个开源、健壮、高性能、可扩展的 JPA 规范实现。 (IBM WebSphere Developer Technical Journal)
    2009年11月25日  
 
评论专栏:Scott Johnson: 通过 HTTP 加载 Java 资源包
了解如何加载位于不同 Web 应用程序中的 Java 资源包。在 Java Platform Standard Edition(Java SE)6 之前,JDK 并不支持实现这个功能。但在 Java SE 6 中添加 ResourceBundle.Control 类后,通过扩展 Control 类和添加一些定制代码,加载 “远程” 资源包便成为可能。 (IBM WebSphere Developer Technical Journal)
    2009年11月25日  
 
权威支持: 利用 Memory Dump Diagnostic for Java (MDD4J) 分析内存管理问题
Java 内存转储诊断工具(MDD4J)工具帮助您诊断在 IBM Java 虚拟机(JVM)中运行的应用程序内的内存泄漏和其他内存过度消耗问题。本文介绍了 MDD4J,展示了如何利用其先进的分析引擎和用户界面来窥探 Java 堆,以便了解哪些对象消耗的内存最多。 (IBM WebSphere Developer Technical Journal)
    2009年11月25日  
 
IBM 的 Java 诊断,第 5 部分: 使用 Health Center 优化应用程序
IBM Monitoring and Diagnostic Tools for Java - Health Center 是一个用于监控一个正在运行的 Java 应用程序的工具。它通过图表、曲线图和表全面报告系统健康状况,并就如何修复问题提供建议。Health Center 包含一个开销极低的方法配置程序(profiler)、一个垃圾收集可视化程序和一个锁定配置程序,用于识别争用瓶颈;它还包含一个配置浏览器。了解如何使用这个工具诊断和修复应用程序中的性能、配置和稳定性问题。
    2009年11月24日  
 
Java 技术,IBM 风格: 垃圾收集策略,第 2 部分
本系列的前一期文章介绍了 Java 运行时 5.0 的 IBM 实现中不同的垃圾收集(GC)策略,并讨论了它们的基本特点。在本文中,本系列文章的作者 Mattias Persson 将和 Holly Cummins 一起通过示例介绍一种选择策略的定量方法。他们将介绍在做出选择时需要考虑的因素,如何使用 verbose GC 日志来指导选择,并列举了两个研究案例。
    2009年11月23日  
 
精通 Grails: 使用 Grails 进行单元测试
在本期精通 Grails 中,Scott Davis 向您展示如何利用 Grails 中包含的 GrailsUnitTestCase 和 ControllerUnitTestCase 类的内置模拟功能。
    2009年11月23日  
 
出色的“清洁工具” —— 理解 IBM Java 垃圾收集器,第 3 部分: verbosegc 和命令行参数
在本文中,Sam Borman 回顾了如何解释 verbosegc 以及一些命令行参数的工作原理。他使用例子演示 verbosegc 输出,并描述对 GC 有影响的命令行参数,以及何时使用它们。本文中的信息来自 Java 1.3.1 发行版,但是可以反映 Java 1.2.2 发行版。
    2009年11月23日  
 
出色的 “清洁工具” —— 理解 IBM Java 垃圾收集器,第 2 部分: 垃圾收集
Sam Borman 回顾了垃圾收集的工作原理,并描述了 GC 的三个主要阶段:标记、清理和压缩。他还讨论了并发标记和并行按位(bitwise)清理。本文简要讨论了引用对象、堆扩展和堆收缩。
    2009年11月23日  
 
自动化包开发环境内嵌脚本验证插件的实现
Tivoli 部署管理器的自动化包开发环境(APDE)是一个基于 Eclipse 的自动化工作流开发环境,其缺点是不支持开发过程时的内嵌脚本验证,脚本编程人员很容易犯一些简单却是致命的错误。为了解决这个问题,本文作者为 APDE 开发了一个 Eclipse 插件,提供了内嵌的脚本语法验证的功能。
    2009年11月20日  
 
深入 Java 调试体系,第 4 部分: Java 调试接口(JDI)
JPDA(Java Platform Debugger Architecture) 是 Java 平台调试体系结构的缩写,通过 JPDA 提供的 API,开发人员可以方便灵活的搭建 Java 调试应用程序。JPDA 主要由三个部分组成:Java 虚拟机工具接口(JVMTI),Java 调试线协议(JDWP),以及 Java 调试接口(JDI),本系列将会详细介绍这三个模块的内部细节、通过实例为读者揭开 JPDA 的面纱。本文是该系列的最后一篇,将会着重介绍 Java 调试接口 - JDI,以及如何使用 JDI 编写用户自定义的 Java 调试程序。
    2009年11月19日  
 
developerWorks Java 技术专区:10 年盘点
怀着对 Java 技术专区的极大热情,Jenni Aloi 与每个 Java 开发领域的作者进行了紧密协作,并总共发布了差不多 1000 多篇内容。在 developerWorks 庆祝它的 10 周年纪念日之际,她认为应该感谢一下帮助专区取得成功的作者们。
    2009年11月17日  
 
实战 Groovy: SwingBuilder 和 Twitter API,第 1 部分
在这一期 “实战 Groovy” 中,Scott Davis 要讨论一个令大多数服务器端 Java 开发人员畏惧的主题:Swing。Groovy 的 SwingBuilder 可以让这个强大但复杂的 GUI 框架使用起来简单一些。
    2009年11月17日  
 
Cayenne,开源 ORM 盛宴中的另道佳肴,第 2 部分: 再品小辣椒 - Apache Cayenne 的高级特性
本文是分两部分的系列文章“Cayenne, 开源 ORM 盛宴中的另道佳肴”的第 2 部分,重点介绍 Apache Cayenne 项目的一些高级特性与应用。首先会介绍如何使用 Cayenne 的 Remote Object Persistence (Cayenne ROP) 特性来通过 Web Service 远程访问数据库。之后会介绍一些 Cayenne 中的关于数据库性能优化的概念和技巧。
    2009年11月13日  
 
memcached 和 Grails,第 2 部分:将 memcached 集成到 Grails
James Goodwill 使用一个样例 Grails 应用程序和一个基于 Java 的 memcached 客户端完成了他的分为两个部分的 memcached 和 Grails 集成简介。了解如何将 Spymemcached 集成到您用 Grails 构建的联系人管理应用程序,然后尝试使用 memcached 缓存单独的请求结果。您还将使用第 1 部分介绍的 memcached 客户端命令来测试您的新缓存的效果。
    2009年11月10日  
 
JPA 2.0 中的动态类型安全查询
如果编译器能够对查询执行语法正确性检查,那么对于 Java 对象而言该查询就是类型安全的。Java Persistence API (JPA) 的 2.0 版本引入了 Criteria API,这个 API 首次将类型安全查询引入到 Java 应用程序中,并为在运行时动态地构造查询提供一种机制。本文介绍如何使用 Criteria API 和与之密切相关的 Metamodel API 编写动态的类型安全查询。
    2009年11月9日  
 
eSWT 移动扩展简介,第 1 部分: 使用简单小部件快速构建移动应用程序
随着移动平台变得越来越复杂,移动计算需求将会不断增长。本系列将介绍嵌入式标准小部件工具包(embedded Standard Widget Toolkit,eSWT)。可以使用 eSWT 为各种移动电话开发具有本地外观的 Java 应用程序。本文探索如何使用 eSWT 移动控件,通过样例代码带领您逐步使用 eSWT 移动扩展中的 5 个类。
    2009年11月5日  
 
memcached 和 Grails,第 1 部分:安装和使用 memcached
本文是系列文章的第 1 部分,主要介绍 memcached 和 Grails。作者 James Goodwill 将向您介绍开源解决方案 memcached。本文涵盖的主题包括安装、配置、memcached 客户机命令和评估缓存效率。与介绍通过特定于语言的客户机来使用 memcached 的文章不同,本文主要讨论与 memcached 服务器的直接交互。其目的是为您提供监控 memcahed 实例所需的工具,并让您能够继续阅读本系列的第 2 部分,了解如何将 memcached 集成到 Grails 应用程序中。
    2009年11月5日  
 
Cayenne,开源 ORM 盛宴中的另道佳肴,第 1 部分: 初尝小辣椒 - Apache Cayenne 基本功能介绍
本文是分两部分的系列文章“Cayenne, 开源 ORM 盛宴中的另道佳肴”的第 1 部分,将主要介绍 Apache Cayenne 的一些基础特性与应用,包括如何搭建环境、建立模型以及生成 Database Schema 和 Java 代码。最后,本文通过一个示例介绍了如何使用 Cayenne API 来完成一个简单的数据库操作应用。其中,所使用的 DAO 类和框架结构可以被复制到您自己的应用中。
    2009年11月3日  
 
Java Web 服务: Axis2 中的 JAXB 和 JAX-WS
Apache Axis2 支持各种数据绑定技术,包括官方 Java 标准 JAXB 2.x。Axis2 还支持针对 Web 服务配置的 Java 标准 JAX-WS 2.x,作为其自有的配置技术的替代选择。Dennis Sosnoski 将继续他的 Java Web 服务系列,向您演示如何将这两种 Java 标准用于 Axis2,并讨论 Axis2 对这些标准的当前支持存在哪些限制。
    2009年11月3日  
 
OGNL 语言介绍与实践
OGNL 是 Object-Graph Navigation Language 的缩写, 从语言角度来说:它是一个功能强大的表达式语言,用来获取和设置 Java 对象的属性。 OGNL 在许多的地方都有应用。本文将对 OGNL 进行介绍以及如何使用 OGNL 。
    2009年10月31日  
 
Eclipse 并发编程
Jobs API 被广泛的应用到 Eclipse 平台中,Job 是 Eclipse 运行时重要的组成部分,它可以理解成被平台调用异步运行的代码块,多个 Jobs 可以并发执行。对于基于 Eclipse 平台开发并发应用的开发者来说,Eclipse 提供的 Job 框架很好地替代了 Java 原生的 Thread, 其内在使用了线程池实现,具有更好的伸缩性,更好的性能等。不过问题是,在运行时安全方面,现有的 Eclipse Job 框架并不能保证线程间的安全协作,不能在 Job 运行时检查 Job 创建者的权限。本文所要讨论的就是 Eclipse Job 的运行时安全问题,并提供相应的解决方案。
    2009年10月30日  
 
ICEfaces 和 Google Translate
全球化对我们的生活和文化产生了翻天覆地的影响。其结果是,使用翻译工具来增进各种文化之间的理解已变得日趋重要。各组织都在尝试通过不同的语言、脚本和文化来使用 Web 技术,开发人员搜索能够帮助他们尽可能快地创建有效的应用程序的新技术。幸运的是,JavaServer Faces (JSF) 简化了应用程序开发人员的工作,使他们能够专注于视图,而不需要了解脚本的底层标记。ICEfaces 是一种集成的 Asynchronous JavaScript and XML (Ajax) 应用程序框架。借助该框架,Java Platform, Enterprise Edition (Java EE) 应用程序开发人员能够轻松地使用纯 Java 代码创建和部署瘦客户机、富 Internet 应用程序。本教程描述如何使用带翻译选项的 JSF 来开发 Web 应用程序。
    2009年10月29日  
 
使用实时 Java 进行开发,第 2 部分: 改善服务质量
一些 Java 应用程序未能提供适当的服务质量,尽管实现了其他性能目标,比如平均延迟或总吞吐量。通过引入不受应用程序控制的暂停或中断机制,Java 语言和运行时系统有时可能使应用程序无法满足服务性能指标。本文(本系列的第二部分)解释 JVM 中的延迟和中断的根源,介绍可用于减轻这些问题的技术,使您的应用程序能够交付更加一致的服务质量。
    2009年10月29日  
 
演化架构与紧急设计: 语言、表达性与设计:第 2 部分
发现和积累惯用模式的能力对于紧急设计至关重要。对于设计而言同样十分重要的是代码的表达性。在本 系列文章的第 2 部分中,Neal Ford 将继续讨论表达性和模式的交集,通过惯用模式和正式设计模式阐释这些概念。他用动态语言为 JVM 重构了一些经典的四人组(Gang of Four)模式,以说明表达性更好的语言如何使您看到被透明度不佳的语言遮挡的设计元素。
    2009年10月27日  
 
在 Google App Engine Java 版上构建电子书分享网站
“云计算”是目前热门的技术方向,本文从 Google 的云计算平台 App Engine 入手,简单介绍了 Google 面向 Java 开发人员的云计算平台。从一个实际的电子书分享应用构建出发,讲述了如何在 Google App Engine 平台上构建这个应用程序。
    2009年10月27日  
 
精通 Grails: 创建自定义插件
在这个 “精通 Grails” 系列中,Scott Davis 将向您展示如何创建您自己的 Grails 插件。一旦您了解创建插件有多么简单,您就会明白为什么现在有 250 多个 Grails 插件可用,而且这个数字还在增加。
    2009年10月23日  
 
一个轻量级数据管理与分析平台的实现
在许多行业应用中,需要管理随业务需要不断变化的数据,提供所见即所得的增删改查、图表分析、关联数据计算关系维持等功能。本文给出基于关系数据库更新视图的原理和 JDBC、Applet、Servlet 等 Java 技术的解决方案,并给出关键代码实现。
    2009年10月23日  
 
如何通过 JAVA Security API 来定性 IBM FileNet P8 内容查询和存储的安全
本文简单介绍了 FileNet P8 Content Engine 中的安全管理机制和相关的 API。首先介绍了 FileNet Content Engine 安全机制,主要包括认证和授权。然后介绍了安全相关的 Java API,并且举例说明如何使用 Java API 来进行相关的安全设置。通过本文,读者可以建立起简单的 FileNet P8 中的安全管理概念,可以尝试使用相关 API 来定性内容查询和存储的安全。
    2009年10月22日  
 

Python 作为一种灵活的软件开发语言在当今被广泛使用。在软件开发过程中,有时需要在 Python 项目中利用既有的 Java 代码,已达到节省时间和开发成本的目的。因此,找到一个 Python 代码调用 Java 代码的桥梁是非常有意义的。 JPype 就是这样的一个工具,利用它可以使 Python 程序方便的调用 Java 代码,从而扩充 Python 语言的能力,弥补 Python 语言的不足。 本文介绍了如何利用 JPype 整合 Python 程序和 Java 程序的一些基本方法。
    2009年10月22日  
 
公式系统在电子商务网站中的应用
如何在不间断系统运营的情况下,以最短的实现周期实现业务升级和改造,成为越来越多电子商务系统的追求目标。针对这个目标本文以促销活动为例介绍一种自定义公式系统在电子商务网站中的应用模型,首先介绍一个自定义公式解析模型的完整设计过程;接着将其运用到一个电子商务网站的促销活动中,然后分析公式系统在电子商务网站的促销活动中的应用流程;最后简要分析了公式系统在电子商务系统中其它方面的应用前景。
    2009年10月20日  
 
Java 开发 2.0: 您也可以租用 EC2
在本期 “Java 开发 2.0” 中,Andrew Glover 介绍如何针对 Amazon Elastic Compute Cloud (EC2) 进行开发和部署。了解 EC2 与 Google App Engine 的差异,以及如何使用 Eclipse 插件和简洁的 Groovy 语言在 EC2 上快速地建立和运行简单的 Web 应用程序。
    2009年10月19日  
 
使用实时 Java 进行开发,第 1 部分: 探索实时 Java 的独特功能
实时 Java 融合了使用 Java 语言编程的简单性与必须遵从实时约束的应用程序所需的性能。对 Java 语言的扩展为实时环境提供了传统 Java 运行时环境所不具备的特性。本文是一个 3 部分系列中的第一篇,描述一些特性并解释如何应用它们来在您自己的应用程序中实现实时性能。
    2009年10月16日  
 
使用 DMTF 标准的 Profile 管理 IBM i 用户权限
分布式管理工作组(Distributed Management Task Force,DMTF)发布了一系列通用的管理标准框架,其内容已经覆盖软硬件、网络、存储等多个领域。本文以 IBM i 平台上的用户权限管理为例,演示了如何应用 DMTF 基于角色进行授权的(Role Based Authorization)Profile 来建模用户、角色、权限以及三者之间的关联,以及如何基于 Java 开源开发包 SBLIM(Standards Based Linux Instrumentation for Manageability)构建跨平台管理程序实例。
    2009年10月16日  
 
创建一种声明性 XML UI 语言
用编程代码编写 GUI 常常导致混乱的设计,这反过来导致业务逻辑和 UI 代码之间的混乱。本文探讨如何创建带有配套 Java(TM) 框架的声明性 XML UI 标记集合,以便在运行时解析、构造并最终将已声明的 GUI 组件绑定到业务逻辑。
    2009年10月15日  
 
在 Java 程序中内嵌 Mozilla 浏览器
本文主要包含两个方面的内容:使用 SWT 浏览器部件在 java 代码中内嵌 mozilla 浏览器;使用 JavaXPCOM bridge 定制浏览器功能及与 xulrunner 进行更多交互。
    2009年10月15日  
 
在 IBM Lotus Domino Designer 中使用 Java 构建应用程序
本文旨在帮助那些传统的 LotusScript 开发人员转向 Java 开发。在几乎不具备 Java 知识的情况下,本文可帮助您开始在 IBM Lotus Domino 中进行 Java 应用程序开发。
    2009年10月14日  
 
Apache Mahout 简介
当研究院和企业能获取足够的专项研究预算之后,能从数据和用户输入中学习的智能应用程序将变得更加常见。人们对机器学习技巧(比如说集群、协作筛选和分类)的需求前所未有地增长,无论是查找一大群人的共性还是自动标记海量 Web 内容。Apache Mahout 项目旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout 的创始者 Grant Ingersoll 介绍了机器学习的基本概念,并演示了如何使用 Mahout 来实现文档集群、提出建议和组织内容。
    2009年10月12日  
 
JSF 2.0 Ajax 世界中的 GMaps4JSF
GMaps4JSF 是一个 JavaServer Faces (JSF) mashup 库,它集成了 Google Maps 与 JSF。使用 GMaps4JSF,您只需几个 JSF 标记就可以构造复杂的全景街拍图。您还可以轻松向地图添加几个不同的组件。本文解释了如何在 JSF 2.0 中配置 GMaps4JSF,并包含了 JSF 2.0 Ajax 的简介。通过本文学习如何创建一个使用 GMaps4JSF 和 JSF 2.0 Asynchronous JavaScript 及 XML (Ajax) 的简单 mashup 应用程序。
    2009年10月12日  
 
使用 Java Debug Interface(JDI)调试多线程应用程序
本文对 Java Debug Interface(JDI)及其使用进行了介绍,并通过实现一个多线程分析器的示例应用,演示了如何利用 JDI 开发自己的多线程调试程序。该示例分析器在独立于目标程序的前提下,以单个线程流为单位,帮助追踪记录多线程的执行过程信息。
    2009年10月9日  
 
GWT 应用,第 1 部分: 使用 Google Web Toolkit 实现 places 应用程序
借助 Google Web Toolkit (GWT),您可以使用 Java 语言实现能够在浏览器中运行的富客户端用户界面。在本系列文章中,David Geary 将帮助您迅速掌握最新版本的 GWT 并演示如何实现一个类似于桌面的 Web 应用程序。
    2009年9月29日  
 
基于 Struts 2 开发 Web 应用
本文主要介绍在 IBM 产品平台上开发基于 Struts 2 的 Web 应用。Struts 2 与传统的 Struts 1 已经有了本质区别,例如在 Struts 2 中不再需要 ActionForm,任何 Java Bean 都可以用来捕获 form 表单输入参数等。本文将首先介绍如何利用 Rational Software Architect 7(RSA 7)以及 WebSphere Application Server 6.1(WAS 6.1)搭建 Struts 2 开发环境,然后通过一个实例介绍如何开发 Struts 2 应用。
    2009年9月25日  
 
实战 Groovy: @Delegate 注释
Scott Davis 将继续有关 Groovy 元编程的讨论,这一次他将深入研究 @Delegate 注释,@Delegate 注释模糊了数据类型和行为以及静态和动态类型之间的区别。
    2009年9月24日  
 
Java Web 服务: WS-Security 的细粒度使用
针对 SOAP Web 服务的 WS-Security 是相对的。通过在操作或消息级别配置 WS-Security,可以对所有交换应用适当程度的保护,减少或消除那些不需要完整保护的操作产生的 WS-Security 开销。Dennis Sosnoski 将继续他的 Java Web 服务系列,将通过 Apache Axis2 和 Rampart 探查 Web Services Description Language (WSDL) 中的细粒度 WS-Security。
    2009年9月22日  
 
基于 Java 2 运行时安全模型的线程协作
Java 2 的运行时安全模型是基于策略和堆栈授权的安全模型。Java 使用存取控制器(AccessController)为用户主机上的大部分关键资源(如文件,套接字等)提供运行时保护,并且允许管理员为具体的应用定制安全策略文件。本文将讨论在多线程的环境下,如何使用 Java 提供的安全特性构建线程间安全协作的 Java 应用。
    2009年9月18日  
 
Java Web 服务: WS-Security 的大开销
WS-Security 提供了一些强大的特性来保障 Web 服务应用程序的安全,并且它们是许多应用程序的基本特性。但是,这些特性是以高昂的性能和消息开销为代价的。Dennis Sosnoski 将继续在他的 Java Web 服务专栏系列中讨论 WS-Security 或 WS-SecureConversation 的使用对 Axis2 性能造成的影响,并且他将论述何时更合适使用较为简单的(以及性能较好的)HTTPS-secured 连接。
    2009年9月15日  
 
使用 Apache Lucene 搜索文本
本文将探讨 Apache Lucene —— 性能卓越、功能全面的文本搜索引擎库。我们将学习 Lucene 架构及其核心 API。学习如何使用 Lucene 进行跨平台全文本搜索、建立索引、显示结果,以及如何扩展搜索。
    2009年9月14日  
 
使用 JPA 和 Hibernate 实现组合键
如今,面向对象映射(ORM)工具在全球得到了广泛应用和部署,您通常不必为组合键这样的难题绞尽脑汁。一般情况下,设计键时可选择简单的整数,放心地将问题留给工具处理。但有时会遇到一些特殊的情况,需要使用组合键,此时就需要一种相应的战略。本文介绍的技巧使您能够使用 JPA 和 Hibernate 实现组合键。
    2009年9月14日  
 
Google App Engine for Java,第 3 部分: 持久性和关系
在企业环境中,数据持久性是交付可伸缩应用程序的基础。Rick Hightower 在他撰写的有关 Google App Engine for Java 的系列文章的最后一篇中,介绍了 App Engine 当前基于 Java 的持久性框架。让我们学习一些基础知识,了解为什么当前预览版中的 Java 持久性还未到发布的最佳时间,同时获得一个良好的演示,看看您如何在 App Engine for Java 应用程序中保存数据。注意,您将需要启动并运行来自第 2 部分的联系人管理应用程序,在此过程中学习如何使用 JDO API 保存、查询、更新和删除 Contact 对象。
    2009年9月14日  
 
使用 java 开源资源实现通用可靠的下载组件
在实施软件自动化测试时,我们一般首先需要得到一个完整的软件的待测版本。待测软件可以通过 FTP 服务, CIFS/SMB,SAMBA 服务等多种形式发布,如何确保自动化测试工具能完整的取得待测软件是我们要解决的一个问题。本文探讨了一种使用 java 开源软件包实现可扩展和可靠的下载工具的解决方案。
    2009年9月10日  
 
演化架构与紧急设计: 语言、表达性与设计:第 1 部分
发现和积累惯用模式的能力对于紧急设计至关重要。对于设计而言同样十分重要的是代码的表达性。在本系列文章中,Neal Ford 分两部分介绍了表达性和模式的交集,通过惯用模式和正式设计模式阐释了这些概念。他用动态语言为 JVM 重构了一些经典的四人组(Gang of Four)模式,以说明表达性更好的语言如何使您看到被透明度不佳的语言遮挡的设计元素。
    2009年9月10日  
 
Java 开发 2.0: 使用 Google App Engine
开源解决方案和外来基础设施改变了 Java 开发的特征,使您能够以更低的成本、更快的速度交付更好的软件。Andrew Glover 发明了 Java 开发 2.0 这一术语,使用它概括了所有这些现象体现出来的强大力量。他推出了一个全新的系列,主要介绍有关 Java 开发 2.0 的工具和技术。本系列的第一期文章将宣布 Java 开发 2.0 的到来,并解释了如何使用 Google 的 App Engine for Java 迅速实现这些概念。
    2009年9月9日  
 
推荐读物列表: Java EE 与 WebSphere Application Server
这个读物列表是 IBM Software Services for WebSphere 为客户、顾问和其他技术专家收集整理的,通过阅读该列表包含的关键读物了解 Java Enterprise Edition (Java EE) 和 IBM WebSphere Application Server 的使用。本文针对 WebSphere Application Server V7.0 进行了更新。
    2009年9月7日  
 
使用 JAX-RS 简化 REST 应用开发
本文将详细介绍 Java EE 6 中所引入的对 JSR-311 (JAX-RS : Java API for RESTful Web Services) 的支持,并通过一个完整的示例应用程序展示 JAX-RS 关键的设计细节以及与 JPA 的结合使用。
    2009年9月7日  
 
技巧: 从 JBoss 4 迁移到 JBoss 5
想要将您的 EJB 代码迁移到 JBoss 5 吗?不能使代码部署和运行吗?如果是这样,这个技巧就是为您准备的。或者,您是一个 JBoss 5 新手但是您想感受一下 EJB 3 环境?这个技巧详细介绍了在 JBoss5 上构建、部署和运行 EJB3 代码需要的 XML 部署文件。
    2009年9月3日  
 
深入 Java 调试体系,第 3 部分: JDWP 协议及实现
JPDA(Java Platform Debugger Architecture) 是 Java 平台调试体系结构的缩写,通过 JPDA 提供的 API,开发人员可以方便灵活的搭建 Java 调试应用程序。JPDA 主要由三个部分组成:Java 虚拟机工具接口(JVMTI),Java 调试线协议(JDWP),以及 Java 调试接口(JDI),本系列将会详细介绍这三个模块的内部细节、通过实例为读者揭开 JPDA 的面纱。本文是该系列的第三篇,将会详细介绍 JDWP 的协议细节,并通过实际调试中的例子展开揭示 JDWP 的实现机制。
    2009年9月3日  
 
Google App Engine for Java: 第 2 部分:构建杀手级应用程序
诸如 Google App Engine for Java 这样的云平台的关键在于能够设计、构建和部署专业级的应用程序 —— 可以非常容易地进行伸缩。在这个包含三部分的 Google App Engine for Java 系列文章第二篇中,Rick Hightower 将通过一个分步指南,使用 Google App Engine for Java 来编写和部署一个简单的联系人管理应用程序,从而超越第一部分中提供的现成示例。
    2009年8月31日  
 
Google App Engine for Java: 第 1 部分:运转起来!
Google App Engine 曾经一度是 Python 开发人员的专利。那是一段黑暗的岁月。Google Inc. 在 2009 年 4 月向 Java 开发人员开放了其云计算平台。在这个共分三部分的系列文章中,Java 技术作家兼培训师 Rick Hightower 将带领您了解这个可靠、健壮、有趣的平台,并将它用于基于 Java 的开发。在本文中,您将了解到为什么 Google App Engine for Java 将成为您构建高度可伸缩的杀手级应用程序的开发平台,然后开始使用 Google Plugin for Eclipse 构建两个示例应用程序:一个基于 Google Web Toolkit (GWT),另一个基于 Java Servlet API。您将了解到 Google App Engine for Java 带来的巨大改变,包括从头构建应用程序以及将它部署到高达 5 百万个视图。(这仅仅是免费版提供的功能)。
    2009年8月31日  
 
使用 Struts 2 开发 RESTful 服务
从 V2.1 开始,Struts 2 开始提供 Convention 插件,它允许根据“约定”来搜索 Action,以及管理 Action 和 Result 的映射。另外,Struts 2.1 还提供了 REST 插件,使 Struts 2 可以支持 Rails 风格的 URL,以对外提供 REST 风格的资源服务。本文作者通过代码示例演示了这些特性。
    2009年8月28日  
 
面向 Java 开发人员的 Scala 指南: 增强 Scitter 库
抽象地谈论 Scala 的确有趣,然而一旦将其付诸实践,就会发现将它作为 “玩具” 与在工作中使用它的区别。Scala 狂热者 Ted Neward 撰写了一篇对 Scitter 的介绍,Scitter 是一个用于访问 Twitter 的 Scala 库,本文是其后续篇,在本文中,Ted Neward 为这个客户机库提供了一组更有趣也更有用的特性。
    2009年8月27日  
 
精通 Grails: 了解插件
在这一期的精通 Grails 中,Scott Davis 将向您展示 Grails 插件的精彩世界。向应用程序中添加新功能将是一件再简单不过的事情。您将领略插件是如何具有如此魔力的,您还会在 Blogito 应用程序中使用一个插件来实现强大的搜索功能。
    2009年8月24日  
 
面向 Java 开发人员的 Scala 指南: Scala + Twitter = Scitter
抽象地讨论 Scala 是一件有趣的事情,但对于本专栏的大多数读者而言,需要通过实践才能理解理论和应用之间的区别。在本期文章中,Ted Neward 将使用 Scala 为客户构建基础框架,用于访问流行的微型博客系统 Twitter。
    2009年8月20日  
 
Java Web 服务: Axis2 WS-Security 签名和加密
通过本文,您可以获得有关公开密匙加密基本原理的介绍,然后了解 WS-Security 如何通过结合公开-私有密匙对和秘密密匙,将这些原理应用于 SOAP 消息签名和加密。Dennis Sosnoski 将继续他的 Java Web 服务系列,本期文章讨论 WS-Security 和 WS-SecurityPolicy 签名和加密特性,并提供了使用 Axis2 和 Rampart 的示例代码。
    2009年8月17日  
 
应用级集群系统的设计
集群系统在企业 IT 应用中的部署越来越广泛,基于某个具体业务的应用级集群服务系统也越来越得到重视,围绕这个主题,本文简要地探讨了应用级集群一般性的设计思路,重点针对分层业务资源、业务资源监测器、负载均衡器和故障转移管理器等四部分。
    2009年8月13日  
 
面向 Java 开发人员的 Scala 指南: 深入了解 Scala 并发性
主要芯片厂商已经开始提供同时运行两个或更多个核的芯片(虽然不一定更快),在这种情况下,并发性很快成为每个软件开发人员都关心的热门主题。本文延续 Ted Neward 的另一篇文章“深入了解 Scala 并发性”。在本文中,Ted Neward 通过研究 actor 深入讨论并发性这个热门主题,actor 是通过传递消息相互协作的执行实体。
    2009年8月13日  
 
DB2 Performance Expert Extended Insight Feature 入门,第 1 部分: 安装和配置
IBM DB2 Performance Expert Extended Insight Feature 扩展了 DB2 Performance Expert 提供的功能,提供针对 Java 应用程序的全程数据库监视,为 IBM WebSphere Application Server 中运行的应用程序提供更多功能。可以通过这个特性解决软件组合中任何地方发生的性能问题。本教程是分为两部分的系列的第 1 部分,本系列帮助您了解 DB2 Performance Expert Extended Insight Feature。在第 1 部分中,您将学习如何安装、配置和检验 DB2 Performance Expert Extended Insight Feature。
    2009年8月10日  
 
事务策略: 高性能策略
在本系列的最后一部分中,事务策略系列作者 Mark Richards 介绍了如何在 Java 平台上为高性能应用程序实现事务策略。您的应用程序可以在保持快速处理速度的同时仍然支持一定程度的数据完整性和一致性 —— 但您需要知道如何折衷。
    2009年8月10日  
 
演化架构与紧急设计: 通过指标进行紧急设计
软件指标可以帮助您寻找代码中隐藏的设计元素,让它们能够成为惯用模式。这一期的“演化架构与紧急设计”讲解如何使用指标和可视化发现被复杂性掩盖的重要代码元素。
    2009年8月6日  
 
将 Flex 集成到 Java EE 应用程序的最佳实践
传统的 Java EE 应用程序通常使用某种 MVC 框架(例如,Struts)作为前端用户界面,随着 Flex 的兴起,基于 RIA 的客户端能够给用户带来更酷的界面,更短的响应时间,以及更接近于桌面应用程序的体验。本文将讲述如何将 Flex 集成至一个现有的 Java EE 应用程序中,以及如何应用最佳实践高效率地并行开发 Java EE 和 Flex。
    2009年8月5日  
 
JSF 2 简介,第 3 部分: 事件处理、JavaScript 和 Ajax
JavaServer Faces (JSF) 2 专家组成员 David Geary 将在这一期文章中结束这部有关 JSF 2 新特性的系列文章(共 3 部分)。本文介绍如何使用该框架的新事件模型和内置 Ajax 支持来增强可重用组件的功能。
    2009年8月3日  
 
使用 Ruby 实现业务驱动的 Web 应用程序测试
自动化的 Web 集成测试对于保证软件质量是很有效的,但是编写和维护这些测试用例却不是一件容易的事。本文介绍的是一种利用 Ruby 实现业务驱动的集成测试方法,通过该方法,读者能够脱离复杂的技术细节,把注意力集中到业务逻辑的测试中来。
    2009年7月31日  
 
CIM 事件统一自动化测试框架
公共信息模型(Common Information Model,CIM)提供事件 (Indication) 通知机制,客户机向 CIM 订阅事件的通知,当订阅事件发生时,所有订阅该事件的客户机会收到相应消息。目前的测试模式为:事件订阅和事件触发分别由不同的应用程序完成,需要测试人员人为订阅、触发、检验通知机制;并且不同的 CIM 产品需要构建各自的测试程序。代码可重用性差,无法实现测试自动化。本文将向你介绍一种集订阅、触发、检验于一体的自动化测试框架,该框架适用于所有支持 CIM Indication 机制的产品。
    2009年7月31日  
 
事务策略: 高并发策略
事务策略系列文章的作者 Mark Richards 将讨论如何在 Java 平台中为具有高吞吐量和高用户并发性需求的应用程序实现事务策略。理解如何进行折衷将帮助您确保高水平的数据完整性和一致性,并减少随后开发流程中的重构工作。
    2009年7月31日  
 
JavaScript EE,第 3 部分: 结合使用 Java Scripting API 和 JSP
在本系列文章的前两个部分中,我们介绍了如何在服务器上运行 JavaScript 文件,以及如何使用 Ajax 调用远程 JavaScript 函数。本文介绍如何使用服务器端 JavaScript 代码和 JavaServer Pages (JSP) 技术,以及如何构建在 Web 浏览器中禁用 JavaScript 时仍然能使用的 Asynchronous JavaScript and XML (Ajax) 用户界面。本文的样例代码包含一个小型 JSP 标记库,您可以在自己的应用程序和动态 Web 表单中重用它们。Web 表单可以使用能够在 Web 服务器和 Web 浏览器中执行的一段 JavaScript 代码生成。
    2009年7月30日  
 
了解 JUnit 核心类、接口及生命周期
Junit 从问世至今已有 12 年的历史,期间功能不断完善,用户逐渐扩大,已经成为 Java 软件开发中应用最为广泛的测试框架。本文着重介绍 JUnit 的核心接口、核心类以及 TestCase 的生命周期,以便读者从架构层面掌握这个工具。
    2009年7月29日  
 
使用 Java Native Interface 的最佳实践
Java 本机接口(Java Native Interface,JNI)是一个标准的 Java API,它支持将 Java 代码与使用其他编程语言编写的代码相集成。如果您希望利用已有的代码资源,那么可以使用 JNI 作为您工具包中的关键组件 —— 比如在面向服务架构(SOA)和基于云的系统中。但是,如果在使用时未注意某些事项,则 JNI 会迅速导致应用程序性能低下且不稳定。本文将确定 10 大 JNI 编程缺陷,提供避免这些缺陷的最佳实践,并介绍可用于实现这些实践的工具。
    2009年7月27日  
 
全球化 Eclipse RCP 应用程序
Eclipse Rich Client Platform (RCP) 逐渐在软件开发方面获得了广泛的认可。对于跨国公司来说,为世界范围内的客户交付支持多语言的软件变得越来越重要。通过本文,您可以学习到如何在 RCP 应用程序中全球化用户界面(UI)元素,包括窗口、菜单、工具栏、对话框、欢迎页面、闪屏和标准 Eclipse UI 元素。样例应用程序 Hello World 将向您演示整个流程。
    2009年7月27日  
 
事务策略: 客户端编排策略
有时,应用程序的表示层必须处理多个 API 层方法调用之间的协调,以完成单个事务工作单元。在本文中,事务策略系列作者 Mark Richards 将讨论客户端编排(Client Orchestration)事务策略,并阐述如何在 Java 平台中实现它。
    2009年7月23日  
 
使用 Java 实现 Comet 风格的 Web 应用
探索 Comet 开发的不同实现。看看 Jetty 和 Tomcat 之类的流行 Java Web 服务器如何支持 Comet 应用程序,并了解如何为不同的服务器编程。最后,了解 Java 中有关 Comet 的标准化建议,这些建议是即将到来的 Servlet 3.0 和 JavaEE 6 规范的一部分。
    2009年7月22日  
 
演化架构与紧急设计: 对设计进行重构
本系列的早期文章讨论了单元测试如何引导您实现更好的设计。但是如果您已经具备大量的代码,那么如何从代码中发现隐藏的设计元素?上一期文章讨论了为您的代码构建结构化目标。在本期文章中,作者 Neal Ford 进一步拓展了这些主题,介绍了可用于重构并实现紧急设计的各种技术。
    2009年7月21日  
 
实战 Groovy: 使用闭包、ExpandoMetaClass 和类别进行元编程
进入到 Groovy 风格的元编程世界。在运行时向类动态添加方法的能力 —— 甚至 Java 类以及 final Java 类 —— 强大到令人难以置信。不管是用于生产代码、单元测试或介于两者之间的任何内容,即使是最缺乏热情的 Java 开发人员也会对 Groovy 的元编程能力产生兴趣。
    2009年7月16日  
 
事务策略: 模型和策略概述
混淆事务模型与事务策略是一个常见的错误。本系列关于事务策略的第二篇文章将概述 Java 平台支持的三种事务模型,并介绍使用这些模型的四种主要事务策略。通过使用 Spring Framework 和 Enterprise JavaBeans (EJB) 3.0 规范中的示例,Mark Richards 将解释事务模型的运行原理以及它们如何形成开发各种事务策略(从基本的事务处理到高速事务处理系统)的基础。
    2009年7月14日  
 
用 Dojo 1.x 开发小部件
学习使用 Dojo JavaScript 工具箱开发 HTML 小部件的基础知识。本文为您提供了一个简介,此外,还给出了几个例子为开发过程提供帮助,以简单的示例小部件开始,随后是复杂一些的小部件,同时还突出介绍了在开发过程中可能遇到的一些常见问题。
    2009年7月13日  
 
如何聪明地使用锁
锁(lock)作为用于保护临界区(critical section)的一种机制,被广泛应用在多线程程序中。无论是 Java 自身带有的 synchronized 关键字,还是 java.util.concurrent 包中的 ReentrantLock 和 ReentrantReadWriteLock,都是多线程应用开发人员手中强有力的工具。
    2009年7月10日  
 
面向 Java 开发人员的 Scala 指南: 深入了解 Scala 并发性
对于许多(如果不是大多数)Java 程序员来说,Scala 的吸引力在于处理并发性以及编写线程安全的代码时非常轻松。在本期文章中,Ted Neward 将开始深入研究 Scala 语言及环境所提供的各种并发特性和库。
    2009年7月10日  
 
精通 Grails: 文件上传和 Atom 联合
在这一期的精通 Grails 中,Scott Davis 展示如何将文件上传到 Grails 应用程序,并设置一个 Atom syndication feed。完成最后这些部分之后,Blogito 便成为一个完整的博客服务器。
    2009年7月6日  
 
使用 Spring,JSF,EJB3 设计企业应用程序
在本文中,作者使用 Eclipse 开发了一个简单的应用,演示了使用 Spring 集成 Java EE 5 核心框架 - EJB 3.0 和 JSF 1.2 的过程。您将看到,Spring 使得访问和实现 EJB 更加方便。
    2009年7月3日  
 
构建启用了 Ajax 的 JSP TagLib 控件,第 3 部分: 更新面板和弹出对话框控件
在本文中,构建可用于业务应用程序的 Asynchronous JavaScript + XML(Ajax)控件。这些基于 JavaServer Pages (JSP) TagLib 的可配置控件利用了 JavaScript Serialized Object Notation (JSON)、JavaScript 脚本语言及 Cascading Style Sheets(CSS)。由于它们是标准的 JSP TagLib 控件,您可以将其简单地置于任何应用程序中,从而提供更直观、响应性更好的用户界面。
    2009年7月2日  
 
Java Web 服务: Axis2 WS-Security 基础
了解如何将 Rampart 安全模块添加到 Apache Axis2 并开始在 Web 服务中使用 WS-Security 特性。Dennis Sosnoski 重新开始撰写 Java Web 服务系列文章并关注 Axis2 中的 WS-Security 和 WS-SecurityPolicy 的使用。第一篇文章关注 UsernameToken。本系列后续文章将深入研究使用 Axis2 和 Rampart 实现的 WS-Security 和 WS-SecurityPolicy。
    2009年6月30日  
 
GWT-Ext 体验之旅,第 4 部分: 体验拖拽和通信
GWT-Ext 是基于 Google Web Toolkit(GWT)和 ExtJs 的功能强大的网页开发控件库。它非常适用于进行纯 Java 语言的富 Internet 应用的快速开发。本系列文章将详细讲解 GWT-Ext 的基本结构和功能特点,并通过代码示例来演示该技术的具体实现。本文是该系列的最后一部分,将体验拖拽的效果,了解常用的两种拖拽方式和一些经验总结。在对通信的介绍中,本文还将对同步通信和异步通信进行详细介绍。
    2009年6月30日  
 
Java 实现 POS 打印机无驱打印
Java 对硬件的控制一直以来都不是其强项,特别是打印,Java 很难实现对 POS 打印机的直接控制,并判断打印是否成功。本文将探讨一种方法,讲述如何使用 Java 技术与网口的 POS 打印机连接,通过 Socket 技术直接将爱普生指令写入打印机端口,打印出相应的内容或者条形码,并实现字体的放大,打印完毕自动走纸等功能。
    2009年6月29日  
 
JSF 2 简介,第 2 部分: 模板及复合组件
模板和复合组件是 JavaServer Faces (JSF) 2 的两个功能强大的特性,借助这两个特性,您就可以实现易于修改和扩展的用户界面。在本文 —— 共三部分的系列文章的第 2 部分 —— 中,JSF 2 专家组成员 David Geary 将向您展示如何在您的 Web 应用程序中利用模板和复合组件。
    2009年6月25日  
 
实战 Groovy: 构建和解析 XML
通过本文,您将了解使用 Groovy 分解 XML 是多么地容易。在本期的实战 Groovy 中,作者 Scott Davis 演示了无论您是使用 MarkupBuilder 和 StreamingMarkupBuilder 创建 XML,还是使用 XmlParser 和 XmlSlurper 解析 XML,Groovy 都提供了一系列用于处理这类流行数据格式的工具。
    2009年6月23日  
 
全面探索 FreeMarker 模版引擎的扩展性
本文全面介绍了在 Java 语言中功能十分强大的模版引擎 — FreeMarker,以及对 FreeMarker 的可扩展性进行了全面探索。
    2009年6月19日  
 
精通 Grails: 身份验证和授权
Grails 提供了组成安全 Web 应用程序所需的所有基本构建模块,包括从简单的登录基础设施到基于角色的授权等各种组件,在本期的精通 Grails 中,Scott Davis 帮助您通过动手操作保护 Grails 应用程序。您还将了解一些插件,可以帮助您以不同的方式扩展应用程序的安全功能。
    2009年6月18日  
 
JSF 2 简介,第 1 部分: 流线化 Web 应用程序开发
随着 2.0 版本的发布,JavaServer Faces (JSF) 现在可以轻松地实现健壮的、Ajax 风格的 Web 应用程序。本文是共三部分的系列文章的开篇,JSF 2.0 专家组成员 David Geary 将展示如何利用 JSF 2 中的新特性。在这期文章中,您将了解到如何使用 JSF 2 流线化开发,您将使用注释和约定代替 XML 配置,简化导航,并轻松访问资源。并且您将看到如何在您的 JSF 应用程序中使用 Groovy。
    2009年6月15日  
 
联合使用 Java 的 NamespaceContext 对象和 XPath
如果想要在 XPath 表达式中使用名称空间,必须提供对此名称空间 URI 所用前缀的链接。本文介绍了向名称空间映射提供前缀的三种不同方式。本文亦包含了示例代码以方便您编写自己的 NamespaceContext。
    2009年6月15日  
 
JavaScript EE,第 2 部分: 用 Ajax 调用远程 JavaScript 函数
在本系列的第 1 部分中,您学习了如何在 Asynchronous JavaScript and XML(Ajax)和 Java Platform, Enterprise Edition(Java EE)应用程序中使用 javax.script API。本文将展示如何为同时在服务器和客户机上使用 JavaScript 的 Web 应用程序实现远程过程调用(Remote Procedure Call,RPC)机制。您还将学习一些有趣的技巧,例如用 JavaScript 实现 Java 接口、构建 XMLHttpRequest 包装器、使 Ajax 调试更加容易以及使用 JSP 标记文件生成 JavaScript 代码。
    2009年6月15日  
 
演化架构与紧急设计: 组合方法和 SLAP
如何在陈旧的代码库中找出隐藏的设计?本文讨论两种对于代码结构很重要的模式:组合方法和单一抽象层。对代码应用这些原则有助于找到以前隐藏的可重用资产,有助于把现有的代码抽象为成熟的框架。
    2009年6月12日  
 
Java 后期诊断,第 1 部分: JSR 326 和 Apache Kato 简介
Java 应用程序出现故障时生成的工件可以帮助您分析故障的根源。Java Community Process 正在开发一个标准 API 来帮助执行后期分析,正在开发的 Apache Kato 项目将为此 API 生成参考实现和工具。本文是本系列文章的第 1 部分,主要介绍 Post mortem JVM Diagnostics API (JSR 326) 并概述 Kato 如何帮助您利用它。第 2 部分将更加深入地探索后期分析场景。
    2009年6月9日  
 
实战 Groovy: for each 剖析
在这一期的实战 Groovy 中,Scott Davis 提出了一组非常好的遍历方法,这些方法可以遍历数组、列表、文件、URL 以及很多其它内容。最令人印象深刻的是,Groovy 提供了一种一致的机制来遍历所有这些集合和其它内容。
    2009年6月5日  
 
GWT-Ext 体验之旅,第 3 部分: 体验布局和树
在本文中,我们将体验各种布局管理器的效果,了解我们常用的布局管理器的编程方式和一些经验总结。在对树的介绍中,我们将从树的同步和异步方式的初始化到树的一些特性进行详细介绍。
    2009年6月5日  
 
事务策略: API 层策略
对于维护数据的一致性和完整性而言,有效并且健壮的事务策略至关重要。API Layer 事务策略易于实现,并且非常适合用于大部分业务应用程序。事务策略系列文章的作者 Mark Richards 借助 Enterprise JavaBeans (EJB) 3.0 规范的示例,解释了事务策略的含义,以及如何在 Java 平台上实现它。
    2009年6月2日  
 
XML:GWT 与 PHP 之间的桥梁
Google Web Toolkit(GWT)应用程序除了以传统的 Java 方式连接到 servlet 外,还可以使用 PHP Web 服务发送和接收 XML 格式的数据。您将探索以 Java 和 PHP 语言生成和处理 XML 文档的方法。
    2009年6月1日  
 
分析 JUnit 框架源代码
本文细致地描述了 JUnit 的代码实现,在展示代码流程 UML 图的基础上,详细分析 JUnit 的内部实现代码的功能与机制,并在涉及相关设计模式的地方结合代码予以说明。另外,分析过程还涉及 Reflection 等 Java 语言的高级特征。
    2009年5月31日  
 
developerWorks 图书频道: 西游记、设计模式与 IBM WebSphere Portal 应用开发,第 7 章
本书借助《西游记》中众多耳熟能详的小故事,以借喻的手法阐释了《设计模式》一书中所阐述的 23 个设计模式的精髓。同时还提供了详细的 Java Portlet 规范 1.0 的中文译本供读者学习参考,并指导用户基于 IBM WebSphere Portal 开发功能丰富多样的 Portal 应用,使读者在熟悉 IBM WebSphere Portal 应用开发的同时,进一步理解设计模式。
    2009年5月26日  
 
developerWorks 图书频道: 西游记、设计模式与 IBM WebSphere Portal 应用开发,第 4 章
本书借助《西游记》中众多耳熟能详的小故事,以借喻的手法阐释了《设计模式》一书中所阐述的 23 个设计模式的精髓。同时还提供了详细的 Java Portlet 规范 1.0 的中文译本供读者学习参考,并指导用户基于 IBM WebSphere Portal 开发功能丰富多样的 Portal 应用,使读者在熟悉 IBM WebSphere Portal 应用开发的同时,进一步理解设计模式。
    2009年5月26日  
 
developerWorks 图书频道: 西游记、设计模式与 IBM WebSphere Portal 应用开发,第 3 章
本书借助《西游记》中众多耳熟能详的小故事,以借喻的手法阐释了《设计模式》一书中所阐述的 23 个设计模式的精髓。同时还提供了详细的 Java Portlet 规范 1.0 的中文译本供读者学习参考,并指导用户基于 IBM WebSphere Portal 开发功能丰富多样的 Portal 应用,使读者在熟悉 IBM WebSphere Portal 应用开发的同时,进一步理解设计模式。
    2009年5月26日  
 
编写 JSF 自定义复合组件的技巧和窍门
本文介绍开发 JavaServer Faces(JSF)自定义复合组件的新思路,提供如何快速开发可重用 JSF 组件的技巧,而不用像传统方式那样自己实现渲染器 (renderer)、状态管理和事件监听器。本文提供的原则和技术也对一般的 JSF 开发很有帮助。
    2009年5月25日  
 
GWT-Ext 体验之旅,第 2 部分: 体验 Panel 和 Window
GWT-Ext 是基于 Google Web Toolkit(GWT)和 ExtJs 的功能强大的网页开发控件库。它非常适用于进行纯 Java 语言的富 Internet 应用的快速开发。本系列文章将详细讲解 GWT-Ext 的基本结构和功能特点,并通过代码示例来演示该技术的具体实现。本文是该系列的第 2 部分,将介绍非常重要的控件 Pannel,它是很多其它控件的基础容器。
    2009年5月22日  
 
使用 EasyMock 更轻松地进行测试
在本文中,您将与 Elliotte Rusty Harold 一起研究如何通过 mock 对象(更具体地说,是使用 EasyMock 框架)轻松地完成一些困难的单元测试。这个开放源码库可以帮助您节省时间,并让 mock 对象代码更加简洁与清晰。
    2009年5月18日  
 
GWT-Ext 体验之旅,第 1 部分: GWT-Ext 入门
GWT-Ext 是基于 Google Web Toolkit(GWT)和 ExtJs 的功能强大的网页开发控件库。它非常适用于进行纯 Java 语言的富 Internet 应用的快速开发。本系列文章将详细讲解 GWT-Ext 的基本结构和功能特点,并通过代码示例来演示该技术的具体实现。本文是该系列的第一部分,将带领您快速入门 GWT-Ext,并演示如何快速搭建 GWT-Ext 的开发环境。
    2009年5月15日  
 
developerWorks 图书频道: 全球化软件开发最佳实践,第 6 章:Java Web国际化开发
本书是介绍全球化基本体系结构、技术和方法的经典力作。本章介绍了介绍国际化软件体系结构的特点及组成要素,包括单一可执行体、区域模型、多语言输入/输出和本地化等。
    2009年5月14日  
 
developerWorks 图书频道: 全球化软件开发最佳实践,第 5 章:Java SE 国际化开发
本书是介绍全球化基本体系结构、技术和方法的经典力作。本章介绍了介绍国际化软件体系结构的特点及组成要素,包括单一可执行体、区域模型、多语言输入/输出和本地化等。
    2009年5月14日  
 
developerWorks 图书频道: 全球化软件开发最佳实践,第 4 章:全球化软件体系结构
本书是介绍全球化基本体系结构、技术和方法的经典力作。本章介绍了介绍国际化软件体系结构的特点及组成要素,包括单一可执行体、区域模型、多语言输入/输出和本地化等。
    2009年5月14日  
 
内存详解
Java 堆耗尽并不是造成 java.lang.OutOfMemoryError 的惟一原因。如果本机内存耗尽,则会发生普通调试技巧无法解决的 OutOfMemoryError。本文解释什么是本机内存,Java 运行时如何使用它,它被耗尽时会出现什么情况,以及如何在 Windows 和 Linux 上调试本机 OutOfMemoryError。针对 AIX 系统的相同主题将在另一篇类似的文章中介绍。
    2009年5月11日  
 
内存详解
Java 堆耗尽并不是造成 java.lang.OutOfMemoryError 的惟一原因。如果本机内存耗尽,则会发生普通调试技巧无法解决的 OutOfMemoryError。本文将讨论本机内存的概念,Java 运行时如何使用它,它被耗尽时会出现什么情况,以及如何在 AIX 上调试本机 OutOfMemoryError。针对 Linux 和 Windows 系统的相同主题将在另一篇同类文章中介绍。
    2009年5月11日  
 
演化架构与紧急设计: 测试驱动设计,第 2 部分
测试只是测试驱动开发(TDD)的意外结果之一;如果正确地应用,TDD 能够改进代码的整体设计。“演化架构与紧急设计” 系列的这一期文章将介绍一个进一步扩展的示例,演示如何根据测试中显现的关注点进行设计。
    2009年5月8日  
 
使用 Amazon S3 云服务轻松实现存储
Amazon Simple Storage Service (S3) 是一个公开的服务,Web 应用程序开发人员可以使用它存储数字资产,包括图片、视频、音乐和文档。 S3 提供一个 RESTful API 以编程的方式实现与该服务的交互。通过本文,您将了解如何使用开源的 JetS3t 库利用 Amazon 的 S3 云服务存储和检索数据。
    2009年5月4日  
 
编写自定义的 Velocity 指令
Velocity 是一个高效、简洁的 Java 模板引擎,而且有很好的可扩展性,这使之特别适合在 Web 项目中使用。本文通过一个实际应用例子对 Velocity 的模板语言中的指令系统进行了介绍,并演示了如何通过编写自定义的指令来扩展 Velocity 的功能。
    2009年4月30日  
 
精通 Grails: 用定制 URI 和 codec 优化 Grails 中的 URI
在精通 Grails 系列专栏的这期文章中,Scott Davis 为您展示了如何定制 Grails 为 Web 页面所生成的标准 Uniform Resource Identifier (URI),从而在 URI 内可以用描述性更好的标题代替主键,这能够让用户以更容易记住且更有意义的途径来获得其寻找的资源。
    2009年4月28日  
 
利用 WAS CE v2.1 创建基于 JMS 的应用
Java Message Service(JMS)旨在统一各种 MOM 系统接口的规范。WAS CE 是基于开源 Java EE 应用服务器 Geronimo 的产品。WAS CE 支持 EJB 及 Web 服务,同时还支持 Java EE 的消息中间件接口规范--JMS。本文将对在 WAS CE 中,开发基于 JMS 的 Java EE 应用进行介绍。
    2009年4月27日  
 
面向复杂软件的 Build 自动验证解决方案
构建(Build)验证只对软件的主干功能进行初步测试,具有频率高和重复性强的特点,所以各软件产品的 Build 验证都力图实现 100% 自动化。本文给出了一种在不影响现有远程 Build 服务器的前提下,实现面向复杂软件的 Build 自动验证的解决方案,该方案具有一定的普遍性意义。
    2009年4月24日  
 
在 IBM WebSphere DataStage 中使用 Java Pack 组件实现用户自定义数据转换逻辑
IBM WebSphere DataStage (最新产品已更名为 InfoSphere DataStage)是一个高效的数据集成和数据整合工具,向开发人员提供了丰富的数据转换功能。本文着重介绍了如何使用 WebSphere DataStage 中提供的 Java Pack 组件来实现用户自定义的数据转换逻辑,并且以一个 Server Job 为实例向读者讲解了使用 Java Pack 组件进行开发的整个过程。
    2009年4月23日  
 
JiBX 1.2,第 2 部分: 从 XML 模式到 Java 代码
通过 XML 模式定义生成代码被广泛用于各种类型的 XML 数据交换,包括 Web 服务在内。大多数数据绑定工具都是根据模式严格地组织生成的代码,甚至根据可能与应用程序不相关的模式方面。JiBX 1.2 将通过更好地解析模式和消除不必要的类混乱来生成更干净的代码。它还将为生成的代码提供大量自定义,包括轻松地消除不必要的模式组件的自定义。
    2009年4月21日  
 
在表示层上使用 XQuery
许多 Web 应用程序使用模型-视图-控制器(Model-View-Controller,MVC)模式来分离这 3 个关注点。将 XQuery 用于表示使视图开发人员能够创建健壮的表示效果,但不需要将视图绑定到特定的底层应用服务器或编程语言。本文详细解释 XQuery 与其他视图技术相比具有的优势,如何在表示层上实现 XQuery,以及一个关于这种实现的实际例子。
    2009年4月20日  
 
使用 Groovy 构建社交网络混搭(Mashup)应用程序
本文介绍如何构建一个 Groovy Mashup 应用程序,用户可以通过它使用 Twitter4J、Google 地图和一点 Ajax 来查看他们在 Twitter 上的好友的地图。
    2009年4月17日  
 
综合 JSF 和 Dojo 小部件创建更好的用户体验
作为一种 Web 框架,JavaServer Faces (JSF) 提供了端到端的生命周期管理和具有完整事件处理和数据绑定的丰富组件模型。Dojo 是一种十分流行的 Asynchronous JavaScript + XML (Ajax) 库,可为 Web2.0 应用程序提供丰富的小部件和美妙效果。借助 JSF 和 Dojo 技术,您就可以通过在服务器端使用 JSF 集成特性、在客户机端使用 Dojo 用户界面创建一种更好的用户体验。本文介绍了这一过程并向您展示了如何能轻松构建 Web 应用程序来为您的用户提供更好的用户体验。
    2009年4月15日  
 
JiBX 1.2,第 1 部分: 从 Java 代码到 XML 模式
XML 模式定义是许多数据交换类型(包括大多数 Web 服务形式)的基础。但是 XML Schema 是一种十分复杂的标准,并且与处理 Java 代码的工具相比,用于创建和修改模式定义的大多数工具在功能性和易用性方面要逊色一些。JiBX 1.2 的新功能将允许您从 Java 代码入手并轻松地生成优秀的模式定义来匹配数据结构。然后,无论您是否使用 JiBX 数据绑定,都可以直接使用这些模式。
    2009年4月14日  
 
在 UNIX 操作系统上优化 N 层 J2EE 应用程序
多层 Web 应用程序为业务关键型应用程序提供了一个更加灵活、更具扩展性的环境,并且可以满足这类应用程序的 24 x 7 小时可用性需求。如今的部署日趋复杂,在系统、基础设施和应用程序交互中引入了额外的复杂性。因此,通过对操作系统和硬件进行选择,在应用程序设计和编写阶段应用最佳实践,以及实施性能和应用程序监视,可以帮助最大化应用程序当前的性能并在未来获得可伸缩性。
    2009年4月9日  
 
启用 Web 应用程序中的后退导航
Struts 和 JavaServer Faces 等 Web 框架只关注 Web 应用程序中的前进导航。在本文中,Maurizio Albari 介绍了一种改善 Web 应用程序后退导航的框架,这是通过保存已访问 Web 页面的服务器端导航历史和已访问 Web 页面的有名序列(即 Webflows)来实现的。通过该框架,还可以使用服务器端导航历史自动清理 HTTP 会话,从而提高应用程序性能。更好的是,对于前进导航,您仍可以使用自己喜欢的 Web 框架。
    2009年3月30日  
 
演化架构与紧急设计: 测试驱动设计,第 1 部分
大多数开发人员认为使用测试驱动开发(TDD)最有用的部分是测试。但是,正确地完成开发后,TDD 将改进代码的整体设计。演化架构与紧急设计系列的这一期文章将介绍一个进一步扩展的示例,演示如何根据测试中显现的关注点进行设计。测试只是 TDD 的次要部分;关键在于它如何优化代码。
    2009年3月27日  
 
在 Java 应用程序中用 pureQuery 处理 pureXML 数据
pureQuery 和 DB2 pureXML 在各自的领域中都是革命性的数据库技术。pureQuery 是高性能的 Java 数据访问平台,其主要目的是简化数据库访问应用程序的开发和管理。pureXML 是 DB2 9 中引入的原生 XML 数据管理技术。它由层次化存储技术、XML 查询语言(XQuery 和 SQL/XML)、XML 索引技术和其他 XML 相关特性组成。本文讨论这两种技术的结合,讲解如何开发处理 pureXML 数据的 pureQuery 应用程序,从而让 DB2 应用程序具备最好的性能和可管理性。
    2009年3月27日  
 
高级 XQuery:创建自定义函数
XQuery 函数使您只需一次性定义通用表达式,然后就可以反复重用它们。这让您获得更加紧凑、更加强壮,并且易于维护的代码。本教程通过 XQuery API for Java(XQJ)演示了如何在 Java 环境中实现 XQuery 函数。
    2009年3月23日  
 
Struts 开发的最佳实践
本文向您讲解了如何使用灵活的 Struts 框架进行 Web 应用程序开发。在这里,本文作者向您展示了一些最佳实践,您可以遵循这些实践来优化这个成熟的开源框架。此外,您还可以学习使用一些十分有价值的标准 Struts 组件,包括 ActionForm、Action 类和 ActionErrors。
    2009年3月23日  
 
让开发自动化: 部署自动化模式,第 2 部分
Java 部署常常很混乱,容易出现错误,需要许多手工操作,这会延误向用户交付软件的时间。本文是分两部分的让开发自动化系列文章的第 2 部分。在本文中,自动化专家 Paul Duvall 进一步补充用于开发可靠、可重复且一致的部署流程的一些关键模式,帮助读者为 Java 应用程序生成简便的部署。
    2009年3月20日  
 
深入 Java 调试体系,第 2 部分: JVMTI 和 Agent 实现
JPDA(Java Platform Debugger Architecture)是 Java 平台调试体系结构的缩写。通过 JPDA 提供的 API,开发人员可以方便灵活的搭建 Java 调试应用程序。 JPDA 主要由三个部分组成:Java 虚拟机工具接口(JVMTI)、Java 调试线协议(JDWP),以及 Java 调试接口(JDI)。本系列将会详细介绍这三个模块的内部细节,并通过实例为读者揭开 JPDA 的面纱。本文是该系列的第 2 篇,将会着重介绍强大的虚拟机接口 - JVMTI,以及如何使用 JVMTI 编写用户自定义的 Java 调试和诊断程序。
    2009年3月19日  
 
演化架构与紧急设计: 研究架构和设计
软件架构和设计曾引起了大量热议,但是并没有产生太多新的亮点。本文将发起新一轮的有关软件架构和设计替代方法的讨论,并开启了这个关于“演化架构和紧急设计”的系列文章。演化架构(evolutionary architecture)和紧急设计(emergent design)都是将重要的决策推迟到最后责任时刻(Last Responsible Moment)的敏捷技术。在本系列的第一期文章中,系列作者 Neal Ford 将定义架构和设计,然后指明了一些关于整个系列的基本概念。
    2009年3月17日  
 
为 J2EE 应用程序构建分布式对象管理框架
许多企业 Java 技术开发人员都会构建自己的对象管理基础架构,以此改进应用程序性能。但是,对于在多个台物理机器上跨分布式 JVM 运行的应用程序,传统的对象池会遇到问题。在本文中,Zhengrong Tang 将提供一个对象管理框架,这个框架可以轻松地处理分布式系统。
    2009年3月16日  
 
在 Eclipse 中构建支持 AIM 的应用程序
如今,应用程序利用了人们已经广泛使用的一个界面:即时信息传递(IM)。应用程序提供与 IM 的集成,因为这使用户可以通过他们熟悉的、很多人已经在使用的界面轻松地访问应用程序。IM 应用程序还可以在很多移动平台上使用,这使用户可以从移动设备连接到应用程序。
    2009年3月16日  
 
回归测试最佳实践
本文介绍一个有效的解决方案,可以提高回归测试的效率与质量。它解决了回归测试中的两个主要问题:如何优化回归测试用例以及分析覆盖率。
    2009年3月13日  
 
通用页面流程框架及实例介绍
在企业的应用系统中,存在着大量的页面流程,即一个交易需要多个页面以及操作才能够完成,这些交易的多个页面之间存在复杂的逻辑和复用关系。本文介绍 IBM Branch Transformation Toolkit(BTT)中的一个重要框架 -- 通用页面流框架。作为企业 J2EE 应用的一个重要组件,通用页面流同时支持 Web 页面流、Java 客户端页面流和手机客户端页面流。同时 IBM BTT 通用页面流框架具有很强的扩展性,用户可以扩展用以特殊的页面流程处理,比如电视渠道页面流程。
    2009年3月13日  
 
构建启用了 Ajax 的 JSP TagLib 控件,第 2 部分: 自动填充和字段验证器控件
在本文中,构建可用于业务应用程序的 Asynchronous JavaScript + XML(Ajax)控件。这些基于 JavaServer Pages (JSP) TagLib 的可配置控件利用了 JavaScript Serialized Object Notation (JSON)、JavaScript 脚本语言及 Cascading Style Sheets(CSS)。由于它们是标准的 JSP TagLib 控件,您可以将其简单地置于任何应用程序内来提供更直观、响应性更好的用户界面。
    2009年3月12日  
 
利用 Java dump 进行 JVM 故障诊断
本文将向读者介绍利用 Java dump 诊断 JVM Crash 和 CPU 饥饿等问题的方法和技巧,以便使用户更加全面的了解 Java dump 在故障诊断过程中的作用。
    2009年3月11日  
 
使用 DITADoclet 和 DITA API 规范生成 DITA Java API 参考文档
通过结合使用 DITADoclet 和 DITA API 规范,从 Java 源代码直接生成高质量的 API 文档,节省编写文档的时间。
    2009年3月9日  
 
IBM Lotus Notes 8.5 中的高级 Java 视图特性
Java™ 视图是在 IBM® Lotus® Notes® 客户机的 8.0 发行版中引入的。为了使 Lotus Notes 界面现代化,很多新特性是使用 Java 视图实现的。转换应用程序使之可以使用 Java 视图之后,就可以按照本文列出的步骤,利用一些新的视图特性,例如主题(thread)、窄模式(narrow mode)、名片(business card)、分割操作(split action)按钮和定制的上下文菜单。本文假设您的计算机安装了 Lotus Notes 8.5、IBM Lotus Domino Designer 8.5 和 Lotus Notes 8.5 复合应用程序编辑器,并且熟悉 Lotus Domino® Designer 的使用。
    2009年3月9日  
 
基本步骤:转换 IBM Lotus Notes 应用程序以使用 Lotus Notes 8 Java 组件
Java™ 视图是在 IBM® Lotus® Notes® 客户机的 8.0 发行版中引入的。为了使 Lotus Notes 界面现代化,很多新特性是使用 Java 视图实现的。本文概述 IBM Lotus Domino 开发人员将自己的简单 Lotus Domino® 应用程序转换到 Java 视图中所采取的步骤。本文假设您的计算机上已安装了 Lotus Notes 8.5、IBM Lotus Domino Designer 8.5 和 Lotus Notes 复合应用程序编辑器 8.5,并且熟悉 Lotus Domino Designer 的使用。
    2009年3月9日  
 
实战 Groovy: Groovy:Java 程序员的 DSL
Groovy 专家 Scott Davis 将重新开始撰写 “实战 Groovy” 系列文章,该系列文章于 2006 年停止编写。作为开篇文章,本文将介绍 Groovy 最近的发展以及 Groovy 当前的状态。然后了解大约从 2009 年开始,使用 Groovy 是多么轻松。
    2009年3月9日  
 
事务策略: 了解事务陷阱
事务处理的目标应该是实现数据的高度完整性和一致性。本文是为 Java 平台开发有效事务策略系列文章的第一篇,介绍了一些妨碍您实现此目标的常见事务陷阱。本系列作者 Mark Richards 通过使用 Spring Framework 和企业 JavaBeans(Enterprise JavaBeans,EJB)3.0 规范中的代码示例解释了这些极其常见的错误。
    2009年3月6日  
 
将 J2EE 项目迁移到 IBM Lotus Expeditor V6.1
使用 IBM Lotus Expeditor Toolkit 将 J2EE 项目迁移到 IBM Lotus Expeditor V6.1,然后把迁移后的项目部署在 Lotus Expeditor 运行时上。本文讲解迁移 J2EE 项目所需的步骤以及 Lotus Expeditor 不支持的 J2EE 特性。
    2009年3月2日  
 
必备的 Java 参考资源列表
Java 平台不久将迎来它 14 岁的生日,当一种成功且被普遍使用的语言达到这样一种高度时,伴随而来的是产生了大量的库、工具和理念 —— 这使得许多刚刚接触 Java 语言的新手可以获得大量的资源。在这篇文章中,作者(Java 资源的重要贡献者)将向您介绍这些资源,为积极进取的 Java 开发人员提供一份他们应该拥有的关键参考资源的列表。
    2009年3月2日  
 
Java Math 类中的新功能,第 2 部分: 浮点数
在这篇由两部分组成的文章中,Elliotte Rusty Harold 与您一起探讨经典 java.lang.Math 类中的“新”功能。第 1 部分主要讨论比较单调的数学函数。第 2 部分将探讨专为操作浮点数而设计的函数。
    2009年2月20日  
 
精通 Grails: 改变 Grails 应用程序的外观
在这一期的精通 Grails 中,Scott Davis 演示如何通过使用层叠样式表(CSS)、模板、标记库(TagLib)等技术来对 Grails 应用程序的外观进行有趣的更改。
    2009年2月17日  
 
Groovy 使 Spring 更出色,第 2 部分: 在运行时改变应用程序的行为
Spring Framework 为 Web 和企业应用程序提供坚实的基础。通过支持 Groovy 等动态语言,Spring 添加了一些功能,从而使应用程序架构更加灵活、更具动态性。在这个 “通过 Groovy 使 Spring 更出色” 系列的第 2 期也是最后一期中,您将学习如何使用可动态刷新的 bean 在运行时改变 Spring 应用程序的行为。
    2009年2月13日  
 
让开发自动化: 部署自动化模式,第 1 部分
Java 部署常常很混乱,容易出现错误,需要许多手工操作,这会延误向用户交付软件的时间。本文是分两部分的 “让开发自动化” 系列文章的第 1 部分。在本文中,自动化专家 Paul Duvall 将介绍用于开发可靠、可重复且一致的部署流程的一些关键模式,帮助读者为 Java 应用程序生成简便的部署。
    2009年2月10日  
 
Groovy 使 Spring 更出色,第 1 部分: 集成的基础知识
Spring Framework 为 Web 和企业应用程序提供了坚实的基础。通过支持 Groovy 等动态语言,Spring 添加了一些功能,从而使应用程序架构更加灵活、更具动态性。在包含 2 部分的系列文章的第 1 部分中,您将学习将 Groovy 集成到 Spring 应用程序的基础知识。
    2009年2月4日  
 
面向 Java 开发人员的 Scala 指南: Scala 和 servlet
如果 Scala 是一门完全兼容 JVM 的语言,那么就应该可以在各种 “现实” 环境中使用它,比如在构建 servlet 和其他 Web 应用程序的环境中。在本文中,作者将探讨在 servlet 环境中使用 Scala。
    2009年2月2日  
 
面向 Java 开发人员的 Scala 指南: 构建计算器,第 3 部分
特定领域语言(Domain-specific languages,DSL)已经成为一个热门话题;围绕函数性语言讨论得最多的话题是构建这种语言的能力。在构建了 AST 模式和基本前端解析器之后(用于获取文本和生成适合解释的对象图形),作者在这篇文章中将这些知识无缝地整合起来(虽然有点麻烦)。然后他将推荐一些适合 DSL 语言及其解释器的扩展。
    2009年1月19日  
 
使用 IBM Rational ClearQuest Java API 进行集成开发
Rational ClearQuest Test Manager(CQTM)是一个运行在 Rational ClearQuest 之上的测试生命周期管理工具,其管理功能覆盖整个测试的生命周期,包括测试计划、测试编写、测试执行和测试报告等方面。CQTM 同时还提供了功能强大的集成与扩展 API。本文将向您详细地介绍如何通过 JNI 技术使用 ClearQuest Java API 实现与 CQTM 系统的集成。
    2009年1月15日  
 
编写更少的代码!
通过利用 Apache Commons 项目的 Lang 库中的一组久经考验的开源实用程序,可以编写更少的代码。重用他人编写的可靠代码可帮助您更快地将软件推向市场,并且软件的缺陷更少。
    2009年1月12日  
 
JavaScript EE,第 1 部分: 在服务器端运行 JavaScript 文件
本系列文章围绕的主旨是将 JavaScript 与服务器上的 Java 代码结合起来,从而能够在服务器和客户机上使用相同的 JavaScript 例程。此外,本系列所展示的这些技术将让您能为 Ajax 客户机和非 Ajax 客户机 维护同一个代码库。由于服务器端的大部分代码依然用 Java 语言编写,所以有必要对 JavaScript 公开这些 Java Platform, Enterprise Edition (Java EE) 特性。在本系列中,您将了解如何在服务器端运行 JavaScript 文件、如何用 Ajax 调用远程 JavaScript 函数以及如何借助 JavaServer Pages (JSP) 技术使用这个 Java Scripting API。
    2009年1月12日  
 
使用 Eclipse 远程调试 Java 应用程序
在本地计算机上调试 Java 应用程序并不是惟一的选择。学习如何使用构成远程调试的不同连接类型进行远程调试。本文概述了设置远程应用程序调试的特性和示例。
    2009年1月12日  
 
扩展 JDK 日志框架
日志记录对于软件的维护特别是对于已部署到运行环境之后的软件调试都有着重要的意义。本文介绍了 JDK 的日志框架,以及如何根据不同需求自定义日志处理、消息格式化、消息级别等组件。最后阐述了如何利用 JDK 日志框架的扩展能力将 Java 程序能够通过 STAF(Software Testing Automation Framework,一种自动化测试框架)日志服务来进行监视。
    2009年1月9日  
 
扩展 Ant JUnit Task
尽管 Ant 自带的 JUnit task 命令可以非常方便的进行测试用例的选择,但是有些情况下依然无法满足特定工程的需要。由于 Ant 自身的良好的扩展性,开发者可以扩展 Ant JUnit,使它能够通过设置正则表达式来支持更灵活的选择。在了解了 Ant 的扩展机制之后,扩展的过程其实比较轻松。更好的是,扩展之后的 Ant JUnit 命令能够保持对原有命令的完全兼容性。
    2009年1月9日  
 
为 WebSphere Application Server Community Edition 开发富 Internet 应用程序
本文简单列出了一些 Ajax 功能和 WebSphere Community Edition 2.1 中包含的框架,并逐步说明了示例 Web 2.0 应用程序的开发工作,该示例应用程序使用了这些框架来简化开发工作。
    2009年1月8日  
 
使用 IBM Rational Application Developer V7.5 和 WebSphere Application Server V7.0 构建 Java EE 应用程序
IBM Rational Application Developer V7.5 包含了使用 JPA 和 EJB 技术 3.0 版本创建 Java EE 应用程序的工具。Rational Application Developer V7.5 引入了新的向导、编辑器,和透视图来很容易地创建强大的应用程序。本文面向中级用户,带您了解各种新的特性,并且向您展示如何创建端到端的 Java EE 应用程序。
    2009年1月8日  
 
通过 Guice 进行依赖项注入
Guice 是 Google 用于 Java 开发的开放源码依赖项注入框架。它不需要您自己编写工厂,从而提供更好的测试性和模块性。Nicholas Lesiecki 将带您了解一些最重要的 Guice 概念,让您能够在应用程序中使用 Guice。
    2009年1月8日  
 
在 Spring Web MVC 环境下使用 Dojo
本教程主要探讨如何整合 Spring Web MVC 框架与 Dojo 工具包,通过实例演示了客户端的 dojox.grid.DataGrid 小部件(Widget)与服务器端的 Spring Web MVC 框架进行数据交换的过程。
    2008年12月30日  
 
使用 Eclipse 和 Java SE 6 创建独立 Web Services 应用程序,第 1 部分: Web Services 服务端应用程序
使用 Eclipse 集成开发环境(Integrated Development Environment,IDE)和 Java Platform, Standard Edition (Java SE) 6 创建可以从控制台运行的独立 Web Services 应用程序。本教程是该系列的第 1 部分,将首先让您熟悉 Eclipse IDE。配置环境;创建项目、包和类;然后从命令行运行应用程序。
    2008年12月29日  
 
使用缓存构建更快的 Web 应用程序
使用 Java 技术的 Web 开发人员可以使用缓存实用程序快速提升他们的应用程序的性能。Java 缓存系统(Java Caching System,JCS)是一个用于 Java 应用程序的强大分布式缓存系统,它是拥有简单 API 的高度可配置的工具。本文将概述 JCS 并展示如何使用它来提高 Web 应用程序的速度。
    2008年12月29日  
 
在 WebSphere sMash 中集成 Java 和 PHP
WebSphere sMash 环境支持基于流行的 Web 技术(如 PHP)快速开发交互式 Web 应用程序,允许从 PHP 脚本重用现有的 Java 资产。本文将介绍 Java Bridge 并说明如何从 PHP 访问 Java 类。
    2008年12月29日  
 
如何让 RMI 程序同时支持 IPv4 和 IPv6
本文在分析服务器套接字对 IPv4 和 IPv6 客户端的影响的基础上,介绍了两种不同的 RMI 应用对 IPv6 的支持情况,同时给出了一种 RMI 服务器在需要绑定 IP 地址的情况下如何同时支持 IPv4 和 IPv6 客户端的解决方案。
    2008年12月26日  
 
探索 Java 同步机制
本文从典型的 Monitor Object 设计模式入手,从一个新的视角,来探讨 Java 语言的同步机制。
    2008年12月26日  
 
精通 Grails: 用 JSON 和 Ajax 实现异步 Grails
JavaScript Object Notation(JSON)和 Asynchronous JavaScript + XML(Ajax)是 Web 2.0 开发中的主要技术。在本期的精通 Grails 系列中,作者 Scott Davis 演示了 Grails Web 框架中包括的本地 JSON 和 Ajax 功能。
    2008年12月23日  
 
扩展 JUnit 测试并行程序
TDD(Test Driven Development)早已成为被广泛使用的敏捷实践。JUnit 是 Java 程序员进行单元测试的标准工具,但是它对于并行程序还没有任何的支持。本文将介绍一种对 JUnit 框架的扩展,从而使得并行程序的测试变得如同串行程序一样简单。
    2008年12月19日  
 
让开发自动化: 使用基于向导的安装程序
对于大多数用户来说,安装软件常常是一件痛苦的事情。生成安装包是软件开发的 “最后一步”,但它可能导致不同的结果:要么用户采用软件,要么它就成为无人问津的垃圾品。在本期的让开发自动化中,自动化专家 Paul Duvall 演示了如何使用免费、开源的工具 IzPack 来编写为您的用户安装软件的基于向导的安装程序。
    2008年12月16日  
 
精通 Grails: 在企业中使用 Grails
在本期的精通 Grails 中,作者 Scott Davis 将解释为何 Grails 已经可以在企业中使用。您将看到如何将 Grails 与企业级库结合使用,包括 Java 管理扩展(Java Management Extensions,JMX)、Spring 和 log4j。
    2008年12月16日  
 
使用模拟对象(Mock Object)技术进行测试驱动开发
测试驱动开发是敏捷开发中重要部分。在现实项目中,开发人员通常希望减少对其它模块的依赖,把测试的单元与系统其它单元隔离。本文介绍敏捷开发并探讨测试驱动开发的重要性。对 mock 技术进行理论分析,并结合当前流行的 mock 软件如 jMock 和 EasyMock 等,展示测试驱动开发实例并进行比较。
    2008年12月12日  
 
点画法和像素处理
Paul Reiners 展示了如何通过 Java 2D API 和细胞自动机(cellular automata)以独特的艺术方式制作图像动画。在这个过程中,他演示了用 Java 代码实现图像操作器并介绍了循环空间(cyclic space ),循环空间是一种 2D 细胞自动机。您可以根据本文的思路创建自己的图像操作器,并使用 Java 技术创建艺术应用程序。
    2008年12月9日  
 
使用 sqlRest 将数据库转换为 REST 风格的 Web 服务
本文介绍 sqlRest 框架,它是一种高效的轻量级数据库 REST 服务解决方案,您可以通过简单的配置直接将数据库中的数据暴露成 REST 风格的 Web 服务,并将数据库的 CRUD 操作和 REST 服务的 GET, DELETE, POST, PUT 接口对应起来。
    2008年12月4日  
 
Wicket:一种构建和测试动态 Web 页面的简化框架
Wicket 提供了一种面向对象的方式来开发基于 Web 的动态 UI 应用程序。由于 Wicket 是纯 Java 和 HTML 代码,所以您可以充分利用自己的 Java 知识来基于 Wicket 编写应用程序,这会极大减少您的开发时间。本文概述了 Wicket 并介绍了如何利用 Wicket 以一种无干扰的简化方式来快速构建基于 Web 的应用程序。
    2008年12月4日  
 
用 easyb 驱动开发
长期以来,定义需求的利益相关者与实现需求的开发人员之间的隔阂一直困扰着软件的开发。近年来,出现一些基于动态语言和 DSL 的框架,它们尝试让代码读起来像一般语言一样,从而弥合利益相关者和开发人员之间的隔阂。本教程展示 easyb —— 提供一种更自然的、更适合利益相关者的 DSL —— 如何帮助开发人员和利益相关者有效地协作。
    2008年12月1日  
 
动态管理 XMLBeans 应用程序中的 XML 模式变体
Apache XMLBeans 本身并不支持多个 XML 模式版本。对于需要这种支持来实现兼容性管理的应用程序,这种是一个很大的限制。但是这个问题是可以解决的。在本文中,您将了解到动态类加载技术如何帮助解决问题。
    2008年12月1日  
 
扩展 Tomcat Web 服务器的功能
本教程是所有 Web 服务器或应用服务器管理员的必读指南。尽管 Apache Tomcat 的实现与其他 Web 服务器略有不同,但是本教程为许多高级管理任务提供了一种符合逻辑且简洁的执行方法,有助于成功地驻留、部署和管理多个 Java 2 Platform, Enterprise Edition(J2EE)Web 应用程序。学习如何设置、配置和保护 Tomcat 服务器,了解解决高级部署问题所需的技巧和工具。
    2008年11月27日  
 
Apache Solr 的新特性
在本文中,Solr 和 Lucene 的负责人 Grant Ingersoll 详细介绍了 Solr 1.3 的新改进,包括分布式搜索、轻松数据库导入、集成拼写检查和新的扩展 API 等等。
    2008年11月25日  
 
通用条件逻辑可视化开发框架设计
随着软件应用与领域业务结合日益紧密,业务软件开发对可视化编程依赖性亦愈发突出,传统 IDE 的设计理念使得基于 IF/Else 条件逻辑的支持不够完善,随需而变的客户要求使得该问题亦日益严峻。本文从传统 IDE 难以支持条件表达逻辑元素角度出发,提出建立支持 VIE(Visual IF/Else) 的独立应用框架的想法,以及重用已有的编程元素来表达新的条件逻辑的思路;提出了分层框架的体系结构,以及指导实际设计开发的概念模型和实现模型;并开发了概念模型框架和基于 InstallShield 的实现模型,以及用于演示的 Demo。
    2008年11月20日  
 
Java Math 类中的新功能,第 1 部分: 实数
在这篇由两部分组成的文章中,Elliotte Rusty Harold 与您一起探讨经典 java.lang.Math 类中的 “新” 功能。第 1 部分主要讨论比较单调的数学函数。第 2 部分将探讨专为操作浮点数而设计的函数。
    2008年11月20日  
 
使用 pureQuery 优化现有的 JDBC 应用程序
在 Version 1.2 中,Data Studio Developer 和 Data Studio pureQuery Runtime 包括一个名为客户机优化的新特性,该特性使 DBA 和开发人员可以利用静态 SQL 执行,而且不必修改现有的定制开发的、基于框架的或打包的 JDBC 应用程序。本教程展示如何使用 Data Studio Developer 提供的工具使 JDBC 应用程序能够使用这个新功能。
    2008年11月19日  
 
面向 Java 开发人员的 Scala 指南: 构建计算器,第 2 部分
特定领域语言(Domain-specific languages,DSL)已经成为一个热门话题;很多函数性语言之所以受欢迎,主要是因为它们可以用于构建 DSL。有鉴于此,在 “面向 Java 开发人员的 Scala 指南” 系列最近的一篇文章中,Ted Neward 继续讨论一个简单的计算器 DSL,以展示函数性语言在构建“外部”DSL 的强大功能,并在此过程中将文本输入转换成用于解释的 AST。为了解析文本输入,并将它转换成上一篇文章中解释器使用的树结构,Ted 引入了 “解析器组合子(parser combinator)”,这是一个专门为这项任务设计的标准 Scala 库。(在上一篇文章中,我们构建了一个计算器解析器和 AST)。
    2008年11月17日  
 
使用 JdbcProxy 测试 Java 应用程序
JdbcProxy 可以理解为 JDBC 代理,是一个开源的 JDBC 项目。它架构在 JDBC Driver 之上,能够记录一个 Java 应用的数据库访问过程,并将这个过程重现出来。本文将以一个具体的 Java 应用为例,演示如何使用 JdbcProxy 记录和重现 JDBC 访问,实现 Java 应用的测试工作。
    2008年11月14日  
 
如何利用 Rational Application Developer 将现有的静态 Web 站点转变为动态 Web 站点
本文将帮助技术背景的读者了解如何利用 IBM® Rational® Application Developer 将现有的静态 Web 站点转变为动态 Web 站点。用户将添加一个邮件 servlet、Java™2 Platform,Enterprise Edition (J2EE™) 安全性,并利用 Web 站点设计工具的页面模板来为整个 Web 站点创建一致的外观。
    2008年11月13日  
 
让开发自动化: 针对广大开发人员的并行开发
虽然很多开发团队都使用版本控制系统管理代码变更,但当多个开发人员并行地使用不同的代码库进行编码时,还是会出现问题的。在本期的 “让开发自动化” 中,自动化专家 Paul Duvall 展示了如何运用开源的、免费的 Subversion 版本控制系统来有效地进行标记、分支和合并。
    2008年11月11日  
 
从 EJB 2 容器管理的持久性迁移至 IBM Master Data Management Server 的 pureQuery,第 1 部分: pureQuery 技术评测
如果您对新发布的 WebSphere Customer Center(现名 IBM InfoSphere Master Data Management Server)感到好奇或迷惑,那么本系列刚好适合您!本系列描述这个新版本如何以及为何使用 pureQuery 技术,pureQuery 的实现和迁移,以及为检验这一重要决策而进行的性能和功能测试的结果。第 1 部分关注持久性机制的评估和对这项技术的验证。
    2008年11月5日  
 
使用 WS-BPEL 和 IoC 构建可配置工作流程,第 2 部分: 开发并托管 BPEL 工作流程
在本系列的第二部分中,Bilal Siddiqui 阐述了如何使用 BPEL 来表达可配置业务工作流程的逻辑。您将学习如何将 BPEL 应用程序托管在一个 BPEL 引擎上,并使它们能够与 IoC 实现协同使用。
    2008年11月3日  
 
使用类共享提高性能
IBM JRE for Java SE 6 的最新版本增强了在版本 5 中首次引入的类共享特性。在本文中,性能分析师 Adam Pilkington 和 Graham Rawson 详细介绍这些改进,包括对应用程序启动时间和内存使用量的改进。
    2008年11月3日  
 
针对 Java 开发人员的 Dojo 概念
Dojo 在基于 Web 的应用程序中越来越受到欢迎。很多开发人员是 Java 编程方面的能手,但是在 JavaScript 方面却缺乏经验。从强类型、面向对象的编译语言转向动态的、弱类型脚本语言,开发人员需要经历概念跃迁带来的困难。这种混乱使开发人员很难正确地声明 Dojo 类。本文将帮助梳理这种混乱,解释为何必须设置上下文,以及如何实现它。
    2008年11月3日  
 
精通 Grails: 测试 Grails 应用程序
Grails 可以轻松确保您的应用程序从始至终都远离 Bug。另外一个好处是,您可以利用测试代码生成一组永远是最新的可执行文档。本月由 Grails 的权威 Scott Davis 向您展示如何使用 Grails 进行测试。
    2008年10月31日  
 
使用 JRuby 和 Swing 进行跨平台开发
使用 Ruby 除了可以构建 Web 和控制台应用程序外,还可以编写复杂的 GUI 桌面应用程序,这些桌面应用程序可以不作修改地在多种平台上运行。得益于 JRuby,Ruby 的传统 C 实现的健壮替代品,Ruby GUI 工具包可以使用用于 Java 平台的 UI 工具。本文介绍一个用 JRuby 和 Swing 构建应用程序的库 Monkeybars,并讲解一个示例应用程序。
    2008年10月28日  
 
保护多承租 SaaS 应用程序
软件即服务(Software as a Service,SaaS)应用程序多承租的性质决定了安全性是一个关键的问题。本文介绍了一个保护多承租 Java 应用程序的可行的、实用的方法,即结合使用开源 Spring Security 框架和 Apache Directory Server。作者通过一个多承租示例 Web 应用程序来展示这个方法。
    2008年10月24日  
 
集成 Spring Framework 和 Data Studio
pureQuery 是包含在 Data Studio 中的 IBM 新开发平台,用于开发 Java 数据库访问应用程序。它简单的 API 和集成工具不仅提高了数据访问开发人员的效率,还鼓励遵守编码最佳实践以获得更好的应用程序性能。Spring 是一个开源的 Java/J2EE 应用程序框架,它提供了更高级的数据访问特性,比如事务管理、资源管理以及 Data Access Object 层次结构。如果将它与 pureQuery 集成起来,将带来更简单的应用程序开发与维护体验。本教程引导您构建具有 Spring Framework 数据访问特性的 pureQuery 应用程序。
    2008年10月21日  
 
使用 JUnit 对规则进行单元测试
“规则”(Rule)在程序中有广泛的应用,本文将介绍在对“规则”进行单元测试(Unit Testing)时的一些独特之处。希望能与读者探讨。
    2008年10月21日  
 
编写高性能 Java 数据访问应用程序,第 3 部分: Data Studio pureQuery API 最佳实践
pureQuery 是一种高性能 Java 数据访问平台,其主要目标是简化访问数据的应用程序和服务的开发、管理和优化。它由工具、API 和运行时引擎组成。本系列的前两篇文章介绍了两种编程风格,以帮助用户通过简单而强大的 API 访问数据库。本文总结了使用 pureQuery API 进行开发的一些最佳实践,并提供一些真实场景,以展示如何实现这些最佳实践。
    2008年10月20日  
 
自动检测并行 Java 程序中的错误
并行程序的不确定性造成并行程序的错误很难查找,重现和调试。MTRAT 可以收集程序的运行时信息,在线分析程序中所有可能的并行程序错误。
    2008年10月17日  
 
Java 理论与实践: 有状态 Web 应用程序都有漏洞吗?
Servlets 框架 HttpSession 提供的会话状态管理机制简化了有状态应用程序的创建,但也很容易导致误用。在没有足够协作的情况下,许多 Web 应用程序对可变数据(比如 JavaBeans 类)使用了 HttpSession 这个机制,从而使自身面临大量潜在的并发性危险。
    2008年10月13日  
 
使用 Java 构造高可扩展应用
在本文中,我们将介绍提高 Java 多线程应用性能的一般步骤。 通过运用本文提供的一些简单规则,我们就能获得具有高性能的可扩展的应用程序。
    2008年10月10日  
 
精通 Grails: RESTful Grails
我们生活在 mashup 的时代。创建能够给用户提供所需信息的 Web 页面固然是一个好的出发点,但是要是能够提供原始数据源,从而让其他的 Web 开发人员能够轻易将其与他们自己的应用程序相融合的话,这样岂不是更好。在本期的精通 Grails 中,Scott Davis 将介绍用 Grails 生成 XML 而不是通常的 HTML 的各种方法。
    2008年10月7日  
 
批处理文件国际化支持解决方案
随着软件应用的迅速推广与发展,应用软件无一例外的面临着支持多国家多语种的国际化问题,基于 Windows 的批处理文件应用广泛,然而作为一种通用脚本语言,批处理脚本没有提供一种体系化的多语言国际化支持。本文首先介绍编程语言和国际标准化对多语言问题作出的努力;其次,给出了通用多语言支持解决方案的灵活架构设计;再次,给出了批处理文件的轻量级、灵活架构的通用多语言支持解决方案,以及基于该解决方案构建支持多语言的批处理软件系统的一般步骤;最后作了一定的总结和展望。
    2008年9月28日  
 
处理 XML 解析中的错误
XML 解析是几乎所有企业应用程序的一部分。然而,大部分这些应用程序都缺少任务处理。学习如何使用 Simple API for XML(SAX)处理 XML 解析中出现的错误(即使您的应用程序使用 DOM 、JAXP 或其他 API 处理 XML)。
    2008年9月25日  
 
探索 JUnit 4.4 新特性
本文通过理论分析和详细例子向读者阐述 JUnit 4.4 所带来的最新特性,读者通过本文的学习,可以轻松掌握使用 JUnit 4.4 的新特性。
    2008年9月24日  
 
面向 Java 开发人员的 Scala 指南: 构建计算器,第 1 部分
特定于领域的语言已经成为一个热门话题;很多函数性语言之所以受欢迎,主要是因为它们可以用于构建特定于领域的语言。鉴于此,在面向 Java 开发人员的 Scala 指南系列的第 8 篇文章中,Ted Neward 着手构建 一个简单的计算器 DSL,以此来展示函数性语言的构建 “外部” DSL 的强大功能。为了达到这个目的,他研究了 Scala 的一个新的特性:case 类,并重新审视一个功能强大的特性:模式匹配。
    2008年9月23日  
 
通过零拷贝实现有效数据传输
本文解释了如何通过一种称为零拷贝的方法来提高运行于 Linux 和 UNIX 平台上的 I/O 密集型 Java 应用程序的性能。零拷贝不仅消除了中间缓冲区之间的冗余数据拷贝,还减少了用户空间和内核空间之间的上下文切换次数。
    2008年9月23日  
 
基于 Struts 2 拦截器实现细粒度的基于角色的存取控制
本文介绍如何利用 Struts 2 拦截器来为 Java Web 应用添加应用管理的基于角色的存取控制(Role-Based Access Control,RBAC)的设计和实现方法。相对于容器提供的存取控制,它能够更细粒度地控制资源,处理更加复杂的情况。
    2008年9月19日  
 
存储过程五种使用场景对比
存储过程(stored procedure)由于其高效、安全、可重用等特点,被频繁用于各种应用中。在不同的场景下,存储过程的使用方式和技术往往不同,达到的效果也差别很大。本文将与存储过程有关的技术串联起来进行比较介绍,以供大家在设计和开发数据库应用时选择相应的技术和工具,从而加速开发过程。
    2008年9月18日  
 
使用 Spring 和 Apache CXF 设计和实现 POJO Web 服务,第 1 部分: 使用 CXF 和 Spring 创建 Web 服务
使用开放源代码 Web 服务框架 Apache CXF 可以很容易地创建传统 Java 对象(plain old Java object ,POJO)样式的 Web 服务。本文是本系列的第 1 部分,将向您介绍如何使用 Spring 和 CXF 将 POJO 作为 Web 服务公开。本文还将演示 CXF 与 Spring 框架的集成。
    2008年9月18日  
 
面向 Java 开发人员的 Scala 指南: 包和访问修饰符
在现实生活中,代码一定要引用并打包。在本期的面向 Java 开发人员的 Scala 指南系列中,Ted Neward 首先介绍了 Scala 的包和访问修饰符功能,接着通过研究 “apply” 机制探讨了 Scale 中的函数内容。
    2008年9月16日  
 
精通 Grails: Grails 事件模型
Grails 中的所有内容,从构建脚本到单个工件(比如域类和控制器),都会在应用程序生命周期的关键点抛出事件。在这篇精通 Grails 文章中,您将学习如何设置监听器来捕获这些事件,并且通过自定义行为做出反应。
    2008年9月12日  
 
用高级工具定制 JAX-RPC Web 服务和客户机
本教程带领您进一步了解 JAX-RPC,讲解如何在 Apache Axis 的帮助下定制 JAX-RPC Web 服务和客户机。在客户端,可以自动生成连接新的 JAX-RPC Web 服务所需的许多代码,这样就可以把精力集中在交互本身,而不需要过多关注日常的 Web 服务调用。在服务器端,可以添加更多选项、限制公开的方法和限制接受的参数。只要比较深入地掌握了 Apache Axis 工具集,就可以通过简便的定制完成这些任务。
    2008年9月11日  
 
在 Web 应用中增加用户跟踪功能
随着 Web 应用的复杂化,网站用户的操作过程也日益复杂,网站功能的多样化和交互性的提高为用户提供了多种可能的浏览路径。为了改进用户的使用体验,有时也是为了模拟用户的操作过程以帮助用户解决使用中的问题,需要能在日志中识别某个用户在整个 Session 中所经历的操作过程,本文针对基于 Apache Log4J 的 Web 应用,讨论如何利用 NDC 和 MDC 的机制,简单快捷的为 Web 应用日志增加用户跟踪的基础数据。通过本文,读者可以学习到关于 NDC 和 MDC 的工作机制,以及如何利用他们在一个 Web 应用中记录用户在一个网站上的全部行为和操作过程,并可以直接使用文中的代码和思路,提高工作效率。
    2008年9月3日  
 
深入 Java 调试体系: 第 1 部分,JPDA 体系概览
JPDA(Java Platform Debugger Architecture)是 Java 平台调试体系结构的缩写,通过 JPDA 提供的 API,开发人员可以方便灵活的搭建 Java 调试应用程序。 JPDA 主要由三个部分组成:Java 虚拟机工具接口(JVMTI),Java 调试线协议(JDWP),以及 Java 调试接口(JDI),本系列将会详细介绍这三个模块的内部细节、通过实例为读者揭开 JPDA 的面纱。本文是该系列的第一篇,将会着重从整体上介绍 JPDA 的各个组成,阐述它们彼此之间的内在关联。
    2008年9月3日  
 
Java 运行时监控,第 3 部分: 监控应用程序生态系统的性能与可用性
本文为 Java 应用程序运行时监控系列的第三部分,也是最后一部分,主要介绍在监视应用程序支持和依赖服务的性能和可用性时应使用哪些策略与技巧。所谓支持和依赖服务包括底层主机操作系统、运行数据库以及通信基础设施。文章结尾针对性能数据管理问题以及数据的报告和可视化做了论述。
    2008年9月2日  
 
让开发自动化: 实现自动化数据库迁移
数据库通常不能够与它们支持的应用程序保持同步,从管理方面来讲,将数据库和数据置于一个已知状态是个很大的挑战。在本期的 “让开发自动化” 中,自动化专家 Paul Duvall 演示了如何使用开源的 LiquiBase 数据库迁移工具轻松地处理数据库和应用程序的频繁变更。
    2008年9月2日  
 
JavaFX Script 高级特性
JavaFX 是 Sun 推出的一套基于 Java 技术的产品家族。 JavaFX Script 可以用来高效的创建富媒体和交互性很强的应用。 JavaFX 是 Adobe Flex 和 Microsoft Silverlight 的有力竞争者。本文通过具体的实例介绍了 JavaFX Script 语言本身的一些高级特性并讨论了 JavaFX Script 中的一些高级话题,包括创建复杂的用户界面、实现动画效果、JavaFX Script 应用的部署和在一个独立的 Java 应用程序中嵌入 JavaFX Script 等。
    2008年8月29日  
 
Spring Web Flow 2.0 入门
本教程分析了 Spring Web Flow 2.0 的技术要点,并且通过创建一个示例应用程序,展示了 Spring Web Flow 2.0 的基本知识。
    2008年8月28日  
 
使用 Equinox 开发 OSGi 应用程序
本教程着重介绍 OSGi 框架知识、环境搭建、服务使用、应用设计、部署。
    2008年8月28日  
 
从 Java 平台计算 XPath
XPath 使在 XML 文档中选择元素、属性和文本变得很容易。学习如何从 Java 编程评估 XPaths,并使用返回的节点。
    2008年8月26日  
 
Java 运行时监控,第 2 部分: 编译后插装和性能监控
本系列包括三部分,介绍有关 Java 应用程序的运行时监控知识,第 1 部分重点介绍了 JVM 的健康状况和插装源代码以捕获性能指标的方法。本篇为第二部分,介绍了在无需改变原始源代码的情况下来插装 Java 类和构造的技巧。
    2008年8月22日  
 
Java 运行时监控,第 1 部分: Java 系统运行时性能和可用性监控
运行时性能监控对于实现和维护性能优异的系统至关重要。本文是系列文章的第 1 部分(共 3 部分),dfsaNicholas Whitehead 将阐述如何有效地对 Java 性能执行低级粒度的监控。您生成的数据可以很好的反映系统操作的内在状态,并揭示影响环境稳定性及性能的约束和因素。
    2008年8月19日  
 
简化 Ajax 和 Java 开发,第 4 部分: 使用 JSP 标记文件创建 JSF 样式的组件
JavaServer Pages (JSP) 和 JavaServer Faces (JSF) 过去都使用 Expression Language (EL) 的不同变体。它们在 JSP 2.1 中的统一提供了新的机会,允许您在定制 JSP 标记中使用 deferred values 和 deferred method 属性。本文展示了如何开发基于 JSP 标记文件的 Java Web 组件,它的构建比 JSF 组件更加简单和容易。
    2008年8月19日  
 
面向 Java 开发人员的 Scala 指南: 集合类型
在 Scala 中,对象占有一席之地,然而,也经常使用到一些函数类型,比如元组、数组和列表。在这一期由 Ted Neward 撰写的流行系列文章中,您将探究 Scala 中的函数部分,并且首先研究 Scala 对函数语言中常见类型的支持。
    2008年8月15日  
 
构建 RESTful Web 服务
具象状态传输(Representational state transfer,REST)是设计基于命名资源而非消息的松耦合应用程序的一种风格。构建 RESTful 应用程序的最困难的部分在于确定要公开哪些资源。解决了这个问题之后,再使用开源 Restlet 框架构建 RESTful Web 服务就是小菜一碟了。本教程从 REST 的基本概念开始,逐步指导您使用 Restlet 框架构建应用程序。
    2008年8月12日  
 
编写高性能 Java 数据访问应用程序,第 1 部分: pureQuery 带注释的方法风格简介
pureQuery 是一种高性能 Java 数据访问平台,其目标主要是简化数据访问应用程序的开发和管理。它由工具、API 和运行时组成。本文介绍 pureQuery 带注释的方法风格 —— 这是一种简单、灵活的风格,属于命名查询(named-query)范例,可以静态或动态地执行 SQL。本文首先解释为什么开发人员要选择使用带注释的方法风格编写 pureQuery 应用程序,再解释带注释的方法风格与 pureQuery 内联编程风格之间的差异,并简要概述 pureQuery 带注释的方法的强大特性。
    2008年8月12日  
 
编写高性能 Java 数据访问应用程序,第 2 部分: pureQuery 内联方法风格简介
IBM pureQuery 是一种高性能 Java 数据访问平台,其目标主要是简化数据访问应用程序的开发和管理。它由工具、API 和运行时组成。pureQuery 引入了两种编程风格,以帮助用户通过简单但是强大的 API 访问数据库。本文介绍其中的一种风格,即内联方法编程风格,并讨论如何使用它有效地查询和更新数据库。本文还探索使用内联方法编程风格的一些优点和关键特性。
    2008年8月12日  
 
在 Eclipse 中用 Java 实现百灵报表(BIRT)的事件处理
百灵报表(BIRT)是一个非常实用的开源报表工具,它不仅能满足商业智能领域报表设计的一般需求,还可以通过与 Java 语言相结合,来实现一些更为丰富的个性化报表样式。本文通过一个简单的实例,在 Eclipse 中创建一个单一工程,使用 Java 语言实现百灵报表(BIRT)的事件响应处理程序。引导读者在短时间内对百灵报表(BIRT)有一个初步了解,并掌握使用 Java 语言创建百灵报表(BIRT)事件响应处理程序的基本步骤和调试方法。
    2008年8月7日  
 
简化 Ajax 和 Java 开发,第 3 部分: 基于 DOM、JavaScript 和 JSP 标记文件构建 UI 特性
在本系列的第 1 部分,您了解了如何生成用来发送 Ajax 请求和处理 Ajax 响应的 JavaScript 代码。第 2 部分展示了如何使用约定和 JSP 标记文件创建 HTML 表单以最小化设置和配置。在本系列的第 3 部分中,您将了解如何开发基于 JavaScript 的客户端验证器和服务端验证器,后者被实现为支持 JavaScript 客户端验证器的 JSP 标记文件。此外,您还将了解如何使用资源包,它们会在更改后自动重载,而不需要重启应用程序。
    2008年8月7日  
 
Java 设计模式 101
设计模式以系统的方式获取一些软件开发专家的经验,提供一些常见的反复出现问题和解决方案以及这些方案的结果。本教程说明了:为什么模式在面向对象设计和开发中是有用的和重要的;如何对模式进行编制文档、分类和编目;何时应该使用模式;以及有哪些 重要的模式和如何实现它们。
    2008年8月6日  
 
用 JAX-RPC 构建 RPC 服务和客户机
远程过程调用(RPC)是基于简单对象访问(Simple Object Access Protocol,SOAP)或具象状态传输(Representational State Transfer,REST)的现代 Web 服务的前身。因为所有 Java 平台的 Web 服务 API 都构建在从 RPC 引入的概念之上,所以要想用 Java 语言编写有效且高效的 Web 服务,理解 Java API for XML-Based RPC(JAX-RPC)几乎是必需的。本教程讲解如何获取、安装和配置 JAX-RPC 并构建一个服务器端 RPC 接收器和一个简单的客户端应用程序。
    2008年8月6日  
 
通过 Data Web Services 使用面向 pureXML 的 Universal Services
配置、测试和修改 Universal Services 入门。
    2008年8月4日  
 
精通 Grails: Grails 与遗留数据库
在本期的精通 Grails 中,Scott Davis 探讨了 Grails 能够使用不符合 Grails 命名标准的数据库表的多种方法。如果您的 Java 类已经映射到了遗留的数据库中,Grails 允许您直接使用它们,无需做任何改变。您将看到将 Hibernate HBM 文件以及 Enterprise JavaBeans 3 注释与遗留 Java 类结合使用的例子。
    2008年8月4日  
 
面向 Java 开发人员的 Scala 指南: 实现继承
Scala 对实现继承的支持与 Java 语言一样丰富,但 Scala 的继承带来了一些惊喜。这个月,Ted Neward 介绍了以 Scala 方式完成的多态,还介绍了混合函数与面向对象的语言风格,同时使您依然能够完美地映射到 Java 平台的继承模型。
    2008年8月4日  
 
让开发自动化: 持续重构
重构是公认的改进现有代码的好方法。然而,如何通过一种一致且可重复的方式找到需要重构的代码呢?本期的让开发自动化将教您如何使用静态分析工具来识别需要重构的代码味道,并举例说明了如何改进坏味道代码。
    2008年7月31日  
 
使用 XPath 定位 XML 文档中特定的部分,第 2 部分
本教程的第 1 部分介绍了 XPath 的基础知识。学习了如何使用斜杠表示法、通配符、并集和简单文本来定位 XML 文档中任何位置的元素和属性。但是,有时候仅仅根据节点名进行匹配是不够的。谓词可以提供精细的高级搜索功能,支持对目标元素的属性值、父节点和子节点进行求值。可以在 XPath 中添加谓词,从而准确地找到所需的节点,而不必先找到一个比较大的节点集,然后再通过程序过滤这个节点集。
    2008年7月30日  
 
面向初级 Web 开发人员的 Tomcat
Apache Tomcat 应用服务器不再是高级 Web 系统开发人员的专用领域。在本教程中,Sing Li 将向初级 Web 开发人员展示如何利用他们当前的 Java 开发技能,使用 Tomcat 编写服务器端 JSP、servlet 和 Web 服务。
    2008年7月28日  
 
使用 WS-BPEL 和 IoC 构建可配置工作流程,第 1 部分: 了解动态业务工作流程
控制反转(Inversion of Control,IoC)与 Web 服务业务流程执行语言(Web Services Business Process Execution Language,WS-BPEL)是实现动态业务工作流程的有效工具。本文是一个包含两部分的系列的第一部分,在这里 Bilal Siddiqui 描述了业务工作流程的动态特性,推荐了一个两层的工作流程模型,该模型让您能够使用 XML 来构建可配置和灵活的解决方案。
    2008年7月28日  
 
Java API 参考文档,第 3 部分
本文对 JavaTOC doclet 以及如何使用它和扩展它进行了进一步地讨论。本文所描述的方法是 Javadoc 的标准解决方案,并且使用工具生成 Eclipse 插件程序帮助系统。我将通过 Custom doclet 向导在 Eclipse 中运行 JavaTOC doclet 以及 Ant 编译系统。JavaTOC 工具为 Java API 参考文档生成 TOC XML 导航。
    2008年7月24日  
 
Java 理论与实践: 使用通配符简化泛型使用,第 2 部分
在使用 Java 语言的泛型时,通配符非常令人困惑,并且最常见的一个错误就是在使用有界通配符的两种形式之一(“super T” 和 “? extends T”)时出现错误。别沮丧,您出错了吗?即使是专家也会犯这种错误,本月 Brian Goetz 将展示如何避免这个错误。
    2008年7月24日  
 
探索 OSGi 框架的组件运行机制
OSGi 框架为基于 Java 的组件开发提供了一套通用的和标准的解决方案,通过 OSGi 框架可以轻松实现组件信息的隐藏和共享。本文介绍了 OSGi 框架中的组件(Bundle)的运行机制,并结合实际示例加以说明,读者可以进一步深入了解 OSGi 框架的基本原理,并解决实际开发工作中遇到的类似问题。
    2008年7月24日  
 
应用设计模式编写易于单元测试的代码
单元测试是软件开发的一个重要组成部分,通过在软件设计、开发的过程中合理地运用设计模式,不但为系统重构、功能扩展及代码维护提供了方便,同时也为单元测试的实施提供了极大的灵活性,可以有效降低单元测试编码的难度,更好地保证软件开发的质量。
    2008年7月22日  
 
Java 下实现锁无关数据结构
本文将介绍锁无关数据结构的应用及其相关概念,并在 Java 环境下利用 JDK 1.5 提供的一组类进行锁无关数据结构设计,从而避免基于锁的数据结构可能引发的同步问题,以改善程序的可靠性。
    2008年7月18日  
 
使用 XPath 定位 XML 文档中特定的部分,第 1 部分
XML 是一种强调兼容性和灵活性的数据格式。但即便如 XML 这般用途广泛,如果不能快速查找文档中的特定部分或者在文档中筛选和选择性地定位数据,其作用也是有限的。XPath 提供了方便地引用文档中特定文本、元素和属性的能力,而且简便易学。而且 XPath 还是其他很多 XML 词汇表和技术的基础,如 XSL 和 XQuery。本教程从例子入手,手把手地讲解 XPath 的基础知识,包括各种选择器及其语义。
    2008年7月16日  
 
精通 Grails: Grails 与移动 Web
全球的手机用户已有 33 亿,并且呈上升趋势,而通过手机上网也越来越走俏。因此有开发移动 Web 的特殊需求。在本期的精通 Grails 系列中,Scott Davis 向您讲述了如何让 Grails 应用程序便于手机浏览。
    2008年7月15日  
 
通过一个 Java 应用服务器使用 JRuby on Rails 和 XML 增强 Ajax
Ruby on Rails 框架提供了一些非常方便的 XML 特性,这使使用数据库数据进行开发和为 JavaScript 应用程序提供 XML 格式的数据库数据变得更加简单。JavaScript 还具有内置的 XML 解析功能,因此可以非常轻松地接收和解析 XML 格式的数据。但是,如果要在不部署额外服务器的情况下接入 Java 应用程序,该如何做呢?这正是 JRuby 的工作。JRuby on Rails 是 Ruby on Rails 框架的 Java 实现,通过将 Ruby 应用程序部署到 Java 应用服务器中,将 Rails 的优点带入到 Java 编程当中。在本篇教程,您将开发一个可以部署到 Java 应用服务器的 JRuby on Rails 应用程序,它可以为 Ajax 客户机提供 XML 格式的数据库数据。Ajax 客户机专门为电影爱好者构建,方便他们管理在线电影数据库。您还将在同一个 Java 应用服务器上部署几个 Java Server Pages 页面,帮助 Ajax 客户机添加和更新电影。
    2008年7月10日  
 
健壮的 Java 基准测试,第 2 部分: 统计和解决方案
程序性能一直是受到关注的问题,即使在现在这样的高性能硬件时代,也是如此。本文是分两部分的文章系列的第二篇,讨论基准测试的统计问题并提供一个框架,可以用这个框架对各种 Java 代码进行基准测试,包括自我包含的微基准测试和调用整个应用程序的代码等等。
    2008年7月9日  
 
健壮的 Java 基准测试,第 1 部分: 问题
程序性能一直是受到关注的问题,即使在现在这样的高性能硬件时代,也是如此。本文是分两部分的文章系列的第一篇,讨论与 Java 代码基准测试相关的许多问题。第 2 部分讨论基准测试的统计并提供一个执行 Java 基准测试的框架。因为几乎所有新语言都是基于虚拟机的,所以本文讨论的基本原则适用于许多编程语言。
    2008年7月9日  
 
使用 IBM 静态工具优化 Java 代码,第 2 部分: 分析错误报告
通过本系列第 1 部分的介绍,读者应该可以轻松地在 Windows 上运行 BEAM,并能够对自己的 Java 工程进行代码分析了。本文我们将对其输出的报告结果文件进行分析,修改代码中的潜在错误,从而达到最根本的目的:提高代码质量。
    2008年7月3日  
 
面向 Java 开发人员的 Scala 指南: 关于特征和行为
Scala 并不仅仅只给 JVM 引入了函数概念,它还为我们提供了一种对于面向对象语言设计的现代视角。在这一期的面向 Java 开发人员的 Scala 指南中,Ted Neward 介绍了 Scala 如何利用特征(trait)使对象更加简单、更易于构建。您将了解到,特征与 Java 接口和 C++ 多重继承提供的传统极性既有相似之处,也有不同之处。
    2008年7月3日  
 
使用 IBM 静态工具优化 Java 代码,第 1 部分: 工具入门
IBM Checking Tool for Bugs Errors and Mistakes 是由 IBM 开发的静态代码分析工具,它可用于分析并查找 C、C++ 和 Java 代码中的一些不容易发现的潜在错误,从而提高代码质量。由于这个工具目前多用于 Linux/AIX 平台上对 C 和 C++ 语言的检查分析,而使用其在最常用的 Windows 平台上对 Java 进行静态分析的人不多,因此经验不足,文档匮乏。本文的主要目的是介绍如何在 Windows 上成功运行 BEAM,检查 Java 代码中的潜在错误,从而提高代码的安全性和稳定性。
    2008年7月3日  
 
在 Ruby on Rails 应用程序中重用 Java 代码
通过 Ruby Java Bridge (RJB) 可以直接将 Java 类装载到 Ruby on Rails 应用程序,或者从这些应用程序中调用 Java 类。本教程展示如何应用这个工具包,在现代的 Web 开发平台上重用遗留的 Java 应用程序代码。
    2008年6月30日  
 
BTT Element Factory -- 配置简洁的依赖注入容器
依赖注入(Dependency Injection)又称控制反转(Inversion of control),是当前面向对象编程领域的一个热点话题。本文简要的介绍了什么是依赖注入,并追溯依赖注入的历史,最后介绍了 IBM WebSphere Multichannel Bank Transformation Toolkit(BTT)所提供的依赖注入容器 Element Factory 的独特之处。
    2008年6月30日  
 
面向 Java 开发人员的 Scala 指南: Scala 控制结构内部揭密
Scala 是专为 Java 平台编写的,因此其语法设计会使 Java 代码编码人员感觉很轻松。同时,Scala 为 JVM 提供了函数语言的固有的强大功能,并以这些函数设计概念为出发点。在这一期的 “面向 Java 开发人员的 Scala 指南” 系列文章中,Ted Neward 将介绍两种语言之间的细微差异,从一些控制结构(比如 if、while 和 for)开始介绍。正如您将要学习到的那样,Scala 为这些结构提供了一些在其 Java 等效物中无法获得的功能和复杂性。
    2008年6月27日  
 
在 SCA Module 中使用 iBATIS 框架实现数据持久层
本文是继“在 SCA Module 中使用 Hibernate 框架实现数据持久层”一文之后,继续探讨使用 iBATIS 实现 SCA Module 的数据持久层技术。本文将使用和上一篇文章相同的例子,以便与读者比较其中的异同。
    2008年6月26日  
 
让开发自动化: 文档化一键通
项目文档化通常都是交付软件产品时不可避免的难题。但是想象一下如果仅需单击一个按钮就能够生成文档呢?在本期的让开发自动化中,自动化专家 Paul Duvall 阐述了如何运用开源工具自动生成统一建模语言(Unified Modeling Language,UML)图、构建图、实体关系图(entity-relationship diagram,ERD)乃至用户文档。
    2008年6月24日  
 
COBOL 式死亡
对于最近有关 Java 即将退出历史舞台的传言,您可能想知道在这个时候放弃使用 Java 平台并转而使用更新的技术是否时机成熟?在作出您的判断之前,请先回顾并查看一下 Java 生态系统以及它的竞争者,看看这些传闻是否站得住脚。换而言之,了解整个 Java 世界目前的现状,并客观公正地评判这个平台。
    2008年6月17日  
 
在 Eclipse 中嵌入 NASA World Wind Java SDK
NASA 开发的开源 World Wind Java (WWJ) SDK 为地理信息系统(Geographic Information Systems,GIS)社区提供了新的可能性。World Wind 是一种使用 Java 语言和 OpenGL 编写的 3D 交互式地球查看工具,使用户可以从外太空观看地球上的任何地方。本文将讲述想要增强基于 Eclipse 的 应用程序的 GIS 开发人员如何将 WWJ SDK 作为插件嵌入到 Eclipse 中。
    2008年6月17日  
 
使用 Apache HttpClient 突破 J2EE 站点认证
商业性 Web 站点大都提供站点认证功能以保护某些受限资源,HTTP 协议和 J2EE 规范对 Web 站点的认证过程都已有了详尽的定义,常见浏览器都能根据相应协议提供对应的界面形式帮助用户完成站点的认证过程。但在某些情况下,我们需要编写程序直接获取站点的受保护资源,在这类情况下,就不能利用浏览器给定的界面去完成认证,而需要我们根据不同的协议人工地发送相应请求以完成整个认证过程。本文根据这种需求给出一个基于 Apache HttpClient 应用包的解决方案。
    2008年6月13日  
 
高效率创建安全的 Java 应用, 第 2 部分: 使用 Rational AppScan 最大化 Java Web 应用程序的安全性
本文是系列教程的第 2 部分,主要内容是使用 Rational Application Developer、Data Studio 和 Rational AppScan 创建安全的基于 Java 的 Web 应用程序。在第 1 部分中,您已经使用 Rational Application Developer 开发了一个 Java Web 应用程序,然后在 WebSphere Application Server 上部署了这个用 Java Server Pages (JSP)技术开发的应用程序。本文将向您介绍如何使用 Rational AppScan 扫描第 1 部分中所创建的 Wealth 应用程序,以发现和修补所有已知的网络安全漏洞。本文还将展示如何重新扫描您的应用程序,并生成报告。
    2008年6月12日  
 
精通 Grails: Grails 服务和 Google 地图
在精通 Grails 系列的这一期中,Scott Davis 向您展示如何使用免费的 API 和 Web 服务将地图添加到 Grails 应用程序。他仍将使用前面几期的 trip-planner 示例应用程序,并通过地理编码、Google Map 和 Grails 服务进行进一步改进。
    2008年6月12日  
 
用 Gant 构建软件
Gant 是一个高度通用的构建框架,通过利用 Groovy 和 Apache Ant,它允许您在使用所有 Ant 功能的同时实现编程逻辑。在本教程中,Andy Glover 将一步一步地引导您了解 Gant 的基础知识。您将了解如何利用 Gant 灵活的特定于领域的语言在构建中定义行为,如何重用 Ant 特性,以及如何定义使构建更高效、甚至更具前摄性的函数。
    2008年6月10日  
 
让开发自动化: 利用 Ivy 管理依赖项
管理项目和工具之间的源代码依赖项往往非常困难,但并不一定总是如此。在这一期“让开发自动化”专栏中,自动化专家 Parl Duvall 介绍了如何利用 Apache Ant 项目中的 Ivy 依赖项管理器来处理所有重要 Java 项目必须管理的无数依赖项。
    2008年6月10日  
 
简化 Ajax 和 Java 开发,第 2 部分: 使用约定最小化设置和配置
为了适应不同的应用程序需求和开发样式,大部分 Web 框架都在尽力变得灵活和可扩展。不幸的是,这有时候会增加复杂性和处理开销,还会产生很大的配置文件。本文将展示如何使用 JSP 标准标记库(JSTL)和 JSP 标记文件实现数据绑定、页面导航和样式约定,从而简化开发和维护。您将了解如何构建带有动态属性的定制 JSP 标记,使快速更改应用程序变得更加容易。此外,本文最后一节包含了一个使用 Ajax 提交 Web 表单的示例。
    2008年6月10日  
 
用 JMS 保护 XML 消息,第 2 部分: 使用 XSS4J 实现 XML 安全性
Java 消息服务(Java Message Service,JMS)是一种基于 Java 语言的消息传递 API。XML 提供了一种简单、人类可读的信息交换数据格式,在企业数据格式化中是一种很受欢迎的语法。因此,在 JMS 应用程序中集成 XML 可以为企业应用程序带来很大的优势。本教程演示了使用 XML Security Suite for Java (XSS4J) 在现有 JMS 网络上实现安全的 XML 消息传递。
    2008年6月5日  
 
Java 6 RowSet 使用完全剖析
C# 提供了 DataSet,可以将数据源中的数据读取到内存中,进行离线操作,然后再同步到数据源。同样,在 Java 中也提供了类似的实现,即 RowSet。javax.sql.rowset 包下,定义了五个不同的 RowSet 接口,供不同的场合使用。本文将分别对这五个 RowSet 的使用场合以及详尽用法进行介绍,并且描述使用中可能出现的问题,以提醒读者在实际使用时绕开这些问题。
    2008年6月5日  
 
联合使用 CSS、JavaScript 和 JSF 精心打造 Ajax 应用程序,第 2 部分: 动态 JSF 表单
    2008年6月5日  
 
Jenabean:将 JavaBeans 轻松绑定到 RDF
资源描述框架(Resource Description Framework,RDF)是万维网联盟(World Wide Web Consortium,W3C)提出的有关在 Web 中链接和表示数据的标准。为 Semantic Web 开发应用程序的 Java 开发人员需要实现 RDF 属性与 Java 类型的相互转换。Jenabean 使用 Jena Semantic Web 框架的灵活的 RDF/OWL API 持久化 JavaBeans,这使 Java 开发人员更容易更熟练地完成编写应用程序的任务。
    2008年6月2日  
 
使用 Grester 简化 Java 应用程序的 JUnit 测试
您一定编写过大量单元测试。作为一名开发人员,您每天都要运行很多次测试,尤其在持续集成环境中更是如此。但是如果因为修改源代码而打断了这些单元测试,会带来什么影响呢?当 Jester 与 Maven 结合在一起构造 Grester 后,您很快就会找到解决方案。
    2008年6月2日  
 
使用泛型和并发改善集合
Java Collections Framework 是 Java 平台的一个重要部分。桌面和企业应用程序通常都使用该框架来聚集集合项。本文将向您展示如何使用集合,同时利用 Java SE 6 中对该框架的增强。通过使用泛型和并发功能使您的应用程序具有更好的维护性和可伸缩性,您可以实现比 HashMap 或 TreeSet 更丰富的功能。
    2008年6月2日  
 
让开发自动化: 自动负载测试
负载测试通常在开发周期的后期执行,但是并不一定要这样。在让开发自动化的这一期,自动化专家 Paul Duvall 将向您描述如何创建一个运行 JMeter 测试的预定集成构建,发现和修复开发周期中出现的问题。
    2008年5月29日  
 
JSR 286 Portlet 的新特性,第 3 部分: Portlet 过滤器和 Portlet 窗口
在本系列的 第 1 部分 简要回顾了JSR 168 Portlet,并对 JSR 286 Portlet 的新增特性做了详细的介绍,第 2 部分和第 3 部分将通过在 Apache Pluto 2.0 平台上开发和部署 Portlet 应用程序, 向读者介绍 JSR 286 Portlet 新特性的使用方法。本文将介绍 JSR 286 Portlet 的 Portlet 过滤器和 Portlet 窗口应用程序开发。
    2008年5月29日  
 
在 Java 环境中使用 XQuery
XQuery API 使得查询和搜索 XML 文档非常容易,Sun 的 XQuery API for Java 为 Java 应用程序提供了这样的能力。
    2008年5月29日  
 
Java 理论与实践: 使用通配符简化泛型使用
通配符是 Java 语言中最复杂的泛型之一,特别是围绕捕获通配符的处理和令人困惑的错误消息。在这一期的 Java 理论与实践中,资深 Java 开发人员 Brian Goetz 解释了一些由 javac 生成的怪异错误消息并提供了一些简化泛型使用的技巧和解决方法。
    2008年5月26日  
 
多种计时器的比较与分析
本文主要比较和分析了 java.util.Timer,Commonj Timer 和 IBM WebSphere Application Server Scheduler 三种计时器的特点和差异,深入剖析了不同计时器的使用场景,给出了使用不同类型计时器的代码片段。
    2008年5月26日  
 
持久化模式,第 2 部分: 提高代码重用和改进性能
第 1 部分讨论用现代对象-关系映射(ORM)工具实现一致且紧凑的领域模型和持久化层的基本概念。在第 2 部分中,作者将描述基领域实体、领域模型中的行为以及泛型 DAO 的高级特性,还要提供改进领域模型的数据获取性能的策略。
    2008年5月22日  
 
持久化模式,第 1 部分: 现代 ORM 工具的策略和最佳实践
尽管有许多开发人员使用对象-关系映射(ORM)工具构造应用程序的持久化层,但是也有一些开发人员对于如何使用这些工具有误解,常常不必要地重复编写代码。本文作者在构造持久化层方面具有丰富的经验,他们对持久化模式和最佳实践有清晰的认识。本文分为两部分,第 1 部分讨论一致且紧凑的领域模型和持久化层的基本概念。第 2 部分扩展第 1 部分中讨论的概念。
    2008年5月22日  
 
JSR 286 Portlet 的新特性,第 2 部分: 资源服务、事件与共享呈现参数
在本系列的第 1 部分简要回顾了 JSR 168 Portlet,并对 JSR 286 Portlet 的新增特性做了详细的介绍, 本文将通过在 Apache Pluto 2.0 平台上开发和部署 Portlet 应用程序, 向读者介绍 JSR 286 Portlet 新特性的使用方法。本文将首先介绍 JSR 286 参考实现 Apache Pluto 2.0 平台的构建过程,然后通过在 Apache Pluto 2.0 平台上开发和部署 JSR 286 Portlet 应用程序, 向读者介绍 JSR 286 Portlet 资源服务和新增的交互功能:事件和共享呈现参数。
    2008年5月22日  
 
使用 Google Gears 开发离线应用
本教程介绍了 Google Gears 离线应用的基本知识和离线技术实现的基本思想,并通过实际需求的实现来介绍运用 Web 技术结合 Gears 开发离线应用:首先,基于 Ajax 技术开发了简单的应用,接着依次介绍如何使用 Google Gears 三大核心组件包装传统应用,最后组合成完整的 Gears 离线应用。
    2008年5月16日  
 
精通 Grails: 使用 Ajax 实现多对多关系
在 Web 应用程序中,多对多(m:m)关系很难处理。在精通 Grails 系列的这一期文章中,Scott Davis 将向您展示如何在 Grails 中成功实现 m:m 关系。了解如何通过 Grails 对象关系映射(Grails Object Relational Mapping,GORM)API 和后端数据库处理多对多关系。学习如何使用 Ajax(Asynchronous JavaScript + XML)流线化用户界面。
    2008年5月15日  
 
Scala 和 XML
Scala 是一种在 Java 虚拟机(Java Virtual Machine,JVM)上运行的流行的新型编程语言。Scala 被编译成字节码,因此它可以利用 Java 编程语言。然而它的语法使其在某些场景下成为 Java 的一个强有力的候补。这些场景之一就是 XML 处理。Scala 容许您以多种方式导航和处理解析后的 XML。它还为 XML 构建提供了一流支持,因此无需创建 XML 字符串或以编程方式构建 DOM 树。在本文中,您将了解 Scala 在这些方面的实际效用以及 Scala 如何将 XML 处理转变为一种乐事。
    2008年5月15日  
 
Tapestry 和 Wicket 的比较
JSF 和 Struts 是开发人员在进行 Web 开发时使用的传统的组件框架。但还有另外一种选择,Tapestry 和 Wicket,它们是面向组件的 Web 框架,其设计目标专门针对 Web 应用程序创建。本文采用 Tapestry 和 Wicket 技术开发了一个简单的应用程序示例,该程序实现了一个 to-do 列表的工作流。
    2008年5月15日  
 
使用 XStream 把 Java 对象序列化为 XML
XML 序列化用处很多,包括对象持久化和数据传输。但是一些 XML 序列化技术实现起来可能很复杂。XStream 是一个轻量级的、简单易用的开放源代码 Java 库,用于将 Java 对象序列化为 XML 或者再转换回来。了解如何设置 XStream,如何使用它序列化和逆序列化对象以及从 XML 配置文件读取配置属性。
    2008年5月8日  
 
使用 Acegi 保护 Java 应用程序,第 5 部分: 保护 JSF 应用程序中的 JavaBean
Bilal Siddiqui 在这篇文章中总结了本系列,演示了如何用 Acegi 在 JSF 应用程序中保护对 JavaBean 的访问。可以使用多种方式配置安全 bean,包括直接在 JSF 标签中使用受 Acegi 保护的反转控制(IOC)bean。
    2008年5月8日  
 
使用全新的 IBM pureQuery 工具提高 Java 数据库开发生产力,第 4 部分: 针对 Informix 数据库使用 Data Studio 和 pureQuery
全面了解如何对 Informix 数据库使用 Data Studio 和 pureQuery。了解在 Data Studio 中操作数据库和构建应用程序所需了解的所有内容。
    2008年5月6日  
 
使用 Rational Functional Tester 和 AOP 相结合测试 SWT 应用程序
本文介绍了一种解决方法,能够使 Rational Functional Tester(RFT) 捕捉到 SWT 应用程序的对象,并且采用 AOP(Aspect Oriented Programming)后编译时(Post-Complier weave)的方式把它注入到 SWT 应用程序中。该方法无须更改 SWT 应用程序的源代码,减少了开发代码与测试代码的耦合,在基于 SWT 应用程序的测试中有广泛的应用前景。
    2008年5月6日  
 
RichFaces 简介
如今,客户希望并且已经开始期望基于浏览器的应用程序提供桌面特性。RichFaces 是用于 Java Server Faces(JSF)的一种新的用户界面组件套件。除了其他优点外, RichFaces 还提供内置的 JavaScript 和 Ajax 功能,从而满足客户期望。Joe Sam Shirah 根据最近的现场项目经验,将一些新的工具添加到您的工具箱中,包括通过 Facelet 使用 RichFaces 的常见设置,以及一些特定的组件示例。
    2008年5月6日  
 
简化 Ajax 和 Java 开发,第 1 部分: 用 JSP 标记文件动态生成 JavaScript 代码
很多 Web 开发人员都经常抱怨说 Java EE 太复杂、构建新的 Web 组件太难、定制现有的组件也没有预想的那样简单,并且即便是很小的更改都需要重新启动应用程序。本系列给出了针对这些问题的解决方案,即采用代码生成器、约定、脚本语言和先进的 JavaServer Pages (JSP) 特性。在本文中,您将了解如何基于 JSP 标记文件构建可重用的 Ajax 和 Java 组件,而这些 JSP 标记文件很容易开发和部署。更改之后,JSP 标记文件会由 Java EE 服务器自动重编译,而无须重启应用程序。此外,您还能完全控制所生成的代码,并能轻松地定制这些轻量级组件,因为它们使用的是 JSP 语法。
    2008年5月5日  
 
Jazz 系列演示,第 3 部分
该系列演示将帮助您了解一套新的团队协作开发平台——Jazz,本部分将向您介绍如何设置 Jazz 中的项目。
    2008年4月30日  
 
Jazz 系列演示,第 4 部分
该系列演示将帮助您了解一套新的团队协作开发平台——Jazz,本部分将向您介绍作为一个开发者如何加入到一个项目中。
    2008年4月30日  
 
实现 Castor 数据绑定,第 4 部分: 把 Java 对象绑定到 SQL 数据库
Castor 可以把 Java 对象中的数据直接绑定到数据库表。本文介绍如何从 Java 对象编组到 SQL。
    2008年4月30日  
 
JSR 286 Portlet 的新特性,第 1 部分: Portlet 2.0 新特性介绍
本文是系列文章的第 1 部分,对 JSR 168 进行了简单的回顾,并对 JSR 286 最终草案所提供的新特性包括事件、共享呈现参数、资源服务、过滤器以及 portlet 窗口等新概念进行了详细地介绍。
    2008年4月29日  
 
使用全新的 IBM pureQuery 工具提高 Java 数据库开发生产力,第 3 部分: pureQuery 快速应用程序开发
通过使用 IBM pureQuery 平台和 Eclipse 工具,用比 JDBC 少得多的代码 快速构建简单的高性能的数据访问层,其生产力比任何其他基于 Eclipse 的工具高得多。
    2008年4月28日  
 
在 DB2 Data Warehouse Edition 中使用 Business Intelligence Reporting Tool,第 1 部分: 在 DWE Design Studio 中安装 BIRT 和示例数据
BIRT(Business Intelligence Reporting Tool) 是一种用来生成报告的开放源码工具,对于 DWE 用户非常有用。它能够根据关系数据生成报告并提供交互能力。本教程系列解释如何安装 BIRT,使用它根据关系数据创建报告,然后把报告部署在 Web 服务器上。在本教程中,学习在 Design Studio 中使用 BIRT 的最佳实践。
    2008年4月28日  
 
Jazz 系列演示,第 2 部分
本次演示将帮助您了解一套新的团队协作开发平台——Jazz。
    2008年4月28日  
 
Jazz 系列演示,第 1 部分
本次演示将帮助您了解一套新的团队协作开发平台——Jazz。
    2008年4月28日  
 
使用 Spring 2 Portlet MVC 框架构建 Portlet 应用
Spring 除了支持传统的基于 Servlet 的 Web 开发之外,也支持 JSR 168 Portlet 的开发。Spring Portlet MVC 框架尽可能多地继承了 Spring Servlet MVC 框架技术,使用了相同的底层表现层抽象和整合技术。同时,由于 JSR 168 Portlet 独特的工作流程,Spring Portlet MVC 框架的使用过程较之 Spring Servlet MVC 框架,存在一些差异。并且,针对 Portlet 应用,同 Spring 1.x 相比,Spring 2.x 在 Bean 的定义方面存在特性的增强。本文的目的就是通过开发和部署一个基于 Spring 2.x 的 Portlet 应用,向读者介绍利用 Spring 2.x 进行 Portlet MVC 应用开发的要点和关键流程。
    2008年4月28日  
 
测试 Java 类的非公有成员变量和方法
测试是软件开发过程中的重要环节之一,充分的测试是保证软件可靠性的重要基础。然而,测试人员经常遇到一个尴尬的场景,就是当我们要测试一个类的成员变量或方法时,却发现该类的成员变量或方法是非公有的(私有或保护的),这令很多有经验的测试人员也感到头痛。本文总结了访问类的非公有成员变量或方法的四种途径,并提供它们在测试领域中的常见应用场景。
    2008年4月25日  
 
使用全新的 IBM pureQuery 工具提高 Java 数据库开发生产力,第 2 部分: 探测和纠正 Java 程序中的 SQL 问题
使用 IBM pureQuery 技术和工具探测 Java 程序中的各种 SQL 问题。在产品开发和部署期间的各种场景中提升开发数据库应用程序的生产力,定制 SQL 检验来满足您的需要。
    2008年4月25日  
 
在 PHP 和 Java 应用程序中使用 XML 数据库
伴随着 XML 的流行,原生 XML 数据库也越来越普及,因为数据以原生的 XML 格式而不是通过关系数据库中的表存储。使用原生 XML 数据库意味着要修改模式只需要对代码略加修改而不需要改变数据库。PHP 和 Java(TM) 开发人员可通过使用原生 XML 数据库获得莫大的好处。本教程引导您迅速熟悉原生 XML 数据库的使用,看看它会为 XML 开发带来什么样的好处。
    2008年4月24日  
 
精通 Groovy
本教程适合于不熟悉 Groovy,但想快速轻松地了解其基础知识的 Java 开发人员。了解 Groovy 对 Java 语法的简化变形,学习 Groovy 的核心功能,例如本地集合、内置正则表达式和闭包。编写第一个 Groovy 类,然后学习如何使用 JUnit 轻松地进行测试。借助功能完善的 Groovy 开发环境和使用技能,您将轻松完成本教程的学习。最重要的是,您将学会如何在日常 Java 应用程序开发中联合使用 Groovy 和 Java 代码。
    2008年4月21日  
 
动态编程和基因序列比对
分子生物学越来越多地将计算机科学算法作为研究工具。本文将介绍生物信息学 —— 用计算机解决生物学问题。学习动态编程的基本原理,这是一种高级的计算技术,您将发现它在许多编程项目中都很有用。
    2008年4月17日  
 
使用 WebSphere Application Server 构建 EJB 3.0 应用程序
EJB 3.0 是简化企业中应用程序开发的主要发展方向。通过使用 WebSphere Application Server V6.1 Feature Pack for Enterprise JavaBeans 3.0,您可受益于简化的开发体验、新的持久性模型和一些新功能(如拦截器),同时仍可以将其部署到强健的 WebSphere 平台。 (IBM WebSphere Developer Technical Journal)
    2008年4月17日  
 
利用 IBM Web 2.0 Feature Pack 创建 Ajax 风格的架构
本文展示了如何借助 IBM WebSphere Application Server Feature Pack for Web 2.0 以 Ajax 风格的架构增强 Java 2 Platform, Enterprise Edition (J2EE) 应用程序。了解如何在不重写整个 Web 应用程序的情况下,将 Ajax 风格的架构与现有的应用程序结合起来。此外,您还会了解如何将 Web 2.0 Feature Pack 应用到面向 IBM WebSphere Application Server 的 J2EE 应用程序中。
    2008年4月15日  
 
使用 Drools 规则引擎实现业务逻辑
使用规则引擎可以通过降低实现复杂业务逻辑的组件的复杂性,降低应用程序的维护和可扩展性成本。这篇更新的文章展示如何使用开源的 Drools 规则引擎让 Java 应用程序更适应变化。Drools 项目引入了一个新的本地规则表达式语言和一个 Eclipse 插件,使 Drools 比以前更容易使用。
    2008年4月15日  
 
Java 理论与实践: 应用 fork-join 框架,第 2 部分
Java 7 中的 java.util.concurrent 包的新增功能之一是一个用于 fork-join 风格的并行分解的库。在本系列的第 1 部分中,Brian Goetz 演示了 fork-join 如何为众多的算法提供一种自然的分解机制,以有效地利用硬件的并行性。在本文中,他将介绍 ParallelArray 类,这个类简化了内存中数据结构上的并行排序和搜索操作。
    2008年4月15日  
 
精通 Grails: 用 Groovy 服务器页面(GSP)改变视图
    2008年4月1日  
 
使用 Spring 2.5 TestContext 测试框架
Spring 2.5 TestContext 测试框架用于测试基于 Spring 的程序,TestContext 测试框架和低版本 Spring 测试框架没有任何关系,是一个全新的基于注解的测试框架,为 Spring 推荐使用该测试框架。
    2008年3月28日  
 
使用命名参数处理 CallableStatement
探索 IBM Informix Dynamic Server (IDS) 的一项强大的新特性,这项名为 “CallableStatement 中的命名参数” 的特性使您可以使用参数名称标识参数,而无需使用顺序位置。这项特性扩展了使用 CallableStatement 的能力,从而既可以通过顺序位置使用它们,也可以通过参数名称来使用。了解两种技术的区别,看看命名参数相对于顺序位置有什么优点。
    2008年3月20日  
 
使用 Acegi 保护 Java 应用程序,第 4 部分: 保护 JSF 应用程序
Bilal Siddiqui 将继续在他的系列文章中展示如何使用 Acegi 保护 JavaServer Faces (JSF) 应用程序。配置 JSF 和 Acegi,让它们在 servlet 容器中协作,探索 JSF 和 Acegi 组件如何彼此协作。
    2008年3月20日  
 
面向 Java 开发人员的 Scala 指南: 类操作
Java 开发人员可以将对象作为理解 Scala 的出发点。本文是 “面向 Java 开发人员的 Scala 指南” 系列的第二期,作者 Ted Neward 遵循对一种语言进行评价的基本前提:一种语言的威力可以直接通过它集成新功能的能力衡量,在本文中就是指对复数的支持。跟随本文,您将了解在 Scala 中与类的定义和使用有关的一些有趣特性。
    2008年3月18日  
 
使用 Spring 2.5 基于注解驱动的 Spring MVC
基于注解的配置有越来越流行的趋势,Spring 2.5 顺应这种趋势,为 Spring MVC 提供了完全基于注解的配置。本文将介绍 Spring 2.5 新增的 Sping MVC 注解功能,讲述如何使用注解配置替换传统的基于 XML 的 Spring MVC 配置。
    2008年3月14日  
 
从 XMLBeans 接收事件
XMLBeans 是一种出色的 XML-Java 数据绑定技术,但是它缺少为模型更改注册观察器的功能。但是,可以对生成的普通 Java 对象(POJO)进行定制,在其中包含必需的接口和更改的通知功能。在 Eclipse 中创建一个 Sudoku Rich Client Platform(RCP)游戏应用程序,学习如何使用事件检验用户的输入。
    2008年3月13日  
 
Rope:理论与实践
Java 语言默认的 String 和 StringBuilder 类很难支撑起操纵大量字符串的系统。rope 数据结构可能是更好的替代品。这篇文章介绍 Ropes for Java,这是针对 Java 平台的 rope 实现;本文还将研究性能问题,并提供一些有效使用 rope 库的指导。
    2008年3月11日  
 
在 AIX Version 5.3 中使用 Java 和 PHP 技术进行开发: 第 6 部分
使用在本系列文章前面的教程中所创建的数据库,为 Java(TM) 业务应用程序构建 PHP Web 接口。这个 PHP Web 接口可以收集来自用户的信息,并将会话数据发送到 Java 业务应用程序,以进行相应的处理和响应。
    2008年3月10日  
 
联合使用 CSS、JavaScript 和 JSF 精心打造 Ajax 应用程序,第 1 部分: 增强 JSF 页面的外观
典型的 Web 应用程序都需要使用级联样式表(Cascading Style Sheets,CSS)、JavaScript 和服务器端的框架(比如 JavaServer Faces,JSF)。CSS 让您可以在 Ajax 和其他应用程序内部更改 Web 组件的可视特征,以使它们具备与众不同的友好外观。在这个包含两部分的系列文章的第 1 部分中,您将了解如何使用标准 JSF 组件的一些与 CSS 相关的特性。此外,您还将了解如何创建一个可用来设置嵌套组件默认样式的定制 JSF 组件,以确保 Web 应用程序的所有页面具有一致的外观。您还可以使用这个技巧来程序化设置其他的组件属性,本系列的第 2 部分将展示如何借助 JavaScript 让 JSF 表单更加动态。
    2008年3月7日  
 
精通 Grails: GORM - 有趣的名称,严肃的技术
任何好的 Web 框架都需要一个可靠的持久性策略。在 “精通 Grails” 的第二期文章中,Scott Davis 介绍了 Grails 的对象关系映射(Grails Object Relational Mapping,GORM)API。在本文中将看到用 GORM 能够轻松地在 Grails 应用程序中创建表关系、实施数据验证规则、修改关系数据库。
    2008年3月7日  
 
使用 XML 实现 REST 式的 SOA
面向服务体系结构常常意味着大型企业所用的重型技术。SOA 体系结构模式的优点也适用于比较小的环境。在采用 SOA 原理时,不必承担大型环境所需的所有开销。可以使用 REST 这样的轻量型技术实现 SOA。本文讲解实现的方法。
    2008年3月6日  
 
用 Eclipse 开发 iPhone Web 应用程序
学习如何使用 Eclipse、Aptana 的 iPhone Development 插件及 iUi 框架创建 iPhone Web 站点。了解如何开发 iPhone 的 Javadoc 查看器,用户界面设计的技巧,以及 iPhone 应用程序开发的前景。
    2008年3月5日  
 
JavaServer Faces 1.2 入门,第 2 部分: JSF 生命周期、转换、检验和阶段监听器
本教程系列讨论 Java Server Faces(JSF)技术的基础知识,JSF 是一种服务器端框架,它提供一种基于组件的 Web 用户界面开发方式。第 1 部分概述了 JSF 1.2 并提供了一个基本的应用程序。本部分帮助您掌握更高级的 JSF 特性:定制的检验器、转换器和阶段监听器,同时了解 JSF 应用程序的生命周期。
    2008年3月4日  
 
实现 Castor 数据绑定,第 3 部分: 模式之间的映射
使用 Castor 将笨拙或不方便的 XML 文档中的数据转换为定制的 Java 对象。
    2008年3月3日  
 
使用 Spring 2.5 注释驱动的 IoC 功能
基于注释(Annotation)的配置有越来越流行的趋势,Spring 2.5 顺应这种趋势,提供了完全基于注释配置 Bean、装配 Bean 的功能,您可以使用基于注释的 Spring IoC 替换原来基于 XML 的配置。本文通过实例详细讲述了 Spring 2.5 基于注释 IoC 功能的使用。
    2008年2月28日  
 
理解 pureQuery,第 2 部分: 协助类建模器实现数据建模
学习 pureQuery 的特性如何帮助面向对象开发人员使用传统的类建模来定义一组数据库关系工件。
    2008年2月25日  
 
使用 Echo2 框架开发基于 Ajax 的单页面系统,第 1 部分: Echo2 基础
本系列教程将由浅入深的介绍 Echo2 框架,这是一个开源的完全基于 Ajax 技术的开发框架。我们首先会介绍基本知识,让您能够使用 Echo2 来开发应用。然后在后续部分中介绍如何结合使用 Spring 与 Hibernate,开发自己的 Echo2 组件,以及在实际应用中的进行改进。
    2008年2月21日  
 
Apache CXF 简介
本教程介绍了 Apache CXF 服务框架的基本知识,并通过讲解自带的例子来初步体验通过 CXF 进行服务的发布与消费;然后搭建基于 Eclipse 的 Apache CXF 开发环境,并通过一个“调查投票”示例应用程序来演示 CXF 整合 Spring 2.0 的基本开发过程。
    2008年2月21日  
 
使用 JavaFX Script 创建富应用程序
JavaFX Script 于去年春天问世,它是一种在 Java Platform, Standard Edition 6(Java SE)上运行的脚本编制语言,使用它可以轻松编写复杂用户界面。借助本文提供的示例应用程序,您可以学习 JavaFX 脚本编制语言的基础知识,并理解一些基本的 UI 组件。
    2008年2月18日  
 
精通 Grails: 构建您的第一个 Grails 应用程序
Java 程序员不需要放弃自己喜爱的语言和已有的开发基础设施就可以采纳一种新型的 Web 开发框架。在这个新推出的每月一期的 精通 Grails 系列的第一期中,Java 专家 Scott Davis 介绍了 Grails,并演示了如何构建您的第一个 Grails 应用程序。
    2008年2月14日  
 
面向 Java 开发人员的 Scala 指南: 面向对象的函数编程
在历史上,Java 平台一直属于面向对象编程的领域,但是现在,甚至 Java 语言的坚定支持者也开始注意应用程序开发中的一种新趋势:函数编程。在这个新的系列中,Ted Neward 介绍了 Scala,一种针对 JVM 将函数和面向对象技术组合在一起的编程语言。在本文中,Ted 将举例说明您为何应该花时间学习 Scala(例如并发),并介绍如何快速从中受益。
    2008年2月4日  
 
用 jpa2web 生成 Ajax J2EE Web 应用程序
了解并试用新的开放源码工具 —— jpa2web —— 这种工具可以根据带 JPA 注解的 bean 生成基于 Ajax 的 J2EE Web 应用程序。通过使用 ZK 框架,这个工具生成的应用程序提供一个友好的基于 Ajax 的 Web 用户界面,允许用户添加、删除、搜索、修改和连接与数据库同步的对象实例。
    2008年2月4日  
 
让开发自动化: 使用自动化加速部署
自动化构建不仅仅适用于开发团队 —— 在将软件从开发迁移到生产这一过程中也大有作为。在这一期让开发自动化中,自动化专家 Paul Duvall 将介绍如何结合使用 Ant 和 Java Secure Channel 将软件远程部署到多个目标环境中。
    2008年1月31日  
 
Windows 平台上长路径名文件的解决方法
上层逻辑控制和事务处理使用 Java 开发,而底层核心功能使用 C/C++ 实现,这已经成为一种较为通用的开发模式。但由于 Windows 操作系统的默认设置,上述语言在对长路径名(>260 字符)文件的处理时会遇到一些问题。本文列出了不同的 JDK 版本在 Windows 操作系统上对于长路径名文件处理的区别,给出了两种支持长路径名文件的 C/C++ 编程方法,同时还指出了从 JDK 5.0 开始才完全支持长路径名。使用本文的方法,可以解决在 Windows 平台上标准 API 函数对长路径名文件支持的局限性问题,给开发测试工作带来方便。
    2008年1月31日  
 
快速启动 Java 应用程序开发,第 2 部分: 利用免费软件轻松开发轻量级 Ajax 应用
Eclipse、DB2 Express-C 9.5 和 WebSphere Application Server Community Edition 2.0 的组合(所有这些都可以免费下载、使用和部署)是所有 Java 和 Java 企业开发所需的出色的从原型到生产的套件。通过这个套件还可以相对容易地(可能不太明显)利用这些久经考验的工具创建、测试和部署领先的、轻量级的应用程序。本教程将指导您进行小型人力资源应用程序的开发,首先使用传统的基于 JavaServer Pages (JSP) 的技术,然后使用 Ajax 将其迁移到高度交互的解决方案中。
    2008年1月25日  
 
快速启动 Java 应用程序开发,第 1 部分: 免费软件,快速开发
若要快速创建、测试和部署基于 Web 的应用程序或 Web 服务,您需要一个成熟的关系型数据库、一个兼容标准的 Web 应用服务器和一个灵活的 IDE。理想情况下,所有这些软件包都是经过生产测试的,易于获得和使用,并且相互之间可以完美集成。本教程介绍如何使用 IBM 支持的开放源码和免费软件启动基于 Web 的 Java 应用程序开发。您将了解从哪里可以下载这样的组件、如何安装以及如何使其立刻工作。
    2008年1月25日  
 
使用 Rational Application Developer 7.0 新特性开发 J2EE 应用
本文描述了如何使用 RAD V7 上的新特性快速开发一个典型的 J2EE 应用程序。通过本文可以了解 RAD V7 在使用 Ajax、JSF、Web Service 等技术开发基于 J2EE 的应用所提供的各种新特性以及对开发效率的提升。
    2008年1月24日  
 
JavaServer Faces 1.2 入门,第 1 部分: 构建基本应用程序
JavaServer Faces(JSF)技术是一种服务器端框架,它提供一种基于组件的 Web 用户界面开发方式。JSF 1.2(集成在 Java Enterprise Edition 5 中)纠正了 JSF 的一些缺陷并添加了一些出色的特性。这个教程系列讨论如何使用 JSF 1.2。本系列偏重示例,较少解释理论 —— 这是为了帮助您尽快开始使用 JSF。
    2008年1月18日  
 
DB2 Magazine:快速数据访问的捷径
虽然名声在外,但是 Java Database Connectivity(JDBC)编程方法实际上并不是那么令人激动。IBM 提供了一种集成的语言,这种语言可以同时查询关系数据库以及 Java 集合和数据库缓存,从而避免了开发过程中那些单调乏味的工作。
    2008年1月18日  
 
面向 Java 开发人员的 db4o 指南: 事务、分布和安全性
通过直接在面向对象的数据库(如 db4o)中存储对象,Java 开发人员可以获得很多好处。如果 OODBMS 缺乏对事务的支持或不能在分布式环境中使用数据(并保证其安全性),您可能不会过多地使用它。在面向 Java 开发人员的 db4o 指南的最后一期中,Ted Neward 展示了如何使用 db4o 处理 3 个与 Java 企业开发密切相关的问题:事务、分布式数据管理和 Web 应用程序安全性。
    2008年1月15日  
 
机器人、迷宫和包容体系结构
正如 IBM 计算机程序员 Paul Reiners 在本文中指出的,机器人模拟器既是严肃的研究工具,也是能够通过 Java 编程创造乐趣的领域。学习如何使用 Simbad(一种基于 Java 3D 技术的开放源码机器人模拟器)和 Java 语言创建能够跟踪光源和走迷宫的虚拟机器人,并了解包容体系结构的机器人设计概念。
    2008年1月11日  
 
用 Eclipse Europa 进行 Web 开发,第 3 部分:Ruby Development Toolkit 和 RadRails
成为一名 Web 开发人员恰逢其时。从来不曾像现在一样有如此多的技术选择。大量优秀的开源 Web 服务器、数据库、编程语言和开发框架供您使用。无论您希望使用哪种技术组合,都存在一种可以提高生产力的集成开发环境 (IDE):Eclipse。在介绍如何通过 Eclipse 实现使用 Java、PHP 和 Ruby 的 Web 开发的三部分系列教程的第 1 部分中,您了解了如何通过 Eclipse 实现使用 Java 技术、PHP 和 Ruby 的 Web 开发,查看如何使用 Eclipse 的最新版本 —— Europa —— 快速开发 Java Web 应用程序。在第 2 部分中,您了解了使用统称为 PHP Development Toolkit (PDT) 的另一组 Eclipse 插件来开发 PHP 应用程序是多么简单。在第 3 部分中,我们将介绍 RDT 和 RadRails Eclipse 插件并向您展示如何获得并开始使用这些插件。您将了解如何使用 RadRails 执行许多常见的 Ruby on Rails 开发任务。
    2008年1月3日  
 
用 Eclipse Europa 进行 Web 开发,第 2 部分:PHP 开发工具
身为一名 Web 开发人员,无论您想要使用哪种技术组合,Eclipse 都是可以提高生产力的单一集成开发环境 (IDE)。在三部分系列教程的第 1 部分中,您了解了如何使用 Eclipse 的最新版本 —— Europa —— 快速开发 Java Web 应用程序。本教程是第 2 部分,我们将了解使用统称为 PHP Development Toolkit (PDT) 的另一组 Eclipse 插件开发 PHP 应用程序是多么轻松。
    2008年1月3日  
 
技巧:充分利用异步回调
要在 JavaScript 应用程序中充分利用 Ajax 数据源的异步回调,需要使用一些技巧。本文将讨论针对 Ajax 数据源使用异步回调的原因,并将通过一些示例演示如何协调彼此相关的应用程序数据源,使这些数据源在任何时间内都能进行异步调用。
    2007年12月28日  
 
让开发自动化: 持续集成反模式
尽管持续集成(Continuous Integration,CI)可以非常有效地减少项目的风险,但是它对与编程相关的日常活动提出了很高的要求。在这一期 “让开发自动化” 中,自动化专家和 “Continuous Integration: Improving Software Quality and Reducing Risk” 的作者之一 Paul Duvall 列举了一系列 CI 反模式并解释了如何避免它们。
    2007年12月28日  
 
用 Eclipse Europa 进行 Web 开发,第 1 部分:Eclipse Java EE
成为一名 Web 开发人员恰逢其时。从来不曾像现在一样有如此多的技术选择。大量优秀的开源 Web 服务器、数据库、编程语言和开发框架供您使用。无论您希望使用哪种技术组合,都存在可以提高生产力的集成开发环境 (IDE):Eclipse。本教程是三部分系列教程 “用 Eclipse Europa 进行 Web 开发” 的第 1 部分,将介绍如何通过 Eclipse 实现使用 Java 技术、PHP 和 Ruby 的 Web 开发,查看如何使用 Eclipse 的最新版本 —— Europa —— 来快速开发 Java Web 应用程序。我们将使用 Java Platform, Enterprise Edition 5 (Java EE) for Eclipse 来构建用于跟踪和计算棒球统计信息的 Web 应用程序。
    2007年12月27日  
 
实现 Castor 数据绑定,第 2 部分: 编组和解组 XML
本系列的上一期文章中,我们下载、安装和设置了 Castor。本文将介绍如何把 Java(TM) 类转化成 XML 然后再把 XML 转换回 Java 代码,以及 Castor 的工作原理、如何保证类的设计适应这种 API。
    2007年12月27日  
 
使用 Grails 快速开发 Web 应用程序
本教程介绍 Grails,这是一个搭建在动态语言 Groovy 之上的开源 MVC 快速 Web 开发框架。使用 Grails 可以提高 Web 开发的效率,降低 Web 开发的复杂度。本文从 Grails 自动生成代码入手,以示例为中心逐步增加深度与难度,对 Grails 开发进行演示。
    2007年12月26日  
 
使用 javax.tools 创建动态应用程序
如今,很多应用程序都需要实现动态功能,例如,能够为用户提供抽象形式的计算来扩展应用程序的静态功能。作为 Java Platform, Standard Edition 6 (Java SE) 中新添加的标准 API(实现 Java 源代码编译),javax.tools 包可以很好地满足这一需求。本文将探查 javax.tools 包中提供的主要类,并演示如何使用它们创建一个 façade,以从 Java String 而不是从文件中编译 Java 源代码,并使用这个 façade 构建交互式绘图应用程序。
    2007年12月24日  
 
理解 pureQuery:IBM 最新的 Java 数据库应用编程范例
pureQuery 项目为数据库应用开发人员提供了一套基于 GUI 且易用的方法,它能够显著提高应用程序的设计和实现阶段的生产效率。通过将关系数据自动转换为 Java 对象的实现方式,方便了用户对数据的访问和操纵。将关系数据转换为 Java 对象后,就可以很自然的通过面向对象编程范例无缝地利用这些对象来编写业务逻辑和底层代码。通过将查询语言与 Java 本身相集成,pureQuery 可以代替传统的 JDBC 编程。
    2007年12月24日  
 
使用全新的 IBM pureQuery 工具提高 Java 数据库开发生产力,第 1 部分: pureQuery 工具概述
如果您是一名 Java 开发人员或希望成为其中的一员,那么本文正好适合您。本文介绍了 IBM pureQuery 工具如何前所未有地提高 Java 编程和 SQL 效率,使用比 JDBC 少得多的代码生成简单的数据访问层。使用静态 SQL 改善应用程序的性能,并使用 SQL 访问数据库和内存中(in-memory)集合。
    2007年12月20日  
 
用 eJFace 开发嵌入式应用程序
可以毫无顾虑地说,在未来几年中,对移动设备应用程序的需求将越来越多。现在是学习 eJFace 的好时机,eJFace 是开放标准的嵌入式 JFace 库,它是构建嵌入式应用程序的一项新技术。嵌入式 JFace(Embedded JFace,eJFace)是嵌入式富客户机平台(embedded Rich Client Platform,eRCP)的组件,它为开发人员提供了一个嵌入式环境,用于组合嵌入式应用程序的用户界面 (UI)。在本文中,我们将比较 eJFace 与 JFace,并展示如何用 eJFace 开发应用程序。
    2007年12月20日  
 
Java EE 5:强大的功能、高生产率和低复杂性
随着平台的容器支持、开发人员工具、培训资源和开发人员社区体验等方面的改善,推动组织采用 Java Platform, Enterprise Edition 5(Java EE 5)的动力正在稳定增长。本文从较高层面介绍 Java EE 5 中新的生产率特性和 API 改进,并通过一个 Web 服务示例展示简化的开发模型。
    2007年12月18日  
 
扩展 iBatis 以透明支持多种数据库
iBatis 是一个开源的对象关系映射框架,着重于 POJO 与 SQL 之间的映射关系。和其它 ORM 框架不同,iBatis 开发者需要自己编写和维护 SQL 语句。为了得到更好的执行性能,在实际开发中免不了会使用一些数据库方言。随之而来的一个问题是,如何在增加对新的数据库支持的同时尽可能避免对已有应用程序代码的修改?本文提供了一个简单有效的方法,通过扩展 iBatis 来透明地支持多数据库方言。
    2007年12月13日  
 
诊断 DB2 Java 应用程序的性能问题
从应用程序客户机的角度诊断和隔离性能问题。学习如何为在 IBM DB2 for Linux, UNIX, and Windows 数据库上运行的 Java 应用程序排除性能问题。一旦理解了性能问题的根源所在,离找到解决方案也就不远了。
    2007年12月13日  
 
通过持续集成尽早发现缺陷
持续集成(Continuous Integration,CI)是持续地编译、测试、检查和部署源代码的过程。在许多持续集成环境中,这意味着每当源代码管理库中的代码发生改变时,都要执行新的构建。CI 的好处很明确:经常组装软件可以大大提高在早期发现缺陷的可能性,而缺陷在早期还不复杂,容易解决。本教程是 “追求代码质量” 系列的配套文章。在本教程中,Andrew Glover 介绍持续集成的基本方面,并讲解如何用最好的开放源码技术设置 CI 过程。
    2007年12月11日  
 
在 XSLT 2.0 中使用自定义排序
XSLT 2.0 的一项重要改进是更好的国际化支持,特别是排序和比较文本。本文通过例子说明如何编写自定义的排序函数,然后从 XSLT 2.0 样式表中调用它。
    2007年12月10日  
 
IBM Rational XDE Java Code Model Importer 简介
学习如何使用 IBM Rational XDE Java Code Model Importer 将您的项目从 Rational XDE for Java 移植到 Rational Software Architect 或者 Rational Systems Developer。通过使用该工具,您可以利用 Rational 软件中的多样的 UML 和代码建模功能,移植您的代码以及代码模型。
    2007年12月6日  
 
JNI 对象在函数调用中的生命周期
Java 本地编程接口(Java Native Interface,JNI) 易懂且容易上手,但对于一些新手甚至于一些中级开发者,在编程中都没有把 JNI 对象的生命周期考虑在内。以至于经常碰见莫名的 Crash,或者 segmentation fault。在花费了相当精力去调试后,才发现是 JNI 对象使用不当,当初保存的 JNI 对象已经被系统回收,却仍试图去使用之。本文结合实际开发中遇到的此类问题,讲述和强调了 JNI 对象生命周期的概念,并提出正确的解决方法,希望能和读者分享自己的经验和教训。
    2007年12月6日  
 
XML 和 Java 技术: 溯本追源
Brett McLaughlin 回顾了一些 XML 基础知识,从文档结构到久存争议的属性/元素问题。重新学习如何优化 XML 并确保拥有最佳结构。
    2007年12月6日  
 
Java 理论与实践: 应用 fork-join 框架
Java 7 的 java.util.concurrent 包的新增功能之一是一个 fork-join 风格的并行分解框架。fork-join 概念提供了一种分解多个算法的自然机制,可以有效地应用硬件并行性。
    2007年12月3日  
 
使用 Richfaces/Ajax4Jsf 创建 Web 应用
本文简要介绍如何运用 Richfaces/A4J 来构建 JSF 应用,包括如何定义配置文件、控件使用等。
    2007年11月30日  
 
设计与开发 JAX-WS 2.0 Web 服务
通过使用 Java™ API for XML Web Services (JAX-WS) 技术设计和开发 Web 服务,可以带来很多好处,能简化 Web 服务的开发和部署,并能加速 Web 服务的开发。通过此教程,可以了解如何开发将其功能作为 Web 服务公开的示例订单处理程序,从而进行所有这些工作以及其他任务。完成了此教程后,您将能够应用这些概念和新获得的知识,来使用 JAX-WS 技术为应用程序开发 Web 服务。
    2007年11月29日  
 
使用 Java 开源工具建立一个灵活的搜索引擎
为应用程序添加搜索能力经常是一个常见的需求。本文介绍了一个框架,开发者可以使用它以最小的付出实现搜索引擎功能,理想情况下只需要一个配置文件。该框架基于若干开源的库和工具,如 Apache Lucene,Spring 框架,cpdetector 等。它支持多种资源。其中两个典型的例子是数据库资源和文件系统资源。Indexer 对配置的资源进行索引并传输到中央服务器,之后这些索引可以通过 API 进行搜索。Spring 风格的配置文件允许清晰灵活的自定义和调整。核心 API 也提供了可扩展的接口。
    2007年11月27日  
 
Java EE 迎合 Web 2.0
如果 Web 2.0 应用程序使用的是基于标准的 Java Platform, Enterprise Edition 5 (Java EE) 开发方法,那么将会面临着严重的性能和可伸缩性问题。这是因为,大量支持 Java EE 平台的底层设计原理(尤其是使用同步 API 的应用)并不适合 Web 2.0 解决方案的需求。本文将解释 Java EE 和 Web 2.0 方法之间的不一致性,并对一些使用 Java 平台开发异步 Web 应用程序的解决方案进行评估。
    2007年11月26日  
 
实现 Castor 数据绑定,第 1 部分: 安装和设置 Castor
下载、安装和配置 Castor,以进行数据绑定。
    2007年11月26日  
 
用 AjaxTags 简化 Ajax 开发
在 Web 2.0 时代,开发人员和用户都对基于 Web 的应用程序的可用性和响应性抱有很高的期望。除非是在过去的两年内一直没有关注过这个领域,否则一定听说过 Asynchronous JavaScript + XML(Ajax 技术)。通过 Ajax,可以构建灵活、响应性好和高度动态的基于浏览器的用户界面,而且根本不需要进行浏览器页面重载。本文将介绍一种 Java/JavaScript 库 —— AjaxTags,它让您可以很轻松地将 Ajax 功能集成到 JSP 页面中。
    2007年11月22日  
 
让开发自动化: 使用 Raven 构建 Java 项目
Ant 无疑是用于 Java 平台的标准构建工具;但是,其它一些构建工具也可以为 XML 提供它一直所缺乏的更具表达性的范例。在这一期的 “让开发自动化” 中,自动化专家介绍了构建在 Ruby 之上的构建平台 Raven,它可以利用功能全面的编程语言和以构建为中心的域特定语言(Domain Specific Language)的简单性。
    2007年11月22日  
 
将 XForms 与 Google Web Toolkit 相结合,第 4 部分: 使用 GWT 和 XForms 创建交互式表单
本系列文章介绍如何结合使用 Google Web Toolkit (GWT) 和 XForms 创建动态 Web 应用程序,分为四部分。第 1 部分考察了这两种技术的 JavaScript 基础。第 2 部分介绍了如何使用 JavaScript 这个公共基础将两种技术结合起来创建摇滚巨星应用程序。第 3 部分改造了这个应用程序,将 XForms 和 GWT 结合起来。最后一部分我们继续改造和完善这个摇滚巨星应用程序。
    2007年11月19日  
 
编写 REST 服务
本教程讨论了 REST 和 Atom 发布协议(Atom Publishing Protocol,APP)的概念,展示了其在服务中的应用。本教程还介绍了如何使用 Java 技术实现基于 REST/APP 的服务。
    2007年11月15日  
 
使用 developerWorks Word 和 Writer 模板写作
欢迎作者们!本篇文章将向您展示如何使用 Microsoft Word 或 OpenOffice.org Writer 为 developerWorks 中国网站创作技术文章和教程。所需步骤很简单。首先下载针对 Word 或 Writer 的模板,然后填写模板中的字段,最后根据模板中的指导完成文章或教程。本文还包括一些排版以及将其提交给 developerWorks 工作人员的小技巧。
    2007年11月15日  
 
面向 Java 开发人员的 db4o 指南: 结构化对象和集合
面向对象应用程序大量使用继承,并且它们常常使用继承(或者 “is-a”)关系来分类和组织给定系统中的对象。在关系存储模式中使用继承比较困难,因为这种模式没有内在的继承概念,但它是 OODNBMS 中的一个核心功能。在本期的面向 Java 开发人员的 db4o 指南中,您将会发现,作为一个核心功能,在 db4o 中创建查询时使用继承竟是如此的简单(而且功能强大)。
    2007年11月12日  
 
将 XForms 与 Google Web Toolkit 相结合,第 3 部分: 使用 GWT 创建 XForms
本系列文章介绍如何结合使用 Google Web Toolkit (GWT) 和 XForms 创建动态 Web 应用程序,分为四部分。第 1 部分考察了这两种技术以及它们共同的 JavaScript 基础。第 2 部分说明了如何创建包括两个页面的小应用程序。一个页面使用 GWT 显示唱片公司旗下的歌手名单。另一个页面使用 XForms 显示某位歌手的唱片。第 3 部分在同一个页面上使用 GWT 和 XForms。通过使用 JavaScript 实现 GWT 和 XForms 之间的交互操作来说明如何利用这两种技术和 JavaScript 的绑定。
    2007年11月9日  
 
IBM 的 Java 诊断,第 4 部分: 使用分析模块扩展 IBM Dump Analyzer for Java
在本系列的第一篇文章中,您了解到 IBM Dump Analyzer for Java 工具可以针对格式化的系统转储执行分析并提供问题诊断建议。该工具的一个优点就是可以通过编写自己的分析模块对它进行功能扩展。本文将是介绍以 Java 为平台的 IBM 诊断工具系列文章的最后一篇,将向您展示如何构建分析程序以帮助您深入研究系统转储,并对 Java 代码进行调优。
    2007年11月9日  
 
使用基于持久性的框架开发 DB2 应用程序
G简要了解 IBM DB2 UDB 的各种基于持久性的框架,包括 Hibernate、Java Data Object(JDO)和 Java Database Connectivity(JDBC)3.0。利用广泛应用的 Hibernate 和 Spring 框架构建基于持久性的 DB2 应用程序。
    2007年11月8日  
 
IBM 的 Java 诊断,第 3 部分: 使用面向 Java 的 Lock Analyzer 诊断同步和锁问题
面向 Java 的 IBM 锁分析器可从 alphaWorks 获得,可对运行中的 Java 应用程序进行实时锁监视。锁争用会降低应用程序性能,该工具会突出显示发生锁争用的线程。 开发人员可以使用该信息修改其应用程序以减少锁争用,从而提高性能。本文介绍了面向 Java 的 IBM 锁分析器,介绍了其构建的基础架构并针对该工具的未来发展方向进行了思考。
    2007年11月5日  
 
IBM 的 Java 诊断,第 2 部分: 使用 Extensible Verbose Toolkit 进行垃圾收集
Extensible Verbose Toolkit (EVTK) 是 IBM 的新工具,其设计目标为帮助诊断和 分析与内存有关的 Java 性能问题。 本文是四篇系列文章的第二篇,介绍如何获得和使用该套件, 并演示如何使用它快速诊断某些常见的问题。
    2007年11月2日  
 
了解 Java EE 5
概要介绍新的 Java EE 5 规范、它的许多重要增强功能以及它对 WebSphere 应用程序的意义。
    2007年11月1日  
 
将 XForms 与 Google Web Toolkit 相结合,第 2 部分: 创建艺术家专辑管理表单
本系列文章介绍如何结合使用 Google Web Toolkit (GWT) 和 XForms 创建动态 Web 应用程序,分为四部分。第 1 部分考察了每种技术的 JavaScript 基础知识。第 2 部分将向您展示如何使用这些 JavaScript 基础知识融合这两种技术,从而构建摇滚巨星应用程序。
    2007年11月1日  
 
Java SE 6 新特性: XML API 与 Web 服务
本系列文章主要介绍 Java SE 6 在 API 库方面的部分新特性,通过一些例子和讲解,帮助开发者在编程实践当中更好的运用 Java SE 6,提高开发效率。本文是系列文章的最后一篇,主要介绍了 Java SE 6 中提供的 XML 处理框架,以及在此框架之上结合注释(Annotation) 技术,所提供的强大的针对 Web 服务的支持。
    2007年10月31日  
 
Java API 参考文档, 第 1 部分
本文介绍了生成易用且可供搜索的 Java 应用程序编程接口(Java application programming interfaces,API)的参考文档的不同方法。
    2007年10月31日  
 
结合安全发布与有效的不可变性来提升性能
使多个线程能够共享对可变集合的访问 —— 一种典型方法就是同步对集合的访问 —— 这样做可能会成为性能瓶颈。通过本文学习一种可用于 Java 5.0 的技术,然后使用该技术最大限度地减少数据结构(频繁读取,但较少更新)中的性能瓶颈。
    2007年10月29日  
 
IBM 的 Java 诊断,第 1 部分: 介绍面向 Java 的 IBM 转储分析器(IBM Dump Analyzer)
Java 应用程序已经变得越来越复杂;因此,对这些应用程序进行问题诊断变得不再轻松,并且可能需要某个外部服务组织做大量的工作。若能够指明正确的方向将节省时间和费用。IBM Dump Analyzer for Java 工具可以对格式化的系统转储做基本分析并生成简明的报告,指导您如何进行下一步操作。
    2007年10月29日  
 
将 XForms 与 Google Web Toolkit 相结合,第 1 部分: 介绍 GWT 的 JavaScript Native Interface
本系列文章介绍如何结合使用 Google Web Toolkit (GWT) 和 XForms 创建动态 Web 应用程序,分为四部分。第 1 部分采用自下到上的办法说明结合使用 GWT 和 XFoms 中存在的问题。介绍了这两种技术的基础知识,考察了能够让两者和平共处的相同之处。这是同时使用 GWT 和 XForms 开发 Web 应用程序的基础。
    2007年10月25日  
 
使用 Apache OpenJPA 开发 EJB 3.0 应用,第 8 部分: 在 Java EE 环境下开发、部署 OpenJPA 应用
本文是由八个部分组成的“使用 Apache OpenJPA 开发 EJB 3.0 应用”系列的最后一部分,描述了如何在支持 EJB 3.0 标准的 Java EE 容器中开发、部署 OpenJPA 应用的详细步骤。作者借助一个简单例子的实现演示了开发和部署的全部过程,并且指出了这些过程与在非 Java EE 容器下的一些差异。
    2007年10月24日  
 
使用 Apache OpenJPA 开发 EJB 3.0 应用,第 7 部分: 使用 Eclipse Dali 开发 OpenJPA 应用
本文是“使用 Apache OpenJPA 开发 EJB 3.0 应用”系列的第 7 部分,主要讲述了如何下载、安装 Eclipse Dali JPA 工具以及使用提供的向导、透视图、视图快速开发 OpenJPA 应用的详细步骤。
    2007年10月24日  
 
借助 Ajax 自动保存 JSF 表单: 第 3 部分
在本系列第一篇文章中,作者兼 Java 开发人员 Andrei Cioroianu 展示了如何使用 Asynchronous JavaScript + XML (Ajax) 提交 Web 表单中的用户输入以及如何使用 JavaServer Faces (JSF) 处理 Ajax 请求。在本系列的第二篇文章中,Andrei 讨论了服务器端的数据管理并提供了一个数据存储库来存放自动保存的表单数据。在本系列的最后一期文章中,您将了解如何保存 JSF 表单数据,这一过程的实现可能要比您想像的更复杂。您将学习一些有趣的 JSF 技巧,例如使用 JSF 组件的 immediate 和 onclick 属性、跳过 JSF 请求处理生命周期中的一些阶段,以及使用隐藏的表单元素触发 JSF 侦听器。您还将学习如何在 JavaScript 代码中包含 JSP/JSF 表达式、如何对由 JSF 组件呈现程序生成的 HTML 表单元素使用 JavaScript,以及如何实现 servlet 上下文侦听器序列化和反序列化应用程序 bean。
    2007年10月23日  
 
XML 和 Java 技术: XML 持久性的三种方式
使用 XML 可以实现各种有趣的功能,但是如果无法将其持久化保存到文件中,那么一切都将是徒劳而已。Brett McLaughlin 将讨论实现 XML 持久化存储的各种不同的技巧,并分别比较其优点和缺点。
    2007年10月22日  
 
用 Apache Derby 进行开发 —— 取得节节胜利: 用 Apache Derby 进行 Java 数据库开发,第 6 部分
了解如何构建一个自包含 (self-contained)、可部署的嵌入式 Apache Derby 数据库应用程序。本文是本系列的最后一篇文章,您将把数据库表映射到 Java 类中,编写 Data Access Object (DAO) 并将它们与业务逻辑类一同集成到完成的数据库应用程序中。您还将了解如何把应用程序与必要的 Derby 数据库文件打包在一起,创建一个包含数据库应用程序所有必要内容的压缩文件。
    2007年10月22日  
 
使用 Apache OpenJPA 开发 EJB 3.0 应用,第 6 部分: 处理实体生命周期事件的回调
本文是“使用 Apache OpenJPA 开发 EJB 3.0 应用”系列的第 6 部分,介绍了 OpenJPA 中对实体生命周期过程中的回调的支持,包括使用回调方法和监听器实现回调,并且通过简单的例子描述了 OpenJPA 容器中实体回调的实现过程。
    2007年10月18日  
 
使用 Apache OpenJPA 开发 EJB 3.0 应用,第 5 部分: 实体标识的自动生成
本文是“使用 Apache OpenJPA 开发 EJB 3.0 应用”系列的第 5 部分,介绍在 OpenJPA 中如何自动生成实体的唯一标识,包括使用容器自动生成实体标识,借助于数据库的自动编号、序列号、数据库表等技术自动生成实体标识等,并且通过简单的例子描述了这几种情况下的操作过程。
    2007年10月18日  
 
使用 Acegi 保护 Java 应用程序,第 3 部分: 实现对 Java 对象的访问控制
本文是 Acegi Security Systerm 介绍的最后一部分(共三部分),Bilal Siddiqui 将向您介绍如何保护对 Java 类实例的访问,从而结束本系列文章。通过本文了解为何需要对 Java 类的访问进行保护,Spring 如何创建和保护对 Java 类实例的访问以及如何对 Acegi 进行配置以实现 Java 应用程序的类安全性。
    2007年10月18日  
 
通过 Java 编程处理 XML 服务定义
面向服务架构(SOA)通常会输出一系列服务。针对 XML 服务建模以及随后用户(人员、机器或其他服务)对这些服务的使用,Java 技术提供了强大的 XML 数据处理机制,从而为应用 SOA 理念提供了重要基础。通过本文研究 XML 和 Java 技术在 SOA 中的实际应用,并通过明确的示例了解为何这个看似复杂的技术能够如此流行。
    2007年10月15日  
 
在 Java SE 6 中监视和诊断性能问题
Java Platform, Standard Edition 6 (Java SE) 专注于提升性能,提供的增强工具可以管理和监视应用程序以及诊断常见的问题。本文将介绍 Java SE 平台中监视和管理的基本知识,并提供 Java SE 6 中相关增强的详细信息。
    2007年10月15日  
 
XML 和 Java 技术: Sun 的 Java 和 XML API:孰功孰过?
Sun 公司正在封装、扩展还是损害当前各种可用的 Java 和 XML API 呢?Brett McLaughlin 对此进行了讨论。
    2007年10月11日  
 
Geronimo 叛逆者: 使用集成程序包:GlassFish JSTL 1.2 和 Apache Geronimo 2.0
Apache Geronimo 小组已经成功实现了新的 Java Platform, Enterprise Edition (Java EE) 5.0 规范。Java EE 5 拥有许多值得关注的特性,其中之一就是新的 Java Standard Tag Library (JSTL) 1.2 规范。JSTL 1.2 的关键是统一表达式语言,它允许我们在 JavaServer Faces (JSF) 中结合使用 JSTL 的最佳特性。本期的叛逆者将介绍 JSTL 1.2 的重要性,探究 Java Web 技术的历史以及 Geronimo 小组如何利用 GlassFish JSTL 1.2 实现将 JSTL 12 支持添加到 Geronimo 中。
    2007年10月11日  
 
追求代码质量: 亲身体验行为驱动开发
测试驱动开发(TDD)在实践中是一个很好的思想,但有些开发人员还不能接受 “测试” 这个词所产生的概念上的骤变。在本文中,学习一种更自然的方法,将 TDD 元素整合到编程实践中。开始采用行为驱动开发(BDD)(通过 JBehave),亲身体验将注意力集中在程序行为(而不是输出)时获得的效果。
    2007年10月8日  
 
借助 Ajax 自动保存 JSF 表单: 第 2 部分
在 “借助 Ajax 自动保存 JSF 表单” 系列的第 1 部分中,作者兼 Java 开发人员 Andrei Cioroianu 为您展示了如何借助 Asynchronous JavaScript + XML(Ajax)和 JavaServer Faces(JSF)技术构建能自动保存 Web 表单的 Java 应用程序,介绍了如何用 JavaScript 和 XMLHttpRequest 获得、编码和提交表单数据,如何调整 JSF 请求生命周期来处理 Ajax 请求以及如何在服务器端从 JSF 组件树获取所提交的数据 。在这个包含三部分的系列文章的第 2 部分中,您将了解如何识别跨浏览器会话的匿名用户、如何为多个用户和页面管理自动保存的表单数据、如何选择数据存储库以及如何处理线程安全性问题。
    2007年10月8日  
 
面向 Java 开发人员的 db4o 指南: 数组和集合
The busy Java developer's guide to db4o: Beyond simple objects 中首次讨论的结构化对象引入了新的复杂性。幸运的是,db4o 丝毫没有因为处理多样性关系而出现困难 —— 您应该也不会被它难倒。
    2007年10月8日  
 
Java SE 6 新特性: 对脚本语言的支持
本系列文章主要介绍 Java SE 6 在 API 库方面的部分新特性,通过一些例子和讲解,帮助开发者在编程实践当中更好的运用 Java SE 6,提高开发效率。本文是系列文章的第 6 篇,介绍了 Java SE 6 在脚本编程方面的新特性。
    2007年9月28日  
 
在 IBM Rational Application Developer 中使用 JUnit 和 JUnitEE 框架对 J2EE 平台组件进行单元测试,第 1 部分: 对 Java 和 EJB 应用程序进行单元测试
这是一个三部分系列中的一篇文章。它向您展示了如何使用一个开源测试框架,比如 JUnit 和 JUnitEE,通过在 IBM WebSphere Application Server 环境中使用 IBM Rational Application Developer 来进行 Java 和 EJB 应用软件的单元测试。
    2007年9月26日  
 
动态调用动态语言,第 2 部分: 在运行时寻找、执行和修改脚本
Java 脚本编程 API(Java scripting API)是 Java SE 6 中新增的,它向后兼容 Java SE 5,支持以一种简单且统一的方式在运行时从 Java 应用程序调用数十种脚本语言。本系列的第 1 部分介绍了这个 API 的基本特性。第 2 部分进一步讲解它的功能,演示如何在无需停止并重新启动应用程序的情况下,在运行时执行外部 Ruby、Groovy 和 JavaScript 脚本以修改业务逻辑。
    2007年9月24日  
 
使用 Eclipse 和 JavaFX 开发 Mashup 应用
本教程介绍了如何搭建基于 Eclipse 的 JavaFX 开发环境,并且通过一个 Hello World 示例,演示了 JavaFX 的基本语法、UI 设计和类的概念,最后综合利用了 JavaFX 和 REST 风格的 Web 服务接口构建了一个查询股票、天气预报和城市信息的 Mahup 应用。
    2007年9月21日  
 
在 AIX Version 5.3 中使用 Java 和 PHP 技术进行开发,第 5 部分: 安装和集成 PHP Java Bridge
在 AIX(R) 中可以开发使用 Java(TM) 和 PHP 技术的应用程序。本系列文章共有六个部分,本文是其中的第 5 部分,将介绍如何在 Tomcat 应用服务器中安装、设置和集成 PHP Java Bridge,从而使得您能够开发 PHP Web 接口。
    2007年9月20日  
 
构建和实现单点登录解决方案
在现有的应用程序中实现单点登录解决方案(single sign-on,SSO,即登录一次,就可以向所有网络资源验证用户的身份)是非常困难的,但是在构建复杂的门户时,每个开发人员都要面对这个问题。因为门户需要与后端资源集成,而每个后端资源都有自己的身份验证需求,所以门户常常必须向用户提供单点登录特性。在本文中,Chris Dunne 一步步地描述了他为一个 Web 门户构建单点登录解决方案的经历。他将讲解如何设置一个开放源码解决方案(来自 Yale University 的 Central Authentication Service),以及如何将它扩展为根据 Microsoft Active Directory 基础设施进行身份验证。
    2007年9月19日  
 
避免 XPath 注入的危险
随着简单 XML API、Web 服务和 Rich Internet Applications (RIAs) 的发展,更多组织几乎在所有方面(从配置文件到远程过程调用)都采用 XML 作为数据格式。一些人已经使用 XML 文档代替更传统的纯文本文件或关系数据库,但是与任何其他允许外部用户提交数据的应用程序或技术相似,XML 应用程序可能容易受到代码注入的攻击,尤其是 XPath 注入攻击。
    2007年9月17日  
 
构建多服务的 Java 应用程序,第 2 部分: 将多服务支持整合到 JSF 中
在本教程系列中,您将学习如何构建多服务的 Web 应用程序。此系列中的第一个教程已经介绍了如何使用 Wireless Universal Resource File(WURFL)进行多服务。此后续教程将介绍如何将多服务功能整合到 JavaServer Faces(JSF)应用程序中。JSF 是一个构建用户界面组件的 Java API。通过将多服务功能整合到 JSF 中,您将能够构建可以服务于各种无线客户机的 JSF 标记库和应用程序。
    2007年9月14日  
 
构建多服务的 Java 应用程序,第 1 部分: 探索 WURFL
在本系列教程中,您将学习如何根据客户机的功能构建能够服务于无线客户机的 Web 应用程序。这就是多服务(multiserving)的概念,它在普适计算应用程序中非常有用。Wireless Universal Resource File(WURFL)是 SourceForge.net 的开放源码项目,它使用 XML 描述无线设备的功能。本教程侧重于探索和使用 WURFL,从多服务的概念开始,通过提供一种表达无线设备功能的 XML 格式来查看 WURFL 是如何支持多服务的。
    2007年9月14日  
 
动态调用动态语言,第 1 部分: 引入 Java 脚本 API
我们不需要将动态语言编译为 Java 字节码就可以在 Java 应用程序中使用它们。使用 Java Platform, Standard Edition 6 (Java SE)中添加的脚本包(并且向后兼容 Java SE 5),Java 代码可以在运行时以一种简单、统一的方式调用多种动态语言。本系列文章共分两个部分,第 1 部分将介绍 Java 脚本 API 的各种特性。文章将使用一个简单的 Hello World 应用程序展示 Java 代码如何执行脚本代码以及脚本如何反过来执行 Java 代码。第 2 部分将深入研究 Java 脚本 API 的强大功能。
    2007年9月14日  
 
Hello World: 学习如何使用 Rational Application Developer V7 创建 Java,Web 服务,以及数据库应用程序
欢迎阅读“Hello,World”系列的第二篇教程,本教程对 IBM 软件产品进行了高层次的概述。 本教程向您介绍了 IBM Rational Application Developer 并强调了它的一些基本特性。 本文包含介绍如何创建 Java 应用程序、创建并调用 Web 服务,以及创建可以使用关系记录列表(Relational Record List)访问 Cloudscape 数据库的 Web 应用程序的实践练习。 本教程最早的 Rational Application Developer V6 版本仍然可以使用。
    2007年9月13日  
 
轻松应对 WS-Security 规范互操作性挑战,第 4 部分: 向 J2EE 1.4 Web service 服务添加 J2EE 1.3 提供者端点
本系列的前面几个部分提供了 Web 服务安全性(Web Services Security,WS-Security)规范级别的互操作性问题的解决方法,具体来说,问题就是 WS-Security 的不同版本之间的不兼容性使得在需要使用 WS-Security 的情况下 Java 2 Platform Enterprise Edition (J2EE) 1.3 客户机无法与 J2EE 1.4 Web 服务提供者通信。接下来让我们了解一下如何通过添加新 Web 服务提供者端点来克服这一互操作性问题。
    2007年9月13日  
 
使用 Ant 自动生成项目构建版本
本文提供逐步的详细说明,以帮助使用 IBM Rational 软件交付平台(IBM Rational Software Delivery, SDP)的内置 Ant 支持实现构建过程自动化,从而提高效率和质量。您可以随后使用 IBM WebSphere 应用服务器系列之一对其进行部署。
    2007年9月13日  
 
在 Geronimo 中管理 Apache Pluto
Portal 和 portlet 技术开发是目前开发中所采用的热门技术,尤其是在开发支持 Web 2.0 的应用程序。Apache Pluto 项目是 Java Portlet Specification 的参考实现,它最初是通过 Java Community Process 和 Java Specification Request (JSR) 168 创建的。该规范定义了用 Java 编程语言开发门户和 portlet 组件的指导信息。该规范被视为传统门户的通用标准和构建可移植 Web 应用程序的框架。了解如何结合使用 Pluto 项目与 Apache Geronimo 的 Java Platform, Enterprise Edition (Java EE) 平台为使用门户和 portlet 构建可自定义的和可管理的系统来创建具有高度灵活性且功能强大的环境。
    2007年9月13日  
 
使用 Application Developer V7 来创建和部署 JSR 168 协作 portlet
学习在 IBM Rational Application Developer V7 中的协作 portlet 工具,您可以 创建一个简单的协作应用软件并将其部署到 IBM WebSphere Portal server 服务器上。重点是 Java Specification Request (JSR) 168 JavaServer Faces portlet,但是作者也简要讨论了 Basic 和 Struts portlet。
    2007年9月12日  
 
基于 Java 的界面布局 DSL 的设计与实现
界面设计应该是一项充满创造性、富有乐趣的工作,但是却往往被认为非常的枯燥和繁琐。究其原因,是因为界面布局领域所采用的描述概念和具体的实现语言之间存在很大的语义隔阂。而一般的界面开发工具提供的所见即所得以及界面布局管理器等方案也无法很好地解决这个问题。本文介绍了一种专门用于描述高层界面设计样式的语言。通过这种语言,界面设计者可以直接、明确地描述出他们头脑中的布局设计样式,还可以方便地、灵活地制定自己需要的布局样式。此外,文中给出的设计思想对于其他领域的设计也有很好的借鉴作用。
    2007年9月11日  
 
在 Notes 应用程序中添加 OmniFind 搜索功能
本文阐述了如何向一个常规的由 Notes 客户端访问的 Lotus Notes 数据库应用程序添加 OmniFind 搜索功能。特别是用户将学习到如何在 LotusScript 中调用 IBM 的 Java 搜索与索引 API (SIAPI)。除了向读者说明如何以常规文本字段显示搜索结果,本文还阐述了如何在 Notes 客户机中以 HTML 表单形式显示搜索结果,这会大大提高终端用户搜索界面的外观与感受。
    2007年9月10日  
 
轻松实现坐标转换
    2007年9月7日  
 
利用 DWR 开发基于 Ajax 的文件上载 portlet
文件上载是当今 Web 门户的一个基本功能。在本篇文章中,作者 Xiaobo Yang 和 Rob Allan 描述了如何利用 DWR(Direct Web Remoting)开发基于 Ajax 的文件上载 portlet(遵从 JSR 168 规范)。DWR 是 Java 开发人员理想的 Ajax 框架,可基于服务器端已部署的 Java 类动态生成 JavaScript。您还将了解如何使用 DWR 从门户服务器检索文件上载过程。
    2007年9月4日  
 
架构宣言: 设计移动用户界面
设计移动应用程序的用户界面是比较棘手的事情,对于新手来说更是如此。另一方面,这是个极好的设计挑战,而且得到的结果是非常有价值的。这一期的架构宣言使用一种架构方法来识别移动设备环境的限制和能力,并设计出一种同时对这两方面加以利用的用户界面。
    2007年9月3日  
 
架构宣言: 为什么严谨的架构规划对小型设备至关重要?
本文是架构宣言专栏的创刊版,Mikko Kontio 讨论了为什么优秀的软件架构对于任何项目(无论规模大小)都很重要。出色的架构不仅会带来较好的代码,从长远角度来看,还会使客户感到愉快并节省资金。
    2007年9月3日  
 
架构宣言: 无线集成
很多企业都使用无线应用程序作为现有企业系统的移动界面。这给那些必须在移动设备的受限环境中使用复杂遗留系统的软件设计人员带来了挑战。他们所面对的两个最重要的问题是从现有系统提取数据,以及在移动设备上表示数据。经过周密设计的软件架构有助于产生有效的移动界面,同时避免一些常见问题。
    2007年9月3日  
 
架构宣言: MIDP 开发中的 MVC 设计模式
学习如何在 MIDP 用户界面开发中使用模式—视图—控制器(Model-View-Controller)模式。首先介绍 MVC 模式的结构概况,然后考虑如何将它应用于现实生活中。
    2007年9月3日  
 
架构宣言: 设计联网的 MIDP 应用程序
在受限的环境(如 MIDP)中设计网络操作是具有挑战性的,要求设计人员或架构师在不同解决方案之间权衡利弊。在本专栏中,Mikko 考虑了为简单的联网 MIDP 应用程序选择最佳设计时所涉及的因素。结果可能会使您感到意外。
    2007年9月3日  
 
架构宣言: 普适系统的设计问题
为普适系统或即将成为普适系统的系统设计服务器软件是很有挑战性的。Mikko Kontio 在最新的架构宣言专栏中描述了如何识别普适系统、如何管理设计以及什么样的技术能够帮助您设计出好的系统。
    2007年9月3日  
 
使用 Google Web 工具箱进行 XML 开发
通过 Google Web Toolkit 可以使用 Java(TM) 语法来创建 Asynchronous JavaScript + XML (Ajax) 用户界面所需要的 JavaScript(TM) 代码。多数 Ajax 应用程序都使用 XML 和服务器传递信息,因此应用程序必须能够解析和创建 XML 数据。本教程介绍了如何使用 Google Web Toolkit 操作和创建 XML。
    2007年8月31日  
 
Java SE 6 新特性: Java DB 和 JDBC 4.0
本系列文章主要介绍 Java SE 6 在 API 库方面的部分新特性,通过一些例子和讲解,帮助开发者在编程实践当中更好的运用 Java SE 6,提高开发效率。本文是系列文章的第 5 篇,介绍了 Java SE 6 在数据库编程方面的新特性。
    2007年8月31日  
 
Comet:基于 HTTP 长连接的“服务器推”技术
很多应用譬如监控、即时通信、即时报价系统都需要将后台发生的变化实时传送到客户端而无须客户端不停地刷新、发送请求。本文首先介绍、比较了常用的“服务器推”方案,着重介绍了 Comet - 使用 HTTP 长连接、无须浏览器安装插件的两种“服务器推”方案:基于 AJAX 的长轮询方式;基于 iframe 及 htmlfile 的流方式。最后分析了开发 Comet 应用需要注意的一些问题,以及如何借助开源的 Comet 框架-pushlet 构建自己的“服务器推”应用。
    2007年8月31日  
 
Spring 的优秀工具类盘点,第 2 部分: 特殊字符转义和方法入参检测工具类
Spring 不但提供了一个功能全面的应用开发框架,本身还拥有众多可以在程序编写时直接使用的工具类,您不但可以在 Spring 应用中使用这些工具类,也可以在其它的应用中使用,这些工具类中的大部分是可以在脱离 Spring 框架时使用的。了解 Spring 中有哪些好用的工具类并在程序编写时适当使用,将有助于提高开发效率、增强代码质量。在这个分为两部分的文章中,我们将从众多的 Spring 工具类中遴选出那些好用的工具类介绍给大家。第 2 部分将介绍特殊字符转义和方法入参检测工具类。
    2007年8月31日  
 
Mylyn 2.0,第 1 部分: 集成的任务管理
现在,在 2.0 版中,Mylyn(以前称为 Mylar)通过将任务无缝集成到 Eclipse 中并在工作时自动管理任务上下文,提高了效率。Mylyn 项目主管 Mik Kersten 更新了他撰写的分两部分的 Mylyn 使用指南,以便包括根据 Mylyn 1.0 的大量用户反馈而作出的改进。第 1 部分介绍 Mylyn 的任务管理功能和它与 Bugzilla、Trac 和 JIRA 等储存库的集成。在第 2 部分,您将了解上下文管理如何简化多任务执行,以及如何减少信息超载。
    2007年8月28日  
 
Mylyn 2.0,第 2 部分: 自动上下文管理
现在,在 2.0 版中,Mylyn(以前称为 Mylar)通过将任务无缝集成到 Eclipse 中并在工作时自动管理任务上下文,提高了效率。Mylyn 项目主管 Mik Kersten 更新了他撰写的分两部分的 Mylyn 使用指南。第 1 部分介绍 Mylyn 的任务管理功能和它与 Bugzilla 之类的储存库的集成。本文为第 2 部分,解释当在 Eclipse 中处理大型应用程序时,Mylyn 的上下文管理功能如何简化多任务处理以及如何减少信息超载。
    2007年8月28日  
 
Geronimo 叛逆者: 使用集成软件包:Codehaus 的 Woodstox
XML 解析器通常是高性能、健壮应用程序的关键。传统的 XML 解析技术包括文档对象模型(Document Object Model,DOM)和 Simple API for XML (SAX)。现在有一种非常不错的名为 Streaming API for XML (StAX) 的创新型新解析技术,它是与 Java Platform, Enterprise Edition (Java EE) 5 规范集成的。Apache Geronimo 2.0,Java EE 5 的完整实现,包括 StAX 解析器 —— Codehaus 的 Woodstox。在此部分中,您将了解 StAX 的优点以及 Geronimo 团队选择 Woodstox 作为 StAX 解析器的原因。
    2007年8月27日  
 
使用 Google Web Toolkit 和 JSON 开发 Ajax 应用程序
本文介绍如何使用 Google Web Toolkit(GWT) 和 JSON 开发一个示例 Ajax 应用程序。作者将分别介绍如何在客户端使用 GWT 的 JSON API 来解析和生成 JSON 编码的数据,以及如何在服务器端使用 GWT 的 RemoteServiceServlet 来接受和回复来自客户端的请求,并使用 SOJO 来解析处理 JSON 数据。
    2007年8月24日  
 
JDK 7 中的 Fork/Join 模式
随着多核时代的来临,软件开发人员不得不开始关注并行编程领域。而 JDK 7 中将会加入的 Fork/Join 模式是处理并行编程的一个经典的方法。虽然不能解决所有的问题,但是在它的适用范围之内,能够轻松的利用多个 CPU 提供的计算资源来协作完成一个复杂的计算任务。通过利用 Fork/Join 模式,我们能够更加顺畅的过渡到多核的时代。本文将介绍使用 JDK 7 中 Fork/Join 模式的方法和其他相关改进。阅读本文之后,读者将能够独立地在软件开发中使用 Fork/Join 模式来改进程序的性能。
    2007年8月23日  
 
在 AIX Version 5.3 中使用 Java 和 PHP 技术进行开发,第 3 部分: 将 Java 业务应用程序与 DB2 Version 9 进行集成
在 AIX(R) 中可以开发使用 Java(TM) 和 PHP 技术的应用程序。在获得使用 PHP 作为基于 Web 的接口平台的好处的同时,您可以使用 Java 编程语言编写核心逻辑(或者重新部署现有的基于 Java 的应用程序)。在本文(系列文章的第 3 部分)中,介绍了如何将第 2 部分中创建的核心应用程序连接到 DB2(R) 数据库,以便对问卷调查的问题和回答进行存储。
    2007年8月23日  
 
借助 Ajax 自动保存 JSF 表单,第 1 部分: 利用 XMLHttpRequest 提交 JSF 表单
在这个包含两部分的系列文章中,作家兼 Java 开发人员 Andrei Cioroianu 将教您如何使用 Ajax(Asynchronous JavaScript + XML)技术和 JSF(JavaServer Faces)技术自动保存 Java Web 应用程序中的表单数据。您将学会如何用 Ajax 提交 Web 表单、如何使用 JSF 框架处理 Ajax 请求、如何控制 JSF 请求处理生命周期、如何在服务器端管理表单数据,以及如何识别浏览器会话间的匿名用户。此外,本系列还将探究几个经常发生的开发错误,包括 错误的表单数据编码和可能导致请求失败及内存泄漏的错误的 Ajax 请求管理。
    2007年8月22日  
 
富客户机应用程序的性能,第 2 部分: 堵住内存泄漏
本文讨论 Eclipse 富客户机性能,由两部分构成,第 1 部分 涵盖了应用程序性能度量、记录技术、保持 UI 响应性以及使用 Job 避免线程错误等方面。 本部分作为第 2 部分要讨论内存使用以及如何发现内存泄漏。
    2007年8月20日  
 
Geronimo 叛逆者: OpenEJB 3.0 中的新特性
Java 2 Platform, Enterprise Edition(J2EE)规范使 Java 技术成为开发企业应用程序的首选技术。多年以来它通过不断地自我改进以维持这种地位,尤其是提出了 Java Platform, Enterprise Edition 5(Java EE 5)规范。OpenEJB 从一开始就是 Geronimo 的一个主要组成部分。OpenEJB 3.0 更是 Java EE 5 规范的 Geronimo 实现的关键。在本文中,叛逆者将揭示 Enterprise JavaBeans(EJB)3 背后的驱动力,以及 OpenEJB 为了给 Geronimo 提供全新的特性所一路走过的历程。
    2007年8月20日  
 
Java Web 服务,第 3 部分: Axis2 数据绑定
Apache Axis2 Web 服务框架一开始就设计用于支持多种 XML 数据绑定方法。当前的版本提供对 XMLBeans 和 JiBX 数据绑定以及专门针对 Axis2 开发的自定义 Axis 数据绑定(Axis Data Binding,ADB)的全面支持。本文将说明如何将这些不同的数据绑定方法与 Axis2 结合使用,并说明为什么可能会为应用程序优先选择其中的一种方法。
    2007年8月20日  
 
Spring 的优秀工具类盘点,第 1 部分: 文件资源操作和 Web 相关工具类
Spring 不但提供了一个功能全面的应用开发框架,本身还拥有众多可以在程序编写时直接使用的工具类,您不但可以在 Spring 应用中使用这些工具类,也可以在其它的应用中使用,这些工具类中的大部分是可以在脱离 Spring 框架时使用的。了解 Spring 中有哪些好用的工具类并在程序编写时适当使用,将有助于提高开发效率、增强代码质量。在这个分为两部分的文章中,我们将从众多的 Spring 工具类中遴选出那些好用的工具类介绍给大家。第 1 部分将介绍与文件资源操作和 Web 相关的工具类。
    2007年8月17日  
 
实时 Java,第 6 部分: 简化实时 Java 开发
由于实时 Java 虚拟机支持作用域内存,因此为作用域内存使用定义通用模式可以提高开发人员的生产力。这些模式通过降低作用域核心功能的复杂性,减少了了解和直接使用作用域的需求。本文是实时 Java 系列文章的第 6 篇(也是最后一篇),文中将引入 Lifecycle Memory Managed Periodic Worker Threads 模式作为简化实时 Java 开发的模型。通过一个示例实现和简单的示例应用程序论证了该模式的可行性。
    2007年8月13日  
 
富客户机应用程序的性能,第 1 部分: 性能分析的工具、技术和技巧
即使是良好规划的应用程序也可能出现重大的性能问题。 在这篇由两个部分构成的文章里,Chris Grindstaff 给出了一些用于分析和解决性能问题的技术。这是第 1 部分,您将学到如何量度基于 Eclipse 的富客户机平台(Rich Client Platform (RCP))应用程序的性能,判断速度降低的原因是由于 CPU 还是 I/O 瓶颈,保持 UI 线程空闲以保持响应性。第 2 部分将解决内存问题。
    2007年8月13日  
 
使用 Rational Application Developer 开发和测试 SQLJ 程序
学习如何使用 Rational Application Developer(RAD)和 IBM DB2 Universal Database(DB2 UDB)编写、测试和运行 SQLJ 应用程序。同时还学习如何在 WebSphere Application Server 和 DB2 UDB 环境中运行应用程序。
    2007年8月10日  
 
Java SE 6 新特性: 编译器 API
本系列文章主要介绍 Java SE 6 在 API 库方面的部分新特性,通过一些例子和讲解,帮助开发者在编程实践当中更好的运用 Java SE 6,提高开发效率。本文是其中的第四篇,将介绍 JDK 6 中新增加的编译器 API(JSR 199)。利用此 API,您可以在运行时调用 Java 编译器,可以编译不同形式的源代码文件,还可以采集编译器的诊断信息。
    2007年8月9日  
 
使用 Cypal Studio for GWT 简化 Ajax 开发
使用 Google Web Toolkit (GWT),Java 程序员可以使用纯 Java 编程语言编写富 Asynchronous JavaScript + XML (Ajax) 应用程序。专为 Eclipse IDE 设计的 Cypal Studio for GWT 将支持对 GWT 结构的管理。了解如何使用 Cypal Studio for GWT 创建新的 GWT 模块,支持创建远程过程调用,并使您可以轻松地查看和部署 Web 应用程序。
    2007年8月9日  
 
让配置更轻松
配置是维护过程中的重要部分,加重了开发人员的负担。本文介绍一种框架,有了这个框架,开发人员可以根据高级接口定义应用程序的配置;然后,该框架生成受物理配置源(例如属性文件或者数据库)支持的这些接口的自动实现。由于这些接口中定义了配置字段,因此这些配置字段访问起来便容易得多;该技术还提供了类型安全,并支持利用 Javadoc 自动编制文档。这种方法是由 Merlin Hughes 设计和细化的,旨在改进当处理配置数据时使用字符串常量和手动类型转换的做法,同时又维持与已有配置工具和文件的兼容性。
    2007年8月6日  
 
追求代码质量: 对 Ajax 应用程序进行单元测试
您可能从编写 Ajax 应用程序中获得了极大乐趣,但是对它们执行单元测试却着实让人头痛。 在本文中,Andrew Glover 着手解决 Ajax 的弱点(其中之一),即应对异步 Web 应用程序执行单元测试的固有挑战。 幸运的是,他发现在 Google Web Toolkit 的帮助下,解决这个特殊的代码质量问题要比预想的容易。
    2007年8月6日  
 
构建 Apache Geronimo 插件
将应用程序打包成一个 Apache Geronimo 插件使其他 Geronimo 用户可以轻松地安装和使用您的应用程序。在本教程中,了解如何通过构建和测试简单的 Web 应用程序、将其打包并把它作为一个 Geronimo 插件分发来使用 Geronimo 的插件系统打包和分发应用程序。
    2007年8月2日  
 
Geronimo Bean 和 EJB 查询语言
Enterprise JavaBeans(EJB)是 Java 平台的构建块,企业版(Java EE)应用程序和 EJB 查询语言(EJB QL)使您可在无需掌握任何关系模式(用于管理实体 bean)知识的情况下,编写查询。本教程将通过一个使用实体 bean(你将把此实体 bean 部署在 Apache Geronimo 应用服务器上)的 Web 应用程序示例,介绍 EJB QL 的核心概念。
    2007年8月2日  
 
面向 Java 开发人员的 Ajax: 使用 Jetty 和 Direct Web Remoting 编写可扩展的 Comet 应用程序
受异步服务器端事件驱动的 Ajax 应用程序实现较为困难,并且难于扩展。Philip McCarthy 在其广受欢迎的系列文章中介绍了一种行之有效的方法:结合使用 Comet 模式(将数据推到客户机)和 Jetty 6 的 Continuations API(将 Comet 应用程序扩展到大量客户机中)。您可以方便地在 Direct Web Remoting (DWR) 2 中将 Comet 和 Continuations 与 Reverse Ajax 技术结合使用。
    2007年8月2日  
 
Spring 让 LOB 数据操作变得简单易行
本文讲解了在 Spring 中处理 LOB 数据的原理和方法,对于 Spring JDBC 以及 Spring 所集成的第三方 ORM 框架(包括 JPA、Hibernate 和 iBatis)如何处理 LOB 数据进行了阐述。
    2007年7月30日  
 
监控和剖析数据库操作 -- P6Spy、SQL Profiler、IronTrack SQL 使用简介
本文介绍如何在应用程序中利用 P6Spy、SQL Profiler、IronTrack SQL 工具来对数据库操作进行监控与剖析,从中发现应用系统存在的性能瓶颈,得到相关的优化建议并最终找到相应的解决办法。
    2007年7月30日  
 
进一步提升 Struts 2 对 Velocity 的支持力度
本文主要介绍如何解决 Struts 2 和最新版本的 Velocity 结合的问题以及进一步提升 Struts 2 对 Velocity 的支持力度。
    2007年7月30日  
 
真实世界中的 Rails,第 3 部分: 优化 ActiveRecord
ActiveRecord 是一种绝妙的持久性框架,但由于框架常常会隐蔽低层的一些细节,因此很容易产生性能问题。通过本文,了解最为常见的一些问题以及该如何加以解决。
    2007年7月30日  
 
AOP 的利器:ASM 3.0 介绍
随着 AOP(Aspect Oriented Programming)的发展,代码动态生成已然成为 Java 世界中不可或缺的一环。本文将介绍一种小巧轻便的 Java 字节码操控框架 ASM,它能方便地生成和改造 Java 代码。著名的框架,如 Hibernate 和 Spring 在底层都用到了 ASM。比起传统的 Java 字节码操控框架,BCEL 或者 SERP,它具有更符合现代软件模式的编程模型和更迅捷的性能。
    2007年7月25日  
 
Java SE 6 新特性: JMX 与系统管理
本系列文章主要介绍 Java SE 6 在 API 库方面的部分新特性,通过一些例子和讲解,帮助开发者在编程实践当中更好的运用 Java SE 6,提高开发效率。本文是其中的第三篇,介绍了 Java 管理扩展(Java Management Extension,JMX) 架构及其框架,以及在 Java SE 5 中新引入的 JMX API -- java.lang.management 包, 最后作者讲述了此 API 在 Java SE 6 中的相关改进和对未来版本的展望。
    2007年7月23日  
 
用 Apache Pluto 编写 portlet 并将其部署到 Apache Geronimo 中
Portlet 是功能强大的工具,可用于从多个位置聚合数据,整合各种应用程序,以及为多组用户提供一致的工作区。Apache Pluto 是 Portlet 规范的参考实现,因此可用来测试正在开发中的 portlet。本文将教您如何在 Apache Geronimo 服务器内安装和配置 Pluto portlet 容器。
    2007年7月23日  
 
让开发自动化: 断言架构可靠性
您的软件架构和您所期望的一样吗?当架构落实到代码时,它并不总是 我们曾经互相讨论并预想的那个。在本期的让开发自动化中,Paul Duvall 将演示如何通过使用 JUnit、JDepend 和 Ant 编写 有关测试来发现架构偏差,从而做到在发生问题之前主动发现问题。
    2007年7月20日  
 
用 ThinWire 和 Java 代码构建 Web 应用程序,第 5 部分: 页面切换
“用 ThinWire 和 Java 代码构建 Web 应用程序” 系列的第 5 部分讨论如何将 ThinWire 和 Java Web 站点分隔成多个页面,让用户能够通过直接点击链接以及连续页面访问在这些页面之间进行切换。
    2007年7月19日  
 
构建 Google 小工具,第 2 部分: 处理用户界面
“构建 Google 小工具”系列的第 2 部分将介绍小工具的高级特性,包括选项卡式用户界面、拖放支持和小消息(MiniMessage),另外,您还将有机会着手创建自己的小工具。
    2007年7月19日  
 
使用 JSR 179 开发基于位置的服务应用程序
亲身体验用 Eclipse SDK、Java Specification Request (JSR) 179 Location API 和 Sun Java Wireless Toolkit 成功构建和测试基于位置的 Java Platform, Micro Edition (Java ME) 应用程序的过程。
    2007年7月19日  
 
使用类路径容器简化 Eclipse 类路径
Eclipse 类路径容器是用于在 Eclipse 中管理 Java 库的一种条理清晰、界面友好的方式。由于库集合可以被引用为一个抽象名称,因此可以像处理条目一样轻松地对它们进行删除和添加操作。在 Java Perspective 中库视图也被简化为一个条目,扩展这个条目即可查看整个库集合。由于库集合是由 IClasspathContainer 的实现定义的,因此可以动态地对其进行重新定义。本教程展示了如何实现具有附带扩展 classpathContainerInitializer 和 classpathContainerPage 的定制 IClasspathContainer。
    2007年7月19日  
 
使用 JavaServer Faces 构建 Apache Geronimo 应用程序,第 5 部分:将 JSF 应用程序与 Spring 集成
这是共分五部分的系列教程的最后一篇,这里将介绍 Spring Framework。在本教程中,您将学会如何将 Java Server Faces(JSF)应用程序与 Spring 集成。Spring 是一个流行的框架,它使 Apache Geronimo 开发人员能更轻松地构建 Java Platform, Enterprise Edition(Java EE)应用程序。您将使用 Spring 继续开发 Developer Forum Signup 示例应用程序的前端。
    2007年7月19日  
 
使用 Apache OpenJPA 开发 EJB 3.0 应用,第 4 部分: 实体关联
本文是“使用 Apache OpenJPA 开发 EJB 3.0 应用”系列的第 4 部分,介绍 OpenJPA 中对实体关联关系的支持,包括一对一、多对多、多对一和多对多关系,并且通过简单的例子描述了 OpenJPA 容器实现一对一实体关联关系时的实现过程。
    2007年7月17日  
 
深入研究 Hierarchical Inherited Rule-Interpreted XML
使用名为 Hierarchical Inherited Rule-Interpreted XML 的 XML 新技术,您可以用动态 Java 属性来替代标准 Java 属性。它允许您使用简单的表达式甚至 Groovy 表达式来定义属性,这些属性的值可以基于应用程序的状态获得,它还让您可以将一个属性文件用于应用程序的多个实例。通过本文介绍的这个简单实用的替换 Java 属性文件的示例,了解如何应用此项技术。
    2007年7月12日  
 
实时 Java,第 5 部分: 编写和部署实时 Java 应用程序
这篇文章是探讨实时 Java 的 6 部分系列文章的第 5 部分,展示了如何使用 IBM WebSphere Real Time 附带的工具,编写和部署实时 Java 应用程序。作者利用示例应用程序,展示了用于控制垃圾收集暂停的 Metronome 垃圾收集器、用于避免运行时编译暂停的预编译器(Ahead-of-time compiler),以及用于满足最迫切的时间需求的 NoHeapRealtimeThread。
    2007年7月11日  
 
利用 Eclipse 进行单元测试
您的传统代码是不是要求使用匹配的类测试套件才能针对其源代码库运行?针对此类目的,jMock 堪称是一个优秀的测试框架。但是,并不是所有情况都能够适用,尤其是必须以 jMock 不期望的方式构造对象时。为避免生成自定义模拟对象套件才能支持应用程序中的单元测试的麻烦,可以调整 RMock,与 jMock 无缝地结合使用,从而解决这一问题。
    2007年7月9日  
 
面向 Java 开发人员的 db4o 指南: 超越简单对象
到目前为止,我们在 db4o 中创建并操作对象看起来都比较简单 —— 事实上,甚至有点太简单了。在本文中,热心于 db4o 的 Ted Neward 向您展示了简单对象结构化(引用对象的对象)时发生的操作。此外,还阐述了包括无限递归、层叠行为以及引用一致性在内的一些话题。
    2007年7月9日  
 
使用 StAX 解析 XML,第 3 部分: 使用定制事件和编写 XML
除了提供一个低层的基于指针的 API 之外,StAX 还提供了一个功能强大的基于迭代器的方法,它通过使用事件对象传送关于解析流的信息,以处理 XML。本系列第 2 部分详细研究了这种 API 并提供了一些使用它的例子。在本篇文章中,将介绍定制化技术,该技术使用由应用程序定义的事件,您还将看到如何创建定制事件类并使用它们结合基于事件迭代器的 API 来处理 XML。最后(同样也是重要的一点),将回顾由 StAX 提供的可将 XML 编写为标记流和事件对象的序列化器 API。
    2007年7月5日  
 
嵌入 Hamlet
开源的 Hamlet 框架可以用于协助 Web 开发和正确地分离内容与表示。OSGi 框架是在嵌入式设备上进行开发的一款优秀工具。这两个框架结合起来可以为最普通的小器具(比如咖啡机)提供基于浏览器的交互性。请继续跟随本文看看这是如何实现的。
    2007年7月5日  
 
使用 StAX 解析 XML,第 2 部分: 拉式解析和事件
Streaming API for XML (StAX) 的基于事件迭代器的 API 无论在性能还是在可用性上都有其他 XML 处理方法所不及的独到之处。第 1 部分介绍了 StAX 并详细讨论了它的基于指针的 API。本文进一步讨论基于事件迭代器的 API 及其为 Java(TM) 开发人员带来的好处。
    2007年7月5日  
 
使用 JOLAP 实现复杂分析查询
Shashank Tiwari 在本文中对 JOLAP 进行了简要介绍,它是一种标准规范,支持在 Java 企业平台上创建和操纵 On Line Analytical Processing (OLAP) 数据和元数据。
    2007年7月5日  
 
Java 理论与实践: 正确使用 Volatile 变量
Java 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出错。在这期的 Java 理论与实践中,Brian Goetz 将介绍几种正确使用 volatile 变量的模式,并针对其适用性限制提出一些建议。
    2007年7月5日  
 
使用 Apache Solr 实现更加灵巧的搜索,第 1 部分: 基本特性和 Solr 模式
Solr 是一种可供企业使用的、基于 Lucene 的搜索服务器,它支持层面搜索、命中醒目显示和多种输出格式。在这篇分两部分的文章中,Lucene Java 的提交人 Grant Ingersoll 将介绍 Solr 并向您展示如何轻松地将其表现优异的全文本搜索功能加入到 Web 应用程序中。
    2007年7月2日  
 
Java SE 6 新特性: HTTP 增强
本系列文章主要介绍 Java SE 6 在 API 库方面的部分新特性,通过一些例子和讲解,帮助开发者在编程实践当中更好的运用 Java SE 6,提高开发效率。本文是其中的第二篇,介绍了Java SE 6 在 HTTP 方面的新特性,包括 NTLM 认证的支持;提供了一个轻量级的 HTTP 服务器;提供了较为完善的 HTTP Cookie 管理功能;更为实用的 NetworkInterface 以及 DNS 域名的国际化支持等等。
    2007年6月28日  
 
使用 Abbot 框架自动化测试 Eclipse 插件的用户界面,第 2 部分
本文详细的描述了 Abbot SWT 插件的配置和使用,分析了 Abbot 的体系结构和工作原理,并给出复杂的测试用例来说明 Abbot SWT 的一些高级用法,同时还分享了作者的一些 Abbot 相关的最佳实践,相信会对从事 Eclipse 插件和 SWT 用户界面的开发和测试人员有一定的帮助。
    2007年6月28日  
 
使用 Abbot 框架自动化测试 Eclipse 插件的用户界面,第 1 部分
本文详细的描述了 Abbot SWT 插件的配置和使用,分析了 Abbot 的体系结构和工作原理,并给出复杂的测试用例来说明 Abbot SWT 的一些高级用法,同时还分享了作者的一些 Abbot 相关的最佳实践,相信会对从事 Eclipse 插件和 SWT 用户界面的开发和测试人员有一定的帮助。
    2007年6月28日  
 
XML 和 Java 技术: 低级或高级的 XML API?
Brett McLaughlin 详细介绍了一些核心的 XML API,并思考了开发人员是否从他们的 Java 和 XML 编程中获得了最大的收益。
    2007年6月28日  
 
使用 Apache OpenJPA 开发 EJB 3.0 应用,第 3 部分: 实体继承
本文是“使用 Apache OpenJPA 开发 EJB 3.0 应用”系列的第 3 部分,介绍 OpenJPA 对实体继承的三种支持方式,并且通过简单的例子描述了其中的一种方式:JOINED 实体操作方式和 OpenJPA 容器的实现细节。
    2007年6月27日  
 
使用 AIDE 实现高效率,第 7 部分: 更好的 IT 管理
IBM Autonomic Integrated Development Environment (AIDE) 有助于采用模型驱动的方法进行接触点开发,是一种有用的工厂样式且带有向导辅助的用于生成通用接触点的模式。不过,在 AIDE 驱动的工作流的某些位置,必须使得接触点特定于给定应用程序。可以在模型设计阶段进行此工作,也可以通过硬编码手动进行。本教程是本系列的第 7 部分,将介绍用于创建通用接触点和专用接触点的各项技术,并且还能从中了解如何生成与给定管理应用程序正确混合的接触点。
    2007年6月25日  
 
Seam - 无缝集成 JSF,第 3 部分: 用于 JSF 的 Ajax
JSF 基于组件的方法论促进了抽象,但大多数 Ajax 实现由于公开了底层的 HTTP 交换而使之大受干扰。在本系列最后的这篇文章中,Dan Allen 展示了如何使用 Seam Remoting API 和 Ajax4jsf 组件与服务器上的受管 bean 通信,就好像这些 bean 与浏览器同在本地一样。您将了解利用 Ajax 作为 JSF 事件驱动架构的一种自然改进是多么地容易,以及如何在不影响 JSF 组件模型的前提下实现这一目的。
    2007年6月25日  
 
使用 Apache OpenJPA 开发 EJB 3.0 应用,第 2 部分: 开发第一个 Open JPA 应用
JPA 是 EJB 3.0 新引入的数据持久化编程模型。JPA 充分利用了注释(Annotation)和对象/关系映射,为数据持久化提供了更简单、易用的编程方式。OpenJPA 是 Apache 组织提供的 JPA 标准实现。本文是 "使用 Apache OpenJPA 开发 EJB 3.0 应用系列" 的第二部分,描述了如何采用 OpenJPA 提供的接口开发 EJB 3.0 应用的步骤和方法,并介绍了 OpenJPA 中提供的几个小工具的用法,这些工具能让我们的开发过程变得更加简单、快速。
    2007年6月25日  
 
对 Atom 进行签名,加密和解密
Atom 是一种用于传递信息的极好的格式,但是其安全性如何呢?XML 数字签名(XML Digital Signature)能确保数据来自于受信任方且未被修改,同时 XML 加密(XML Encryption)能保护敏感信息不被窥窃。但是如何才能在不破坏 Atom 结构的情况下使用这些技术呢?这篇文章介绍了如何使用 Apache Abdera API 轻易地实现数字签名和加密与 Atom 的紧密结合。
    2007年6月25日  
 
使用 AIDE 实现高效率,第 6 部分: 构建自主计算系统
本教程——系列教程中的第 6 部分——介绍 IBM Autonomic Integrated Development Environment (AIDE) 的两个主要部分:Apache Tomcat 和 Axis。了解 AIDE 联机帮助中未讨论的工具相关内容,从而更习惯于此工具包使用标准开放源代码组件的方式。
    2007年6月22日  
 
使用 Acegi 保护 Java 应用程序,第 2 部分: 使用 LDAP 目录服务器
了解了 Acegi 安全系统(Acegi Security System)的基础知识后,我们将介绍该系统的更加高级的应用。在本文中,Bilal Siddiqui 向您展示了如何结合使用 Acegi 和一个 LDAP 目录服务器,实现灵活的具有高性能的 Java 应用程序的安全性。还将了解如何编写访问控制策略并将其存储在 ApacheDS 中,然后配置 Acegi 使其与目录服务器交互,从而实现身份验证和授权的目的。
    2007年6月21日  
 
使用 Rational Application Developer 在 Web 应用程序中集成水晶报表 (Crystal Reports),第 2 部分: 在设计期间使用 JDBC 连接以及在运行期间使用JNDI 连接在 Web 应用程序中嵌入水晶报表 (Crystal Reports)
学习如何在设计期间使用 JDBC 连接,运行期间使用 JNDI 连接在 Web 应用程序中嵌入水晶报表 (Crystal Reports)。
    2007年6月17日  
 
追求代码质量: 谨防紧密耦合!
我们知道紧密耦合的代码不是个好现象,因此要在设计中尽量避免它 —— 但问题是如何才能避免紧密耦合呢。这个月,我们将学习如何识别一个系统是否有紧密耦合的问题,然后使用依赖性倒置原则解开这种紧密耦合。
    2007年6月14日  
 
在 IBM Rational Software Architect 中使用 Pluglet
这篇文章介绍了 IBM Rational Software Architect 6.0 版本里包含的 pluglet 特性,向您展示了如何启用 pluglet ,并建议您在哪里使用 Pluglet 会更加有帮助。这篇文章是基于 Rational Software Architect 6.0.1 编写的,其目标读者是具有使用 Rational Software Architect 或 Eclipse for Java 进行开发经验的人。而文章中的某些部分还需要具有 Eclipse 插件开发方面的知识。
    2007年6月11日  
 
Subversion 性能调优
Subversion 是为数不多的能使用增量算法存储二进制文件的版本控制系统之一。不幸的是,用户发现这样做时会导致性能受到不小的损失。在本文中,高级开发人员 David Bell 解释为什么在处理二进制文件时 Subversion 的性能会受损,并推荐了几种方法来避开这个问题。
    2007年6月11日  
 
面向 Java 开发人员的 db4o 指南: db4o 中的数据库重构
重构 Java 代码远比重构关系数据库简单,但幸运的是,对于对象数据库却并非如此。在本期的面向 Java 开发人员的 db4o 指南中,Ted Neward 介绍他喜欢的对象数据库的另一个优点:db4o 简化了重构,使之变得非常容易。
    2007年6月8日  
 
用 Apache Derby 进行开发 —— 取得节节胜利: 用 Apache Derby 进行 Java 数据库开发,第 1 部分
来吧!本文开始带领您编写操作 Apache Derby 数据库的 Java 应用程序。学习如何使用 Derby 嵌入式 Java Database Connectivity(JDBC)驱动程序连接嵌入式 Derby 数据库。了解数据库元数据,以及如何在 Java 应用程序中正确地处理可能由 Derby 生成的 SQL 错误和警告。
    2007年6月7日  
 
Apache Geronimo JNDI 命名和 Java 资源连接池,第 1 部分: 数据源连接
在 Apache Geronimo 应用服务器中,Java Naming and Directory Interface (JNDI) 是与连接池的接口。通过此接口,开发人员可以访问所有 Java 对象,包括 Enterprise Java Bean (EJB)。本系列文章提供了概念丰富的文档,讲述了如何利用 JNDI 访问数据源、Java 消息服务、邮件会话和 URL 连接的连接池。
    2007年6月7日  
 
用 Apache Derby 进行开发 —— 取得节节胜利: 用 Apache Derby 进行 Java 数据库开发,第 2 部分
全面了解如何对 Apache Derby 数据库发出一个简单的数据查询以及如何处理选定结果。为此需要引入三个新的 JDBC 类:Statement、ResultSet 和 ResultSetMetaData。了解如何将这些类与 JDBC 数据库连接结合使用,从而快速轻松地将数据从 Apache Derby 数据库提取到您自己的 Java 应用程序中。
    2007年6月7日  
 
用 Apache Derby 进行开发 —— 取得节节胜利: 用 Apache Derby 进行 Java 数据库开发,第 3 部分
了解如何从 Java 程序修改 Apache Derby 数据库。本文将在本系列的前两篇文章基础上演示如何创建和删除表以及如何从 Java 应用程序中插入、更新和删除 Apache Derby 数据库中的数据。这包括使用 JDBC Statement 和 PreparedStatement 类,以及使用 SQL 批处理以获得改进的性能。
    2007年6月7日  
 
用 Apache Derby 进行开发 —— 取得节节胜利: 用 Apache Derby 进行 Java 数据库开发,第 5 部分
了解在将预处理语句与 Apache Derby 数据库应用程序结合使用时可用的高级功能。首先,使用 ij 工具动态执行 PreparedStatement 快速构建原型。接下来,把数据注入 PreparedStatement 以便高效地将大量数据插入到特定列中。然后使用 ParameterMetaData 对象获取信息,包括关于 PreparedStatement 中各个参数特定于供应商的实现细节。
    2007年6月7日  
 
用 Apache Derby 进行开发 —— 取得节节胜利: 用 Apache Derby 进行 Java 数据库开发,第 4 部分
了解 SQL 游标以及使用 SQL 游标在 Apache Derby 数据库中执行动态数据修改的方法。您可以通过显式使用 ij 工具来使用 SQL 游标,也可以通过隐式调用相关的 Java 方法来使用 SQL 游标。通过掌握此功能,您可以编写能够有选择性地修改商业应用程序数据的 Java 应用程序。
    2007年6月7日  
 
Apache Geronimo JNDI 命名和 Java 资源连接池,第 2 部分: 使用 Java Message Service
Java Naming and Directory Interface(JNDI)是一种应用程序编程接口(API)或库,它为应用程序提供了将名称与对象关联起来,以及根据对象的名称在目录中查找对象的方法。本文是系列教程的第二部分,展示了 Apache Geronimo、JNDI 与 Java Message Service(JMS)资源组如何相互关联。而且您将了解如何构建 JMS 资源连接,以及如何在使用 JNDI 的简单 Geronimo 应用程序中访问 JMS 资源连接。
    2007年6月7日  
 
实时 Java,第 4 部分: 实时垃圾收集
传统垃圾收集(GC)中的不确定性暂停使 Java 技术无法提供适合实时(RT)开发的环境。Metronome GC —— IBM WebSphere Real Time 的一部分 —— 提供了确定性的 GC 行为,如果与其他特性结合使用,就能使开发人员用 Java 语言编写硬 RT 应用程序。作者介绍了 Metronome 用于确定性 GC 的方法、开发 Metronome 的过程中涉及的技术问题,以及用于调优 GC 的工具和设备。
    2007年6月4日  
 
认识 p-unit : 一款开源的性能测试工具
p-unit 是一款开放源码的性能测试框架,和 JUnit 不同,JUnit 关注的是测试案例的正确性,而 p-unit 不仅关注测试案例的正确性,还收集测试案例的性能参数,默认情况下,p-unit 收集测试案例的时间和内存消耗情况,可以产生文件,图片,和 PDF 格式的报表。此外,p-unit 还支持参数化测试,多线程测试以及不同 Java 虚拟机性能之间的比较。
    2007年5月31日  
 
Java 理论与实践: 闭包之争
提起向 Java 语言增加新的特性,每个人都有自己的一两个想法。随着 Java 平台的源代码日渐开放,而使用其他语言(例如 JavaScript 和 Ruby)作为服务器端应用程序日趋流行,因此关于 Java 语言未来的争论空前激烈。Java 语言是否应该包容像闭包这样的主流新特性,然而引入过多特性会不会使得这种好端端的语言过于庞杂?在这个月的 “Java 理论与实践” 专题中,Brian Goetz 回顾了相关的概念,详细介绍了两种竞争的闭包方案。
    2007年5月28日  
 
借助传统方法使用高级 GWT 控件
Google Web Toolkit (GWT) 提供了很多库和工具让您可以在 Java 编程语言中开发 Ajax 应用程序。但是 GWT 的 UI 控件(小部件)标准库并不提供现代企业应用程序所需的高级特性。本文意在展示可以弥补这一不足的一些技巧。通过本文,您可以学习如何将流行的 JavaScript 网格组件集成到 GWT 应用程序中,从而通过较为简单的编码为 GWT 控件提供高级功能。
    2007年5月28日  
 
深入剖析 Eclipse 类装入器
Eclipse 提供了一个强大的开发平台,越来越多的应用基于 Eclipse 来开发。但是由于 Eclipse 作为一个灵活的平台,其类装入器具有一定的特殊性,在开发 Eclipse 插件时我们经常遇到类找不到的问题,尤其是当我们开发的应用使用了第三方的软件包时。本文深入剖析了 Java 的类装入器机制以及 Eclipse 的类装入器的原理与模型,并总结了Eclipse 插件应用开发常见的与类装载器相关的问题,同时给出了相应的解决方法。
    2007年5月28日  
 
用 Tomcat 和 Eclipse 开发 Web 应用程序
若将 Eclipse 与 Apache Tomcat 直接集成,那么将其用作 Web 开发平台就会更为容易。通过本文,了解如何设置 Eclipse 和 Apache Tomcat V5.5 来开发经典的 Hello World servlet。
    2007年5月25日  
 
Ruby on Rails 与 XML
您很可能听说过 Ruby on Rails。甚至有可能使用过它;或者是刚刚开始使用它进行编程。相信大家已经看出本文的主题就是 Rails,不论读者属于哪种情况,都将从本文中受益。Ruby 与 XML 是一对梦幻组合 —— 欲知详情请继续阅读。
    2007年5月24日  
 
实时 Java,第 3 部分: 线程化和同步
本文是关于实时 Java 系列文章(共 5 部分)的第三篇,考察了 Java 实时规范(RTSJ)的实现必须支持的线程化和同步问题。您还将了解开发和部署实时应用程序时必须牢记的一些有关这两方面的基本考虑。
    2007年5月24日  
 
使用 Apache OpenJPA 开发 EJB 3.0 应用,第 1 部分: OpenJPA 与 EJB 3.0
Java Persistence API(JPA)是 EJB 3.0 新引入的数据持久化编程模型,它利用 Java 5 中的注释(Annotation)和对象/关系映射,为数据持久化提供了更简单、易用的编程方式。本系列文章将全面介绍其开源实现 — Apache OpenJPA,将为学习 JPA 标准和使用 OpenJPA 进行实际的应用开发提供详细的指南。本文是系列文章的第一部分,概述了关系型数据库和面向对象之间的阻抗失谐(impedance mismatch),介绍了 EJB 3.0 JPA 标准的应对解决方案,并对 OpenJPA 进行了初步介绍。
    2007年5月24日  
 
使用 WebSphere Application Server Community Edition 开发和部署 J2EE Web 服务
Java 2 Platform Enterprise Edition (J2EE) 1.4 支持两种 Web 服务端点:传统 Java 对象(Plain Old Java Object,POJO)端点和 Enterprise JavaBeans (EJB) 端点。IBM Websphere Application Server Community Edition(本教程中称为“Community Edition”)是一种 J2EE 1.4 认证应用服务器,可对上述两种 Web 服务端点提供支持。本教程将向您演示如何使用 Eclipse Web Tools Platform (WTP) 创建同时实现 POJO 和 EJB Web 服务端点的企业应用程序,并将 IBM DB2 Express-C 用作应用程序的数据库。您将使用 Community Edition 服务器适配器(以前称为 Eclipse 插件)在 Community Edition 实例中部署该应用程序。最后,您将开发一个调用 Web 服务的客户机。
    2007年5月23日  
 
使用 Apache Geronimo 和 Eclipse 构建 portlet
Web 开发人员可以通过配置称为 portlet 的简单可重用的事件驱动组件来构建多功能门户。Eclipse 甚至会使此过程更加简单。首先,了解 Eclipse Web Tools Platform (WTP) 如何提供了一种完整的开发环境,可以用于编辑 portlet 项目所需的代码和配置文件。然后,通过集成 Apache Geronimo Eclipse 插件,了解如何能够通过访问 Geronimo 应用服务器从而在完整的门户内部署和显示这些 portlet。
    2007年5月22日  
 
构建 Google 小工具,第 1 部分: Google 小工具基础
在这个新的 Web 开发系列教程中,学习如何开发 Google 小工具(gadget)。小工具是小型的应用程序,可以将它们添加到几乎任何 Web 页面中,从而提供动态、丰富的内容。Google 提供了许多小工具供开发人员选用。但是,小工具最吸引人的特点在于:您可以编写适合自己需要的小工具,并在 Google 上发布它们,这样其他开发人员就能够将您的工作成果集成进他们的 Web 项目。
    2007年5月21日  
 
Seam - 无缝集成 JSF,第 1 部分: 为 JSF 量身定做的应用程序框架
JavaServer Faces (JSF) 是用于 Java Web 应用程序的第一个标准化的用户界面框架。而 Seam 是一个扩展 JSF 的强大的应用程序框架。在这个由三部分组成的新系列中的第一篇文章中,发现这两种框架之间的互补性。Dan Allen 介绍了 Seam 对 JSF 生命周期的增强,包括上下文状态管理、 RESTful URL、Ajax remoting、适当的异常处理和约定优于配置。
    2007年5月21日  
 
实时 Java,第 2 部分: 比较编译技术
本文是关于实时 Java 的系列文章(共 5 部分)的第二篇,考察了 Java 语言的本地代码编译所涉及的一些问题。单独使用动态(即时)编译或静态(提前)编译都不能满足所有 Java 应用程序的需求。作者在各种执行环境中对这两种编译技术进行了比较,对二者如何相互补充进行了展示。
    2007年5月16日  
 
XFire 入门
Java 社区一直试图将 POJO 的作用发挥到极致,降低 Java 应用实现的难度,最近的尝试是将 EJB3.0 建立在 POJO 之上;另一方面,SOA 是目前 Java 社区炙手可热的名词,非常多的企业都在努力应用和实施 SOA;XFire 为这两方面的需求提供了一种魔术般的解决方式,我们很快能够发现使用 XFire 创建和发布 Web 服务可以直接基于 POJO,将烦人的继承关系和一大堆其他可能的约束丢在一边。
    2007年5月16日  
 
Java SE 6 新特性: Instrumentation 新功能
2006 年底,Sun 公司发布了 Java Standard Edition 6(Java SE 6)的最终正式版,代号 Mustang(野马)。跟 Tiger(Java SE 5)相比,Mustang 在性能方面有了不错的提升。与 Tiger 在 API 库方面的大幅度加强相比,虽然 Mustang 在 API 库方面的新特性显得不太多,但是也提供了许多实用和方便的功能:在脚本,WebService,XML,编译器 API,数据库,JMX,网络和 Instrumentation 方面都有不错的新特性和功能加强。本系列文章主要介绍 Java SE 6 在 API 库方面的部分新特性,通过一些例子和讲解,帮助开发者在编程实践当中更好的运用 Java SE 6,提高开发效率。本文是本系列的第一篇,介绍了 Java SE 6 在 Instrumentation 方面的新特性。
    2007年5月16日  
 
用 ThinWire 和 Java 代码构建 Web 应用程序,第 4 部分: 编写模板类
利用 ThinWire 这种开放源码开发框架,您可以构建出外观和感觉与桌面应用程序相似的 Web 应用程序。在这个共分五部分的教程系列中,学习如何使用 ThinWire 和 Java 编程语言开发 Web 应用程序。在本期中,您将学习如何编写模板类来定义一种最常用的 Web 页面布局。
    2007年5月15日  
 
使用 EclEmma 进行覆盖测试
覆盖测试是衡量测试质量的一个重要指标。在对一个软件产品进行了单元测试、组装测试、集成测试以及接受测试等繁多的测试之后,我们能不能就此对软件的质量产生一定的信心呢?这就需要我们对测试的质量进行考察。如果测试仅覆盖了代码的一小部分,那么不管我们写了多少测试用例,我们也不能相信软件质量是有保证的。相反,如果测试覆盖到了软件的绝大部分代码,我们就能对软件的质量有一个合理的信心。本文将介绍一个优秀的开源软件测试工具 EclEmma,它能够对由 Java 语言编写的程序进行覆盖测试,从而对程序运行的结果生成详尽的覆盖测试报告。
    2007年5月10日  
 
实时 Java,第 1 部分: 使用 Java 语言编写实时系统
本文是关于实时 Java 的系列文章(共 5 部分)的第一篇,描述了使用 Java 语言开发能够满足实时性能需求的系统的过程中遇到的主要挑战。全面概述了实时应用程序开发的意义,以及如何设计运行时系统以满足实时应用程序的需求。作者介绍了一个实现,该实现通过组合一些基于标准的技术解决了实时 Java 带来的挑战。
    2007年5月10日  
 
使用 Axis2 和 JiBX 将 Java 类转换成 Web 服务,第 1 部分: 使用 XML 通过 Java 类定义 Web 服务
XML 功能强大,使用它能够定义任何事物。更重要的是,它是使大多数应用程序具有外部可读格式的基础,对于本系列文章所使用的 Axis2 和 JiBX 尤为显著。随着 Web 服务的日益普及,使用 Axis2 和 JiBX 将原来的 Java(TM)项目转换成功能全面的 Web 服务也显得格外紧迫。以往,Web 服务都是根据一个服务和一个单一的类自动生成的,而现在开发人员可以通过已有项目中的各种 Java 类生成一个或多个服务。本文(本系列的第 1 部分)使用 XML 通过已有 Java 类定义了一个 Web 服务。
    2007年5月10日  
 
使用 Axis2 和 JiBX 将 Java 类转换成 Web 服务,第 2 部分: 把 XML 转换成功能全面的 Web 服务
XML 功能强大,使用它能够定义任何事物。更重要的是,它是使大多数应用程序具有外部可读格式的基础,对于本系列文章所使用的 Axis2 和 JiBX 尤为显著。随着 Web 服务的日益普及,使用 Axis2 和 JiBX 将原来的 Java(TM) 项目转换成功能全面的 Web 服务也显得格外紧迫。以往,Web 服务都是根据一个服务和一个单一的类自动生成的,而现在开发人员可以通过已有项目中的各种 Java 类生成一个或多个服务。本文(本系列文章的第 2 部分)使用 Axis2 和 JiBX 将 XML 转换成已有 Java 类提供的功能全面的 Web 服务。
    2007年5月10日  
 
使用 Acegi 保护 Java 应用程序,第 1 部分: 架构概览和安全过滤器
这份共分三部分的系列文章介绍了 Acegi 安全系统(Acegi Security System),它是用于 Java 企业应用程序的强大的开源安全框架。在第一篇文章中,Bilal Siddiqui 顾问将向您介绍 Acegi 的架构和组件,并展示如何使用它来保护一个简单的 Java 企业应用程序。
    2007年5月8日  
 
在 Apache Geronimo 上开发和部署 Apache Pluto 门户应用程序
即使 Apache Geronimo 的功能集中缺少预先集成的门户服务器支持,您仍可以使用 Geronimo 作为门户应用程序的测试和部署环境。本文将引导您逐步完成在 Geronimo 部署 Apache Pluto 驱动器和容器的过程,为您的门户应用程序提供百分之百的开放源码环境。然后了解如何在 Pluto 和 Geronimo 中开发、部署和测试样例门户应用程序。
    2007年5月8日  
 
追求代码质量: 使用 Selenium 和 TestNG 进行编程式测试
Selenium 是一种测试框架,它使您可在 Web 应用程序上轻松地运行用户验收测试(user acceptance test)。本月,Andrew Glover 将向您展示如何以编程的方式运行 Selenium 测试,并使用 TestNG 作为测试驱动程序。在将 TestNG 灵活的测试特性(包括参数化 fixture)添加到 Selenium 固有的工具包后,您需要做的就是借助 DbUnit 和 Cargo 的帮助编写完全自动化、逻辑可重复的验收测试。
    2007年4月30日  
 
跨越边界: Rails 案例研究
Ruby on Rails 开发和 Java 开发有着本质的不同。在跨越边界系列的最后一期中,Bruce Tate 将概述使用 Rails 从头开发一个复杂、可伸缩的 Web 站点时所发现的二者的主要差异。
    2007年4月24日  
 
面向 Java 开发人员的 db4o 指南: 查询,更新和一致性
尽管 RDBMS 使用 SQL 作为其查询和检索数据的主要机制,但是 OODBMS 可以使用一些不同的机制。在本系列的第二期文章中,Ted Neward 将介绍一些新方法,包括 Query by Example 以及定制只有 OODBMS 才具有的机制。正如他解释的一样,有些替代方法比 SQL 本身更易于使用。
    2007年4月20日  
 
使用 AIDE 实现高效率: 第 5 部分:构建自主计算系统
本教程是系列教程中的第 5 部分,将介绍如何使用接触点技术管理 Apache Derby 数据库。通过本教程,可了解如何使用包含 Derby 的工作实例的接触点,以及如何通过管理接口将 Derby 数据库实例作为基于 Web 服务的托管对象进行处理。您将通过使用 Autonomic Integrated Development Environment (AIDE) 资源浏览器和 Derby Java 客户机程序与此接触点交互。
    2007年4月17日  
 
Java SE 6中 XML 数字签名的标准 Java 接口
XML 数字签名技术用于对 XML 格式的数据进行数字签名,以保证报文的完整性,不可否认性,以及提供身份认证信息。JSR 105 提供了 XML 数字签名的 Java 接口,而最近发布的 Java SE 6 则包括了 JSR 105的 实现,从而为基于 Java 的应用程序提供了标准的 XML 数字签名接口。本文首先简要介绍技术背景,以实例来讲解 XML 数字签名的语法和处理规则,之后用具体的程序例子解释如何使用 Java SE 6 生成各种格式的 XML 数字签名并进行验证。
    2007年4月16日  
 
纯 servlet:重新考虑视图
对于具有动态内容的 Web 页面,可以使用 Java Server Pages(JSP)技术将开发人员和 UI 设计人员的工作分离开来。遗憾的是,JSP 对于许多设计人员来说太复杂了,所以 Java 开发人员只好自己处理 JSP 代码,这往往会产生令人不满意的结果。本文演示一种非正统的替代方法:通过使用简单的 helper 对象,根据纯 servlet 构建 Web 界面。
    2007年4月13日  
 
XML 和 Java 技术: 数据绑定的多种用法
Brett McLaughlin 讨论了数据绑定 API 和几种数据绑定方法的优点。
    2007年4月13日  
 
Geronimo 叛逆者: 使用 Spring 框架轻松解决数据访问和配置问题
如果您是一名典型的开发人员,那您必然乐意得到一个可解决数据访问问题的解决方案,也会欢迎任何能够简化配置的工具。如果不是有人提出了 Spring,则很难从总体上探讨 Web 应用程序,对于这些特定的问题更是如此。但是,天哪,我们真的需要另外一种 Web 应用程序框架吗?在我决定撰写一期 Geronimo 叛逆者文章,来探讨 Apache Geronimo 和 Spring 的交叉时,我就知道,这正是搞清所有关于 Spring 框架的传闻的大好时机。Jeff Genender 为我解答了很多难题,我完成了这个任务。
    2007年4月12日  
 
Valang Validator 攻略
Valang 是 Validation Language 的缩写,Valang Validator 的字面含义就是“使用验证语言的验证器”,是一种支持声明的验证器。本文详细的介绍了 ValangValidator 的使用和相关所需的配置。作为一种新型的验证工具,它提供的验证语言(valang)具有简单、易学,易扩展等特点。
    2007年4月12日  
 
面向 Java 开发人员的 db4o 指南: 简介和概览
本文是系列文章的开篇,介绍了 db4o,并解释了它因何成为当今关系型数据库的重要选择。
    2007年4月9日  
 
进入 Harmony 世界,第 5 部分: Harmony 基础设施介绍
本文较详细地介绍了 Harmony 项目中一些重要的基础设施,展示如何搭建配置开发环境,以及如何参与到 Harmony 项目的实际开发中来。
    2007年4月6日  
 
Geronimo 叛逆者: 直面 JSF
在上一期 “Geronimo 叛逆者” 专栏文章中,我想知道 Spring 最重要的功能是什么,当我继续探究下去时,我开玩笑说现在需要有个人来告诉我为什么 JavaServer Faces (JSF) 这样火爆。您不知道,摆在我桌面上的下一件事就是需要 Apache Geronimo 和 Apache MyFaces 之间进行交互,主要集中在其 JSF 的实现。嗯,现在变成一件好事了。我与 IBM 的 Tim McConnell 进行了一次会谈,他目前正在将 Geronimo 与 MyFaces 集成,我了解到了比预期多得多的关于实际上怎样实现此类规范的内容。
    2007年4月6日  
 
使用 Google Web Toolkit、Apache Derby 和 Eclipse 构建 Ajax 应用程序,第 2 部分: 可靠后端
本文是使用 Google Web Toolkit(GWT)构建 Asynchronous JavaScript + XML(Ajax)应用程序系列文章的第 2 部分,介绍如何为 Web 应用程序构建 Apache Derby 数据库,并使用它驱动 GWT。本系列文章的第 1 部分向您介绍了 GWT,并演示了如何使用它来为 Web 应用程序创建富客户机前端。这一次,您将走进幕后,了解如何使用数据库和用于将数据转换为 GWT 可用格式的代码,从而设置后端。阅读完本文后,您将可以使前端和后端相互通信。
    2007年4月4日  
 
使用 Google Web Toolkit、Apache Derby 和 Eclipse 构建 Ajax 应用程序,第 3 部分: 通信
在本系列的前两篇文章里,您已经了解了如何使用 Google Web Toolkit (GWT) 和 Apache Derby 关系数据库创建简单的 Web 应用程序。第 1 部分主要介绍了如何使用 GWT 构建名为 Slicr 的比萨交付系统的前端。在第 2 部分中,向您展示了如何使用 Derby 创建关系数据库,并简要演示了将数据库行转换为 Java 对象的机制。现在将开始变得有趣起来!在第三篇文章中,了解如何使客户机与服务器相互进行对话。您将使用 GWT 内的远程过程调用(Remote Procedure Call,RPC)框架从服务器获取数据,这几乎就像执行一次 Java 方法调用一样简单。
    2007年4月4日  
 
使用 Google Web Toolkit、Apache Derby 和 Eclipse 构建 Ajax 应用程序,第 4 部分: 部署
在本系列的前三篇文章中,您已经使用 Google Web Toolkit (GWT) 构建了简单但实用的 Web 应用程序。至此,您一直在编辑和调试使用 GWT 的托管模式的应用程序,GWT 的托管模式允许在 Java 开发工具内模拟 Web 服务器环境。糟糕的是,让所有用户都下载 Eclipse 只为运行 Web 应用程序是不切实际的。本文是本系列的第四篇文章,阅读本文,您将了解如何在 Java Web 应用服务器上部署 GWT 应用程序,并获得关于使用 Apache Derby 数据库驱动 GWT 的提示。
    2007年4月4日  
 
追求代码质量: 使用 TestNG-Abbot 实现自动化 GUI 测试
TestNG-Abbot 是一种测试框架,它为 GUI 组件的测试带来了新的活力。本月,Andrew Glover 将带领您亲历使用 TestNG-Abbot 测试 GUI 过程中难度最大的部分,即理解用户场景的实现过程。一旦理解了它,您会发现将 GUI 组件隔离并使用框架所含的极其方便的 fixture 对象对其进行验证是多么地简单。
    2007年4月2日  
 
Java Web 服务,第 2 部分: 深度探索 Axis2:AXIOM
Apache Axis2 Web 服务框架构建于新的 AXIOM XML 文档模型之上,可以进行高效的 SOAP 消息处理。与常规的文档模型不同,AXIOM 仅在被访问时才会在内存中构建文档表示。了解为什么这种按需构造的方法对于 SOAP 处理来说非常合适,以及为什么 XOP/MTOM 附件、数据绑定和性能非常适于这种情况。
    2007年4月2日  
 
Geronimo 叛逆者: 安全和 Apache Geronimo 的未来
对于 Apache Geronimo 这样提供全面服务的应用服务器来说,需要具有全面服务的安全实现,就是说仅仅支持 SSL 连接还不够。安全实现是指保证应用程序中发出的内部请求的安全。在本部分,David Jencks 将与 Geronimo 叛逆者专栏的主笔讨论关于 Geronimo 的安全实现的当前和未来的看法。
    2007年3月30日  
 
跨越边界: 对 Rails 进行扩展
Java 编程语言一直以来都是一个很出色的 “熔炉”,它具有用于集成的丰富和强大的功能 —— 从用于集成企业库的依赖性注入容器,到 Enterprise JavaBeans (EJB) 技术,再到 Eclipse 的组件模型。通过使用大量这样的理念和架构,Java 开发人员率先采用新的方法将完全不同的软件库和组件组合成一个整体。但是 Java 开发人员并没有对优秀的集成技术造成垄断。本文通过审视一个流行插件来了解 Ruby on Rails 插件的工作原理。
    2007年3月29日  
 
JavaScript 中的有限状态机,第 3 部分: 测试小部件
在本系列中,学习如何用有限状态机系统化地为一个简单 Web 小部件(一个淡入和淡出视图的动画式工具提示)设计复杂的行为。产生的代码既紧凑又简洁,它的逻辑是透明的,它的动画效果即使在负载很重的处理器上也能够顺畅地展现。在本文中,学习如何处理让这个实现能够在所有流行的 Web 浏览器上运行的实际问题。第 1 部分讲解如何用有限状态机系统化地为一个简单的 Web 部件设计复杂的行为。第 2 部分描述了如何用 JavaScript 实现这种行为,并充分利用语言的独特特性,包括关联数组和函数闭包。
    2007年3月27日  
 
IBM WebSphere 开发者技术期刊: 最重要的 Java EE 最佳实践
2004 年 IBM WebSphere 开发者技术期刊中曾发表过一篇名称类似的文章,本文是其更新版本。这个修正版中考虑了一些不断变化的技术趋势,更重要的是推荐了一些作者认为应当广泛遵循、但尚未广泛遵循的实践。
    2007年3月27日  
 
使用 AIDE 实现高效率,第 4 部分: 接触点通知与简单管理器
本教程是系列教程中的第 4 部分,将介绍如何创建将工具提供的通知映射到其接触点对等项的接触点。本系列前面的教程介绍了如何在接触点实现简单的 GET 和 SET 操作。本教程将添加通知处理来达到此目的,为您的接触点和基础托管资源进行更为完整的交互打好基础。您还将了解如何以编程方式操作一系列接触点,从而为创建简单的自主管理器打下基础。
    2007年3月26日  
 
让开发自动化: 持续测试
准备好开始在您的开发人员测试活动中大获全胜吗?在本期的让开发自动化中,开发自动化专家 Paul Duvall 介绍了几种自动化的开发人员测试,每一次改变源代码都能够运行这些测试。Paul 提供了 Selenium、DbUnit 和 JUnitPerf 测试的例子,即,如果经常运行这些测试可以帮助您尽早发现应用程序的问题。
    2007年3月26日  
 
XML 和 Java 技术: XML 究竟有哪些优势?
Brett McLaughlin 提出 XML 作为数据交换格式的价值的问题。
    2007年3月26日  
 
Little-G:为您的应用服务器瘦身
您是否常常构建简单的应用程序,但是必须用重量级应用服务器来部署它们?您是否知道在 Java Platform, Enterprise Edition(Java EE)众多的特性中有百分之几是我们常用的?我估计只有 10%。Apache Geronimo 是一种稳定、开源的 Java 2 Platform, Enterprise Edition(J2EE) 1.4 认证应用服务器;但是它的特性过于丰富繁冗,规模过于庞大。为了给 Web 应用程序构建一种简单、轻量但有用的容器,Apache 的开发人员创建了 Apache Geronimo Little-G,这是原始 Geronimo 应用服务器的简化版本。尽管 Little-G 不是 J2EE 认证的服务器,但是它具备最常用的符合 J2EE 规范的特性,包括一个完整的 Web 容器、事务管理器、数据库连通性。在本文中,我们将研究 Little-G 的特性并学习如何在其上部署和运行 Web 应用程序。
    2007年3月23日  
 
Java 理论与实践: 在 JDK 早期版本中使用 Java 5 的语言特性
Java 5 添加了许多强大的语言特性:泛型、枚举、注释、自动装箱和增强的 for 循环。但是,许多工作组仍然被绑定在 JDK 1.4 或以前的版本上,可能需要花些时间才能使用新版本。但是,这些开发人员仍然可以使用这些功能强大的语言特性,同时在 JVM 早期版本上部署。在这一期 Java 理论与实践中,Brian Goetz 将演示如何在 JDK 早期版本中使用 Java 5 的语言特性。
    2007年3月21日  
 
用 ThinWire 和 Java 代码构建 Web 应用程序,第 3 部分: 样式化支持
利用 ThinWire 这种开放源码开发框架,可以构建出外观和感觉与桌面应用程序相似的 Web 应用程序。在这个共分五部分的系列教程中,学习如何使用 ThinWire 和 Java 编程语言开发 Web 应用程序。在第 3 部分中,学习如何在全局级别和单独组件级别使用 ThinWire 样式化支持。
    2007年3月20日  
 
深入探索 JUnit 4
JUnit 4 放弃了过去严格的命名规范和继承层次,转而推崇 Java 5 注释的灵活性。在本教程中,作为对他的关于代码质量这个流行系列的补充,测试专家 Andrew Glover 介绍了如何充分利用由注释实现的新功能,包括参数测试、异常测试及计时测试。他也介绍了 JUnit 4 的灵活固件,展示了如何使用注释(而不是套件)在运行测试前对测试进行逻辑分组。该教程包括几个在 Eclipse 下运行的测试样例,以及如何在较早的 Ant 版本中运行 JUnit 4 的指导。
    2007年3月20日  
 
WebSphere ESB 入门:创建 POJO 并将其作为服务发布
从传统 Java 对象(Plain Old Java Object,POJO)开发服务组件,并在 IBM WebSphere Enterprise Service Bus 中发布。采用 Web 服务描述语言(Web Services Description Language,WSDL)定义接口,并使用 Java 实现。了解如何将服务组件与独立引用相关联,以及如何使用独立引用跨 ESB 访问服务。
    2007年3月20日  
 
Apache Geronimo 和 Spring 框架,第 6 部分: Spring MVC:使用 Web 视图技术
本教程是系列教程(共六部分)的最后一部分,向您展示了如何利用 Spring 框架来使用 JavaServer Page(JSP)、Velocity、Tile 和 PDF 导出功能。您将用 Model-View-Controller(MVC)中的 V 做试验,即 Spring MVC 中内置的各种 Web 视图。通过对 Spring MVC 所支持的各种视图技术的全面介绍,您将看到在整个系列教程中构建的样例电话本应用程序中实现这些技术有多么轻松。
    2007年3月16日  
 
Apache Geronimo 和 Spring 框架,第 5 部分: Spring MVC
Spring Model-View-Controller(MVC)是 Spring 框架中应用最广泛的模块。它基于一种干净的设计,并提供了很多开箱即用的类。本教程是系列教程(共六部分)的第五部分,通过向电话本示例应用程序中添加更多功能详细介绍了 Spring MVC。在此过程中,您将了解如何利用丰富的 Spring MVC API 集中的有用类,如何定义易于理解的控制器来处理 JavaServer Page(JSP)的操作,如何扩展和使用由 Spring MVC 提供的数据验证类等等。并且一如既往,您将使用 Apache Geronimo Web 控制台来简化应用程序开发。
    2007年3月15日  
 
实现一个不受约束的不变性模型
不变对象对于编写线程安全的软件来说非常有帮助。在 Java 语言中,保证不变性的主要机制是使用 final 字段。但 final 字段必须在构造函数中设置,而在一些情况中,这一要求未免太过局限。本文将介绍一种有效的实现方式,使用标准缓存字段来实现一个略微随意的不变性模型,该字段的值无需同步也能安全访问。
    2007年3月14日  
 
Simple Persistence for Java 的零配置对象持久性
Simple Persistence for Java 是一个开源的对象关系型持久性库,它使用定制查询语言以及内建数据库支持来简化 Java 应用程序中的对象持久性。在本文中,软件架构师 Sami Salkosuo 介绍了该库,并带您领略解决对象持久性的零管理以及零配置方法。
    2007年3月12日  
 
在 JRuby 中构建 Apache Derby 数据库应用程序的两种方法
JRuby 是运行在 Java 虚拟机(Java Virtual Machine,JVM)中的 Ruby 编程语言的实现。本教程演示了如何安装和配置 JRuby 以连接至 Apache Derby 数据库。随着 Ruby 和 Ruby on Rails 变得越来越流行,JRuby 成为一种广受关注的技术,在使用诸如简单的语法和闭包之类的 Ruby 功能时利用 JVM 的可移植性、安全性和类库。如果编写的是需要关系数据库的小型应用程序,或者需要能够随产品配送数据库,则 Derby 数据库是持久性机制的最佳选择。本教程将向您展示连接至 JRuby 并从 JRuby 构建 Derby 数据库应用程序的两种方法。
    2007年3月9日  
 
J2EE 连接器架构(J2EE Connector Architecture, JCA)简介
IBM 电子商务架构师 Willy Farrell 向您循序渐进地介绍了 J2EE 连接器架构、该架构下最为相关的组件以及每个组件的功能。
    2007年3月7日  
 
使用 DB2 Express-C、Eclipse WTP 和 WebSphere Application Server Community Edition V1.1 设置 SQL 域
本教程向您介绍如何使用免费的 Java Kick-start 包设置 SQL 域,以实现 Web 应用程序的数据库安全。
    2007年3月5日  
 
JavaScript 中的有限状态机,第 2 部分: 实现组件
本系列的第 1 部分演示了如何用有限状态机系统化地为一个简单 Web 小部件(一个淡入和淡出视图的动画式工具提示)设计复杂行为。在本文中,您将学习如何用 JavaScript 实现这种行为,并充分利用语言的独特特性,包括关联数组和函数闭包。产生的代码既紧凑又简洁,它的逻辑是透明的,它的动画效果即使在负载很重的处理器上也能够平滑地执行。第 3 部分将讨论如何让这个实现能够在所有流行浏览器上运行的实际问题。
    2007年3月5日  
 
跨越边界: Lisp 之美
Lisp 长久以来一直被视为伟大的编程语言之一。其漫长的发展过程(接近五十年)中引发的追随狂潮表明:这是一门非同凡响的语言。在 MIT,Lisp 在所有程序员的课程中占了举足轻重的地位。像 Paul Graham 那样的企业家们将 Lisp 卓越的生产力用作他们事业成功起步的推动力。但令其追随者懊恼万分的是,Lisp 从未成为主流编程语言。作为一名 Java 程序员,如果您花一点时间研究 Lisp 这座被人遗忘的黄金之城,就会发现许多能够改进编码方式的技术。
    2007年3月5日  
 
使用 StAX 解析 XML,第 1 部分: Streaming API for XML (StAX) 简介
Streaming API for XML (StAX) 是用 Java(TM)语言处理 XML 的最新标准。作为一种面向流的方法,无论从性能还是可用性上都优于其他方法,如 DOM 和 SAX。本系列分为 3 部分,本文是第 1 部分,简要介绍了 StAX 及其处理 XML 的基于指针的 API。
    2007年3月2日  
 
单元测试利器 JUnit 4
本文主要介绍了如何使用 JUnit 4 提供的各种功能开展有效的单元测试,并通过一个实例演示了如何使用 Ant 执行自动化的单元测试。本文假设读者对 Eclipse 下进行 Java 开发有一定的经验,并了解 Java 5 中的注解(annotation)特性。
    2007年2月28日  
 
使用 SVK 构建分布式版本控制环境
SVK 是一个基于 Subversion 构造的分布式的版本控制系统。通常的集中式管理系统,如 CVS,Subversion 已经得到广泛应用,但是集中式的管理存在相应的缺陷,例如对唯一的版本库过分依赖:一旦不能正常连接到集中式的版本库,整个系统陷入瘫痪。SVK 最大的能力就在于可以维护分布式的版本库,分散的开发人员可以通过 SVK 建立远程的 CVS,Subversion,P4 协议的版本库镜像,选择工作在自己合适的镜像版本库,这个镜像甚至可以是本地的,整个工作可以离线进行,然后在需要的时候同步镜像版本库到主版本库。
    2007年2月28日  
 
EJB 倡导者: 有状态会话 Bean 的实际使用
正当您认为某个给定的组件没有什么用处的时候,比如有状态会话 EJB,可能正好会出现适合应用该组件的场景。在本系列的上一期专栏中,EJB 倡导者研究了一些棘手的情况,它们有时需要提供长时间运行的服务。
    2007年2月27日  
 
Web 2.0 用户界面技术
假设您需要创建一个适合 Web 2.0 环境的新应用程序。一部分用户非常喜欢基于 HTML 的用户界面,而其他用户希望他们使用的每个应用程序都表现得像 Excel 那样的桌面应用程序。您的老板要求有工作效率高的用户体验,但是 CIO 不允许开发需要用户手工部署的任何东西。您知道 HTML 无法达到这样的目标,但是怎么做才能符合要求呢?本文要讨论一系列 Web 2.0 用户界面技术,让您构建的应用程序具有比浏览器更好的用户体验。而且,可以像任何其他 Java 2 Enterprise Edition(Java EE)应用程序一样集中地部署和管理它们。
    2007年2月26日  
 
Java 2007:新年展望
2007 年将是载入史册的一年,Sun Microsystems 公司将于这一年在开源许可协议下发布 Java 开发包(JDK),从而放弃了对 Java™ 平台的统驭,将权力交给了 Java 开发人员社区!在本文中,Java 开发人员 Elliotte Rusty Harold 从各个方面预测了 Java 平台的新方向,从脚本到 bug 修复到新语法。
    2007年2月26日  
 
IBM WebSphere 开发者技术期刊: 通过 WebSphere Application Server V6.1 利用 OpenJPA
Apache OpenJPA 项目是 Java Persistence API 的一个开放源代码实现,集中于构建一个稳健、高性能、可伸缩的 JPA 规范实现。本文通过一个完整的示例来介绍 OpenJPA,该示例演示了现在如何通过 IBM WebSphere Application Server V6.1 来利用 OpenJPA 的部分功能。
    2007年2月25日  
 
用 ThinWire 和 Java 代码构建 Web 应用程序,第 2 部分: 使用 SplitLayout 类
利用 ThinWire 这种开放源码开发框架,可以构建出外观和感觉与桌面应用程序相似的 Web 应用程序。在这个分五部分的教程系列中,学习如何使用 ThinWire 和 Java 开发 Web 应用程序。在第 2 部分中,学习如何将 SplitLayout 类与自己的布局管理代码相结合,从而根据 Web 浏览器窗口的当前大小动态地改变 ThinWire GUI 的布局。
    2007年2月12日  
 
追求代码质量: 用 AOP 进行防御性编程
虽然防御性编程有效地保证了方法输入的条件,但如果在一系列方法中使用它,不免过于重复。本月,Andrew Glover 将向您展示通过一种更为容易的方式,即使用 AOP、契约式设计和一个便捷的叫做 OVal 的库,来向代码中添加可重用的验证约束条件。
    2007年2月12日  
 
在方法签名中使用控制反转(IoC)
控制反转(IoC)模式通常用于组件。本文描述了如何对方法签名使用该模式,以减少组件间的耦合并改善性能。IBM Global Business Services 顾问 Andr Fachat 用两个例子展示了这种方法的灵活性。
    2007年2月12日  
 
Java 理论与实践: 理解 JTS —— 事务简介
Java Transaction Service 是 J2EE 架构的关键元素。它与 Java Transaction API 结合在一起,使我们能够构建对于各种系统和网络故障都非常健壮的分布式应用程序。这个由三个部分组成的系列文章的第一期讲述了一些基础知识,包括什么是事务,以及事务对于构建可靠的分布式应用程序来说至关重要的原因。
    2007年2月8日  
 
在 Java Web 开发框架中创建 VoiceXML 页面,第 4 部分: 在 Java 中创建 VoiceXML 库
掌握了基于 Java 的 VoiceXML 应用程序的基础知识之后,您就可以开始编写更智能化的应用程序了。巧妙地利用 JavaBean 组件、servlet、JavaServer Pages(JSP)技术和普通旧式 Java 对象(POJO),您就可以使应用程序开发比以往任何时候更快、更流畅。
    2007年2月2日  
 
使用 Google Web Toolkit、Apache Derby 和 Eclipse 构建 Ajax 应用程序,第 1 部分: 梦幻前端
在通往创建在用户 Web 浏览器中运行的动态 JavaScript 应用程序的征途中,Google Web Toolkit(GWT)是举足轻重的一步。使用 GWT,开发人员可以利用熟知的 Java 技术设计用户界面(UI)和事件模型,而 GWT 会完成使代码对所有主流浏览器友好的繁重工作。这是本系列的第一篇文章,介绍 GWT 基础知识,包括 GWT 是怎样使您创建一个 Asynchronous JavaScript + XML(Ajax)应用程序,而且依然在 Java 语言中编写代码的。探索如何创建和运行一个小型的样本 GWT 应用程序 —— 近来十分流行的一项 Web 2.0 新业务,称为 Slicr,在线销售比萨饼。
    2007年2月2日  
 
简单的 Xalan 扩展函数
Xalan XSLT 处理器几乎可以调用类路径中任何 Java(TM)类的方法。这样做可以提高性能,提供 XSLT 中不可用的三角函数、执行文件 I/O 和网络服务器等特性,或实现以 Java 语言可轻松编写但在 XSLT 中难以编写的算法。学习从 Xalan 中调用 Java 代码的基础知识。
    2007年2月2日  
 
三、二、一 …… Geronimo!,第 4 部分: 模式
Web 浏览器标志着由数据库模式开头的这条路线的终点。如何创建一个好的数据库模式呢?您不仅需要有效的工具;还需要一个计划。设计数据库这件事,一半是科学,一半是艺术,那现在就开始操练您的技术吧。发掘一些有用的技巧,设计一个快速、有效地响应变化的数据库模式。
    2007年1月30日  
 
JavaScript 中的有限状态机,第 1 部分: 设计一个小部件
有限状态机很早就已用作设计和实现事件驱动的程序(比如网络适配器和编译器)内复杂行为的组织原则。现在,可编程的 Web 浏览器为新一代的应用程序开辟了一种全新的事件驱动环境。基于浏览器的应用程序因 Ajax 而广为流行,而同时也变得更为复杂。程序设计人员和实现人员能够大大受益于有限状态机的原理和结构。本篇文章将向您介绍如何使用有限状态机来为一个简单的 Web 小部件 —— 一个能够淡入和淡出的工具提示 —— 设计复杂的行为。
    2007年1月29日  
 
让开发自动化: 用 Eclipse 插件提高代码质量
如果能在构建代码前发现代码中潜在的问题会怎么样呢?很有趣的是,Eclipse 插件中就有这样的工具,比如 JDepend 和 CheckStyle,它们能帮您在软件问题暴露之前发现这些问题。在让开发自动化的本期文章中,自动化专家 Paul Duvall 将带来一些关于 Eclipse 插件的例子,您可以安装、配置和使用这些静态分析插件,以便在开发生命周期的早期预防问题。
    2007年1月29日  
 
认识 Atom 发布协议,第 3 部分: Apache Abdera 项目简介
本系列的前几期介绍了 Atom 发布协议(Publishing Protocol),描述了在实际应用程序中使用的各种方式。本文将举例说明如何使用一个新的开放源代码项目 Abdera 实现支持 Atom 的应用程序,该项目目前处于 Apache Software Foundation 孵化阶段。
    2007年1月26日  
 
三、二、一 …… Geronimo!,第 3 部分: 状态问题
尽管计算机和 Web 使日常的任务变得更加便利,但它们也带来了一些新的挑战。如今的 Internet,其运行再也不仅仅限于对 HTML 编码的 Web 页面的请求做出响应。当今的 Web 站点必须能够维护大量的用户信息,并且能够管理许多复杂的任务。幸运的是,现在已经有一些前沿的工具能够用来简化这类状态问题。其中一种具有行业水准的解决方案脱颖而出,它就是会话状态。本文演示了 Apache Geronimo 如何能够维护成千上万个同时连接的状态,这样一来,IT 经理们就可以松口气了。
    2007年1月25日  
 
在 Java Web 开发者框架中创建 VoiceXML 页面,第 3 部分: 在 Java 语言中简化 VoiceXML 开发
学习了本系列的前两部分之后,您应已能够轻松地使用 Java servlet 创建多页面应用程序。但 servlet 并非简单的 Java 类文件,每次更改后都必须重新编译 —— 即便只作了一次简单的更改。如果为大部分 VXML 使用 JavaServer Pages(JSP)技术,您会发现更改变得更加轻松,此外,每次对 VXML 作出简单更改时,再也不必重新编译 servlet。
    2007年1月25日  
 
MIDlet 国际化
国际化不仅仅是一个趋势 —— 它已经成为开发应用程序的必要需求。JSR-238 的目的是帮助 Java Platform,Micro Edition(Java ME)开发人员利用 Mobile Information Device Profile(MIDP)/Connected Limited Device Configuration(CLDC)将其国际化工作减至最少。通过这篇文章发现一种国际化 MIDlet 的更便捷方法。
    2007年1月25日  
 
IBM WebSphere 开发者技术期刊: 在 WebSphere MQ V6.0 上运行独立 Java 应用程序
了解如何开发使用 IBM WebSphere MQ V6.0 发送和接收消息的 J2SE 应用程序。得到的应用程序可以使用 J2EE 的标准 JMS 和 JNDI API,而不需要在 J2EE 应用服务器上进行开发。
    2007年1月23日  
 
开发基于 Ajax 的用户注释系统
对于用户来说,能够向 Web 站点中添加注释和评论是一项强大并且十分吸引人的功能。本教程演示了如何以即时贴的形式(位于常规 Web 页面内容的顶部)实现基于 AJAX(Asynchronous JavaScript and XML)的用户注释系统。
    2007年1月22日  
 
跨越边界: 闭包
闭包是可以用作函数参数和方法参数的代码块。一直以来,这种编程结构都是一些语言(如 Lisp、Smalltalk 和 Haskell)的重要组成部分。尽管一些颇具竞争力的语言(如 C#)采纳了闭包,但 Java 社区至今仍抵制对它的使用。本文探讨闭包在为编程语言带来一点点便利的同时是否也带来不必要的复杂性、闭包还有无更多的益处。
    2007年1月22日  
 
跨越边界: JavaScript 语言特性
JavaScript 常被人们认为是编程语言中无足轻重的一员。这种观点的形成可以“归功”于其开发工具、复杂且不一致的面向 HTML 页面的文档对象模型以及不一致的浏览器实现。但 JavaScript 绝对不仅仅是一个玩具这么简单。在本文中,Bruce Tate 向您介绍了 JavaScript 的语言特性。
    2007年1月18日  
 
数据校验器架构模式组
本文阐述软件架构与设计模式,它为架构师和开发人员提供了一组关于数据校验的架构模式(隔离校验器,可组装校验器,动态策略校验器,动态注册校验器等),数据校验是任何类型的开发中都不可或缺的环节,如果没有统一的架构,可能校验代码会遍布整个应用,如何将数据校验与应用逻辑解耦,如何适应各种粒度的数据和各种复杂程度业务规则,正是本文要探讨的。
    2007年1月15日  
 
Java 专业人士必备的书籍和网站列表
如果有一份专业人士必备的书籍和网站列表该有多好!本文就是这个列表。它包含了每个专业的 Java 语言程序员在书架或浏览器书签中必备的最重要的书籍和网站。
    2007年1月15日  
 
为提高效率而加载列表值
如果能够仅加载一次通用共享列表值,那么就可以减少数据库连接次数,提高 Web 应用程序的效率。这篇文章提供了大量代码,您可从中学习到如何在 Web 应用程序启动时加载下拉列表值,然后再在应用程序的所有用户间共享这些已载入的列表值。
    2007年1月11日  
 
追求代码质量: 探究 XMLUnit
Java 开发人员一般都很善于解决问题,所以由 Java 开发人员提出更容易的方法用以验证 XML 文档是很自然的事。本月,Andrew 将向您介绍 XMLUnit,一个能满足您所有的 XML 验证需求的 JUnit 扩展框架。
    2007年1月11日  
 
Apache Maven 2 简介
现代软件项目不再是单个本地团队独立开发的产物。随着健壮的企业级开源组件的可用性日益提高,当今的软件项目需要项目团队间的动态协作,往往也需要混合使用在全球范围内创建和维护的组件。如今,Apache Maven 构建系统步入了第二代,它和由 Internet 带来的全球软件开发时代之前所创建的那些遗留构建工具不同,它完全是重新设计的,以应对这些现代的挑战。本教程将带您从头领略 Maven 2。
    2007年1月8日  
 
用 ThinWire 和 Java 代码构建 Web 应用程序,第 1 部分: 管理 Web 应用程序布局
利用 ThinWire 这种开放源码开发框架,可以构建出外观和感觉与桌面应用程序相似的 Web 应用程序。在这个分五部分的教程系列中,学习如何使用 ThinWire 和 Java 编程语言开发 Web 应用程序。在第 1 部分中,您将学习如何在 ThinWire 中处理用户界面布局问题。在本教程中您会发现,用 ThinWire 框架提供动态的布局管理是相当轻松的。
    2007年1月8日  
 
构建基于 J2ME 的安全 SOAP 客户机, 第 2 部分:增强 J2ME 的 Web 服务 API (WSA) 中的存根类
本系列教程共三部分,介绍如何构建基于 Java 2 Micro Edition (J2ME) 的安全 Web 服务客户机。本教程是其中的第二部分,将讨论安全电子邮件服务的存根类,并说明如何对其进行增强,以提供安全功能。我们还将详细讨论一些重要的安全算法, 并演示如何在 J2ME 设备中实现它们。
    2007年1月8日  
 
了解 Eclipse 中的 JFace 数据绑定,第 3 部分: 使用高级功能
几乎所有应用程序都会要求在各种对象及服务之间同步数据。作为 “了解 Eclipse 中的 JFace 数据绑定” 的第 3 部分,本教程展示了如何使用高级功能在编写可测试的 UI 的同时实现同步。
    2007年1月4日  
 
了解 Eclipse 中的 JFace 数据绑定,第 2 部分: 绑定的基础知识
几乎所有应用程序都会要求在各种对象及服务之间同步数据。但是,移动 String 实例和编写事件通知代码可能是很乏味的。尤其是在桌面应用程序开发过程中更是充斥着这样乏味的任务。Eclipse V3.2 中附带了新的 JFace 数据绑定应用程序编程接口 (API),希望以此能够使这种数据同步过程变得简便一些。“了解 Eclipse 中的 JFace 数据绑定” 系列教程介绍了 JFace 数据绑定 API 的基本和高级的用法。
    2007年1月4日  
 
管理 Java 类路径 (Windows)
类路径是 Java 平台中最复杂也最令人头痛的部分之一,但熟练掌握类路径对成为一名专业 Java 程序员来说却又十分关键。在本文中,Elliotte Rusty Harold 为您阐述了类路径和源路径的复杂性,并向您展示了如何在 Windows 中熟练掌握它们。如果您使用的是 UNIX 或 Mac OS X,请参阅本文的姊妹篇。
    2007年1月4日  
 
管理 Java 类路径(UNIX 和 Mac OS X)
类路径是 Java 平台中最复杂也最令人头痛的部分之一,但熟练掌握类路径对成为一名专业 Java 程序员来说却又十分关键。在本文中,Elliotte Rusty Harold 为您阐述了类路径和源路径的复杂性,并向您展示了如何在 UNIX 和 Mac OS X 中熟练掌握它们。如果您使用的是 Windows,请参阅本文的姊妹篇。
    2007年1月4日  
 
配置驱动的开发
代码重复随时会产生麻烦,有些人可能对代码做了修改,但是忘了将修改应用于重复的源代码。产生的混乱可大可小,但是无论程度如何,重复都是麻烦的来源。在本文中,IBM 开发人员 Steve McDuff 建议使用配置驱动的开发来解决这个问题。
    2007年1月4日  
 
架构性宣言: 用 Java ME 进行无线消息传递
本文学习 Java Micro Edition(Java ME)无线消息 API。我们将从几个简单的代码示例开始,随后讨论它为企业开发人员带来的各种机会。
    2006年12月31日  
 
在 Java Web 开发框架中创建 VoiceXML 页面,第 2 部分: 扩展 Java 驱动的 VoiceXML 应用程序
在关于 VocieXML 的上一期文章中,您看到了 Java servlet 是如何轻松赋予 VoiceXML 应用程序强大功能的。在这篇续文中,您将学习如何使用 servlet 扩展单页面的应用程序,以及如何为您的 VoiceXML 应用程序添加导航功能。在整个学习过程中,您应注意确保 VoiceXML 内容受无线设备(例如电话和手持设备)的支持,并针对它进行了优化。
    2006年12月31日  
 
多角度看 Java 中的泛型
泛型是 Sun 公司发布的 JDK 5.0 中的一个重要特性,它的最大优点是提供了程序的类型安全同可以向后兼容。为了帮助读者更好地理解和使用泛型,本文通过一些示例从基本原理,重要概念,关键技术,以及相似技术比较等多个角度对 Java 语言中的泛型技术进行了介绍,重点强调了泛型中的一些基本但又不是很好理解的概念。为了避免和 C++ 中的模板混淆,本文简要介绍了 Java 中的泛型和 C++ 中的模板的主要区别,希望这种比较能够帮助读者加深对泛型的理解。
    2006年12月28日  
 
使用 Alphablox 创建 J2EE 网络聊天室
本文以创建一个聊天室网络应用为例,介绍 DB2 Alphablox 的一些关键技术,包括客户端界面创建,服务器端系统管理以及各种通信技术的融合。
    2006年12月28日  
 
三、二、一 …… Geronimo!,第 2 部分: 构建 Geronimo
本文为您提供了一个下载、安装、配置 Apache Geronimo 的菜谱风格的实用指南。加点这个,放些那个,瞧!—— 一个顶级的经过 Java 2 Platform, Enterprise Edition(J2EE)认证的服务器就准备好了。
    2006年12月28日  
 
用 Quartz 进行作业调度
Quartz 是个开放源码项目,提供了丰富的作业调度集。在这篇文章中,软件工程师 Michael Lipton 和 IT 架构师 Soobaek Jang 对 Quartz API 进行了介绍,从对框架的一般概述开始,并以一系列展示 Quart 基本特性的代码示例作为结束。在阅读完本文并看过代码示例后,您应当能够把 Quartz 的基本特性应用到任何 Java 应用程序中。
    2006年12月28日  
 
使用 JavaServer Faces 构建 Apache Geronimo 应用程序,第 4 部分:使用 Apache Trinidad 组件扩展 JSF
到目前为止,在这个共分为五部分的系列教程中,已经研究了 JavaServer Faces(JSF),包括将简单的 JSF 应用程序部署到 Apache Geronimo 上,将 Apache Tomahawk 与应用程序集成,以及了解如何使用 Sun Ajax4jsf 开放源码框架为 JSF 应用程序添加 Asynchronous JavaScript + XML(Ajax)功能。此部分是第 4 部分,您将了解如何使用 Apache Trinidad,ADF Faces 的开放源码版本。Trinidad 提供了一组免费的组件,使用这些组件可以进一步增强 JSF 应用程序的界面。
    2006年12月26日  
 
使用 JavaServer Faces 构建 Apache Geronimo 应用程序,第 3 部分:使用 ajax4jsf 添加 Ajax 功能
在这个分五部分的系列教程的前两期中,研究了 JavaServer Faces(JSF),这是一种新的基于 Java 的框架,可以简化为 Java Platform, Enterprise Edition(Java EE)应用程序构建图形用户界面(GUI)的过程。我们构建并成功地在 Apache Geronimo 上部署了一个简单的 JSF 应用程序,并学习了如何将 Apache Tomahawk(它提供几个与 JSF 100% 兼容的组件)与应用程序进行集成以改进界面。在本教程(第 3 部分)中,将了解 Sun Ajax4jsf 开放源码框架,这个框架为 JSF 应用程序添加 Asynchronous JavaScript + XML(Ajax)功能,而无需编写任何 JavaScript 代码。将使用 Ajax4jsf 改进示例应用程序并创建一个启用 Ajax 的前端。
    2006年12月26日  
 
跨越边界: Ajax on Rails
对 Ajax 这种使 Web 页面更具交互性的技术的大肆宣传已成过度之势。Ruby on Rails 框架和 Ajax 的完美集成所产生的力量在一定程度上促成了该框架的繁荣。本文旨在揭示:是什么使 Ajax on Rails 成为如此强大的组合。
    2006年12月26日  
 
使 Web 应用程序能够适应多种浏览器
在不同的浏览器或具有不同设置的浏览器上,Web 页面的执行方式不一样。本文学习一些有用的技巧,帮助您让自己的 Web 应用程序更适应所有的环境。
    2006年12月26日  
 
EJB 倡导者: SOA 代表了基于组件的应用程序发展中的下一步
可以说是风水轮流转!本月,EJB 倡导者发现自己处境微妙,对诸如服务组件体系结构(Service Component Architecture,SCA)等 SOA 相关规范的倡导与对 Enterprise JavaBeans 相关规范的倡导一样多。
    2006年12月21日  
 
Apache Geronimo 和 Spring 框架,第 4 部分: 混合使用 Spring AOP 和 Spring Web Flow
本系列教程共分为 6 个部分,这是其中的第 4 部分,介绍了 Spring AOP 模块提供的面向方面编程(Aspect-Oriented Programming,AOP)支持。通过本教程,您将会了解 Spring 框架如何简化使用 AOP 的过程,会看到 Spring Web Flow (SWF) 模块,并了解如何以 XML 配置文件格式声明性地定义应用程序的 Web 流程。您还将看到 Apache Geronimo Web Console 如何使创建及管理数据库变得更容易 ―― 所有操作均无需重新启动服务器。
    2006年12月18日  
 
Apache Geronimo 和 Spring 框架,第 3 部分:集成 DAO 与 ORM
本教程将扩展在本系列教程(共 6 个部分)的第 2 部分中创建的 Apache Geronimo 应用程序。在第 1 部分中向您介绍了 Geronimo 应用服务器、Spring 框架和控制反转(Inversion of Control,IoC),然后又详细阐述了如何开发、配置和部署第一个基于 Spring 框架的应用程序。在本部分中,您将了解如何让集成的技术 ―― 如 Spring Java 数据库连接(Java Database Connectivity,JDBC)和 Spring 数据访问对象(Data Access Object,DAO)API ―― 执行从 Apache Derby 数据库中动态读取应用程序数据的工作。还将了解如何使用 iBATIS 将对象关系映射(Object Relational Mapping,ORM)集成到应用程序中,并享受在不触及任何代码的前提下通过修改应用程序中的数据源实现依赖性注入的妙处。
    2006年12月18日  
 
跨越边界: 延迟绑定
静态类型语言(如 Java 语言和 C)可以在编译时把方法调用绑定到其实现中。这项策略让这类语言可以执行更丰富的语法和类型检查。比起不具有此项编译时检查功能的动态类型语言来说,静态类型语言更加稳定且具有更佳的性能。然而静态类型语言存在一个严重的局限性:前期绑定。一些动态类型语言(如 Ruby、Smalltalk 和 Self)允许延迟绑定,它们可以实现另一个层次的编程功能。
    2006年12月18日  
 
关于 Apache Geronimo PetStore 演示的分析
本文是一份关于如何构建可以用于您的交易中的企业级应用程序的实用指南。本文介绍的 iBATIS PetStore 应用程序是一个源自 Sun Java BluePrints 程序的应用程序示例。这个应用程序说明了如何使用 iBATIS 持久性框架、全 Java 的 Apache Derby 数据库、Java Platform, Enterprise Edition(Java EE)来开发一个简单的跨平台企业级应用程序。本文提供了发掘 iBATIS、Derby 和 Apache Geronimo 的特性所需的技巧和技术,构造和实现了一个灵活实用的 PetStore 应用程序。
    2006年12月18日  
 
Ajax 和 REST,第 2 部分
Ajax 的流行程度呈爆炸式增长。老式的 Web 框架正在为支持 Ajax 而自行革新,新的纯 Ajax 框架正在开发之中,很多组织正在考虑采用 Ajax,或者已经开始了构建 Ajax 应用程序的工作。但在所有这些悸动之中,只有相当少的组织成功开发了 Ajax 应用程序。本文是分为两部分的系列文章的第二部分,本文将帮助您决定是否应在实际 IT 应用程序中使用 Ajax,旨在提高您在 Ajax 开发中取得成功的机会。
    2006年12月18日  
 
开源面向对象数据库 db4o 之旅,第 3 部分: 深入db4o
这篇文章是开源面向对象数据库 db4o 之旅系列文章的第 3 部分,介绍面向对象数据库 db4o 的修改和删除,并对其中出现的问题进行细致分析,引入了“更新深度(update depth)”这一重要概念。
    2006年12月14日  
 
进入 Harmony 世界,第 4 部分: 类库开发最佳实践
本文较详细地介绍了 Apache Harmony 项目类库(API库)开发过程当中的经验,从架构设计和软件工程的角度,介绍了类库开发过程当中积累的类库模块的划分、测试优先的开发模式、结对编程、代码审核等等最佳实践。
    2006年12月14日  
 
让开发自动化: 持续反馈
反馈对于持续集成(Continuous Integration,CI)实践来说至关重要,事实上,它正是 CI 系统的“生命血液”。快速反馈则能够实现对需要引起注意的构建事件的及时响应。没有了诸如电子邮件或 RSS 等反馈媒介,处于中断状态的构建就有可能继续处于中断状态,这就破坏了 CI 的初衷!在让开发自动化的这一期文章中,自动化专家 Paul Duvall 介绍了能够合并到 CI 系统中的各种反馈机制。
    2006年12月14日  
 
使用 JavaServer Faces 构建 Apache Geronimo 应用程序,第 2 部分: 在 JavaServer Faces 中使用 Tomahawk
本教程是分 5 部分的教程系列的第 2 部分。本教程讲解 Apache Tomahawk。在这个系列的 第 1 期 中,介绍了 Java Server Faces(JSF),并在 Apache Geronimo 上构建和成功地部署了一个简单的 JSF 应用程序。JSF 是一种基于 Java 的新框架,它使 Java Platform, Enterprise Edition(Java EE)应用程序图形用户界面(GUI)的构建工作变得更为容易。现在将研究 Apache Tomahawk(它提供了几个定制的 100% 与 JSF 兼容的组件),并学习如何将它集成到应用程序来改进界面。
    2006年12月7日  
 
使用 Dojo 开发 HTML 小部件
您将学到使用 Dojo 开发 HTML 小部件的基础知识;包括如何引用一个图像、如何向 HTML 页面中添加事件处理程序以及如何处理复合小部件。另外,您还可以了解使用普通旧式 JavaScript 编码与使用 Dojo 之间的区别,并获得一些有关处理 Web 应用程序开发所固有的复杂性问题的提示。
    2006年12月5日  
 
终极 mashup ―― Web 服务和语义 Web,第 4 部分: 创建本体
本系列文章详细讨论了如何创建能够控制向用户返回何种数据的 mashup 应用程序,为此需要为应用程序植入一定的智能。现在您已经知道了如何用 RDF 表示信息,接下来就可以着手用基于 XML 的 Web 本体语言(OWL)创建一个本体,以便能够在服务及其各部分之间自动选择。
    2006年12月5日  
 
终极 mashup ―― Web 服务和语义 Web,第 3 部分:理解 RDF 和 RDFs
终极 mashup 的强大之处在于通过使用语义 Web 技术,即 Web Ontology Language (OWL) 而为其带来的智能化。但是在能够使用 OWL 之前,首先需要熟悉它的基本语言 Resource Description Framework (RDF) 和 RDF Schema Language (RDFs)。本教程向您介绍 RDF 和 RDFs 方面的背景知识,以便您能够为自己的 Web 服务构建本体(ontologies),也能够对其他项目利用 RDF 的强大功能。
    2006年12月4日  
 
终极 Mashup ―― Web 服务和语义 Web,第 2 部分: 管理 Mashup 数据缓存
每天用于搜索、在线购物或者查找城镇路线的许多大型应用程序都提供了可在全新的应用程序中使用的数据。企业应用程序开发人员已经创建了很多 mashup 应用程序,结合不同应用程序的数据集来实现特定的目标。本系列的 第 1 部分 讨论了一个应用程序,它从不同的服务提取数据然后将其结合起来。现在我们将讨论如何将请求结果保存到 DB2 9 数据库中,减轻这些外部服务的负担,从而大大改善程序的性能。
    2006年11月30日  
 
终极 Mashup ―― Web 服务和语义 Web,第 1 部分: 使用与组合 Web 服务
随着 Web 服务日渐流行,企业 Web 和应用程序开发人员用数据创建了全新的革命性应用程序。除了单一服务的应用程序外,开发人员还在创建 mashup,即组合多种服务的数据来形成某种新服务的应用程序。本系列按顺序记录了一个终极 mashup 应用程序的创建过程,它不仅存储来自不同 mashup 的数据,而且使用语义技术让能够用户通过交换服务或选择数据来创建自己的 mashup。该程序采用 Java 编写,结合了开放源码 Jena 项目的 servlet、JSP、软件以及 DB2 新增的原生 XML 能力。在这一期中,Nicholas Chase 介绍了 mashup 的概念,说明了 mashup 的工作原理,以及构建简单 mashup 的方法。
    2006年11月30日  
 
Apache Geronimo 和 Spring 框架,第 2 部分: 构建第一个应用程序
了解如何在 Apache Geronimo 上使用 Spring 框架创建基本的、没有任何修饰的应用程序,Spring 框架是在 Apache 许可协议下开发的,是一个分层的 Java Platform, Enterprise Edition (Java EE) 和 Java 2 Platform, Enterprise Edition (J2EE) 应用程序框架。本系列教程共分为六部分,涵盖了 Spring 从前端到后端的全部内容,包括如何用 Apache Geronimo 实现其功能的内容。第 1 部分介绍了 Geronimo 应用服务器和 Spring 框架,包括控制反转(Inversion of Control,IoC)和构成 Spring 框架的模块。本期教程是本系列教程的第 2 部分,您将开发、配置和部署第一个基于 Spring 框架的应用程序。您还将看到安装 Geronimo 是多么容易以及 Geronimo 的 Web 控制台如何简化 Web 应用程序的部署和管理操作。
    2006年11月30日  
 
优化 Java 垃圾收集器改进系统性能
在系统的性能测试过程中,当系统的处理能力有某种变化趋势时, 除了关于等待队列、执行线程,EJB 池以及数据库连接池和 Statement Cache 方面的调优外,还要考虑到 Java 垃圾收集器(Garbage Collection,本文简称 GC)对系统性能的影响。本文介绍了如何分析系统的处理能力和 GC 之间的关系,以及如何通过改进 JVM 的配置来优化 GC,以提高系统的性能。
    2006年11月30日  
 
追求代码质量: 用 JUnitPerf 进行性能测试
在应用程序的开发周期中,性能测试常被放到最后考虑,这并不是因为它不重要,而是因为存在这么多未知变量,很难有效地测试。在本月的 “追求代码质量” 系列中,Andrew Glover 使性能测试成为开发周期的一部分,并介绍了两种简单的实现方法。
    2006年11月29日  
 
追求代码质量: 通过测试分类实现敏捷构建
人人都认可开发人员测试的重要性,但为什么运行测试还是需要花费太多时间?本月,Andrew Glover 揭示了三种用来确保端到端系统健壮性的测试类型,随后展示了如何按类型来自动排序及运行测试。即使是使用当今大型测试套件,这样做也能显著地减少构建时间。
    2006年11月27日  
 
在 Java Web 开发框架中创建 VoiceXML 页面
Brett McLaughlin 为您展示如何通过服务器端 Java 代码输入 VoiceXML,从而允许您的 Java 应用程序与电话交互。
    2006年11月23日  
 
Apache Geronimo 和 Spring 框架,第 1 部分: 开发方法学
Apache Geronimo 最新的 1.1 版具有很多引人注目的新特性,其核心为控制反转 (Inversion Of Control,IoC) 模型,这个模型也是 Spring 框架的核心模式。Spring 框架是在 Apache 许可协议下开发的,是一个分层的 Java Platform, Enterprise Edition (Java EE) 和 Java 2 Platform, Enterprise Edition (J2EE) 应用程序框架。Spring 框架构建在 Java EE 应该更易于使用的基础上。本系列教程共分为六部分,涵盖了 Spring 框架从前端到后端的全部内容,包括如何用 Apache Geronimo 实现其功能的内容。本期教程是本系列教程的第 1 部分,将向您介绍 Spring 框架的架构,并探讨了 Geronimo 和 Spring 之间交叉的内容。
    2006年11月20日  
 
开源面向对象数据库 db4o 之旅,第 2 部分: db4o 查询方式
这篇文章是开源面向对象数据库 db4o 之旅系列文章的第二篇,介绍了面向对象数据库 db4o 的安装、启动以及三种查询语言,并对三种查询语言做了比较。
    2006年11月20日  
 
用 Spring 框架指定自定义隔离级别
如果您正在构建一个应用程序,该应用程序要求在执行用例时在全局事务中具有自定义隔离级别,您可能已经发现这是一件困难的事,因为 Java Transaction API 并不提供对自定义隔离级别的支持。幸运地是,Spring 框架允许您设计在全局事务中使用自定义隔离级别的 Web 和企业应用程序,但这却不是一件容易的事。在本文中,Ricardo Olivieri 用 7 个详细的步骤演示了这一过程。
    2006年11月20日  
 
使用 JavaServer Faces 构建 Apache Geronimo 应用程序,第 1 部分: 使用 Eclipse 和 Apache MyFaces Core 构建基本的应用程序
JavaServer Faces(JSF)是一个基于 Java 的新框架,它使 Java Platform, Enterprise Edition(Java EE)应用程序图形用户界面(GUI)的构建工作变得更为容易。JSF 与流行的 Struts 框架很类似,但更加面向组件。JSF 中定义了一组常见的表示用户界面(UI)组件的应用程序编程接口(API),包括状态和事件处理、输入有效性验证、国际化(i18n)及可访问性方面的接 口。本系列教程向 Apache Geronimo 开发者介绍 JSF 和其他相关技术。
    2006年11月16日  
 
使您的应用程序调用我的应用程序,第 3 部分: 资源适配器
本系列教程共分三部分,在 第 1 部分 和 第 2 部分 中,您学习了如何开发消息驱动 bean(MDB)和实体 bean,并在 Apache Geronimo 中部署和测试它们;还了解了如何创建一个电子邮件应用程序,并将其部署到 Java Apache Mail Enterprise Server(Apache James)中。在系列教程的最后这一期中,您将学习与 Java 2 Platform,Enterprise Edition(J2EE)Connector Architecture(JCA)资源适配器有关的一切内容,构建一个连接到 Apache James 服务器的示例适配器,从而将整个应用程序汇总到一起。
    2006年11月16日  
 
跨越边界: Streamlined,第 2 部分
本系列文章包括两部分,第 1 部分介绍了 Streamlined,这是个基于 Rails 的开源框架,它组合了 Ajax、元编程以及代码生成的强大功能,把 Rails 的效率提升到了一个新的层次。第 2 部分将探索 Streamlined 背后的元模型是如何支持定制的。
    2006年11月16日  
 
让开发自动化: 除掉构建脚本中的气味
您把多少时间花在维护项目构建脚本上?也许远远超出您预期的或者可以忍受的时间。其实大可不必遭受如此痛苦的经历。在这一期的让开发自动化中,开发自动化专家 Paul Duvall 将演示如何改进很多常见的妨碍团队创建一致的、可重复的、可维护的构建的实践。
    2006年11月13日  
 
Hello World,第 4 部分:WebSphere Application Server 和 Application Server Toolkit V6.1
欢迎学习“Hello World”系列中 的第四个教程,该系列提供了各种 IBM 软件产品的简要概述。本教程假设您充当 IT 部门管理员的角色,负责从开发团队接收 EJB 和 Web 模块。您的职责是使用 Application Server Toolkit 在 WebSphere Application Server 上将这些模块作为 J2EE 应用程序来进行组装、部署和管理。本教程将提供实际的练习来教您如何完成这些任务。
    2006年11月9日  
 
Eclipse Test and Performance Tools Platform,第 3 部分: 测试应用程序
在 “Eclipse Test and Performance Tools Platform” 教程系列的这一期中,学习如何使用 Eclipse Test and Performance Tools Platform(TPTP)的测试特性来度量 Web 应用程序的响应时间。了解如何创建和管理改进的 JUnit 测试以及创建计算机引导的手工测试。
    2006年11月9日  
 
Ajax 和 REST,第 1 部分
服务器端 Web 应用程序因采用富应用程序模型和交付个性化内容而具备了融入式(immersive)的特点,这种特点越突出,应用程序架构对 Web 架构风格 REST(Representational State Transfer)的违背就越多。这种违背会降低应用程序的可伸缩性,增加系统复杂性。通过与 REST 相互协调,Ajax 架构将使融入式 Web 应用程序消除这些负面影响,尽享 REST 那些出色的特性。
    2006年11月9日  
 
通过插件支持,Geronimo 提供了 one-click 升级
安装和创建插件的能力是 Apache Geronimo 1.1 中最被期待的新特性。插件为 Geronimo 用户提供了即时更新功能。因而,您现在能够下载新的应用程序和服务程序并让它们很快就在 Geronimo 服务器上运行。本文向您介绍如何查找、安装甚至自己创建 Geronimo 插件。
    2006年11月9日  
 
解决 NumberFormat 的解析问题
Java Standard Edition(SE)API 的 NumberFormat 类使程序能够解析表示数值的格式化文本。它提供了现成的本地化方案,对每个 Java 程序员来说都是一个有用的工具。不幸的是,底层 DecimalFormat 类在不知情的情况下可能导致不可预料的符号和数据丢失。在本文中,Joe Sam Shirah 解释了这些问题并提供了恰当解决这些问题的代码。
    2006年11月9日  
 
用 JSON 处理缓存
数据验证是每个企业 Web 应用程序中最富于挑战性、日新月异的部分。通常验证元数据会使 JavaScript 模块中混入服务器端代码。在本文中,您将了解如何在服务器代码的帮助下将元数据缓存在客户端的优秀方法,服务器代码将提供 JSON(JavaScript Object Notation)形式的字符串化元数据。这种方法还允许以类似 Ajax 的方式来处理多值和多组属性。
    2006年11月7日  
 
用 Apache Geronimo 创建并部署 blog 和 wiki 模块
blog 和 wiki 正给互联网带来一场风暴。这些分享想法并和朋友们合作的新方式已经被各种各样的社会团体(从少数几个好朋友组成的小圈子到大公司)证明是值得密切关注的。这些技术兴起的一个原因是,不论对于终端用户还是管理员来说,它们都很简单。管理员们发现 Apache Geronimo 是创建新 blog 和 wiki 应用程序的一个健壮且安全的平台。您也会发现可以使用 Geronimo 和其他开放源码组件创建 blog 和 wiki 应用程序。
    2006年11月6日  
 
使您的应用程序调用我的应用程序,第 2 部分: James 应用程序
继续您在 第 1 部分 中尚未完成的学习,在第 1 部分中,您学习了如何开发消息驱动 bean(MDB)、实体 bean 和容器管理的持久性(CMP),还了解了如何在 Apache Geronimo 中部署并测试这些组件。本期是共分三部分的系列教程的第 2 部分,为您展示 Java Apache Mail Enterprise Server(也称为 Apache James)的整体架构。您将了解如何构建、部署和测试电子邮件应用程序(mailet 和 matcher),以及如何在 Apache James 电子邮件服务器中部署这个应用程序。
    2006年11月2日  
 
模糊测试
模糊测试(Fuzz testing )是一项对代码质量有着深远影响的简单技术。在本文中,Elliotte Rusty Harold 故意将随机的坏数据插入应用程序,以观察发生的结果。他也解释了如何使用如校验和、XML 数据存储及代码验证等防护性编码技术,来加固您的程序以抵制随机数据。他以一个练习进行总结,在练习中他以一个代码破坏者的角度进行思考 —— 这是一种用于防护代码的至关重要的技术。
    2006年11月2日  
 
追求代码质量: 可重复的系统测试
在测试加入到 servlet 容器的 Web 应用程序时,编写符合逻辑的可重复的测试尤其需要技巧。在 Andrew Glover 的提高代码质量的这个续篇中,他介绍了 Cargo,这是一个以通用方式自动化容器管理的开源框架,有了这个框架,您可以随时编写符合逻辑的可重复的系统测试。
    2006年11月2日  
 
三、二、一 …… Geronimo!,第 1 部分: 让 J2EE 编程更加简单
准备好让您的事业起飞了吗?不管您正在开发的应用程序是什么类型的,Java 2 平台企业版本(Java 2 Platform,Enterprise Edition,J2EE)是这里要坚持的一个重要标准。掌握了这个标准无疑会大大提升您作为一个程序员的价值。这篇文章无论是对新手还是对有经验的开发人员来说,都是很有帮助的,文中介绍了 J2EE 1.4 标准(Apache Geronimo 渴望遵循的标准)的入门知识,以及它同 Geronimo 技术的关系。您可以从中了解一些由 J2EE 定义的比较重要的容器类,同时还能了解到 GBean 技术和更加先进的 Geronimo 概念。
    2006年11月2日  
 
给 Java SE 注入脚本语言的活力
在即将发布的 Java SE6(Mustang)中,增加了对脚本语言的支持。通过对脚本语言的调用,使得一些通常用 Java 比较难于实现的功能变得简单和轻便。脚本语言与 Java 之间的互操作将变得优雅而直接。
    2006年10月30日  
 
使用 JET 在 Eclipse 中创建更多更好的代码
创建模板来使最佳实践代码化(即生成工件)是一种强大的概念,能节约您无数时间和减少沉闷的编码。本文介绍代码生成框架 JET,这是一个 Eclipse 技术的项目。
    2006年10月30日  
 
跨越边界: Streamlined,第 1 部分
Ruby on Rails 是一种基于 Ruby 编程语言的高效的 Web 开发环境。Streamlined 是基于 Ruby on Rails 的一个快速发展的开放源码框架。Streamlined 综合了 Ajax、元编程、代码生成以及 Ruby on Rails 的强大功能,把 Rails 的生产力带到了一个新层次。
    2006年10月30日  
 
Java 理论与实践: 用 JMX 检测应用程序
调试器和分析器可以提供对应用程序的行为的深入观察,但在出现严重问题之前,这些工具通常用不上。将监视挂钩(hook)构建到应用程序内,会使理解程序的执行变得更容易而且不会破坏调试器。既然 Java 管理扩展(JMX)已经构建进了 Java SE 平台,而且 jconsole 查看器也提供了统一的监视 GUI,那么用 JMX 为应用程序提供一个窗口,要比以前更加容易而且更为有效。
    2006年10月26日  
 
部署 Java Web 服务
在多个容器上部署 Java Web 服务可能会给开发人员带来一些问题。通过阅读本文,您可以了解若干部署描述符实现,并了解 Java 社区如何开始处理这个问题。
    2006年10月26日  
 
定制 bugzilla 进行项目管理
Apache Harmony 项目是 IBM 中国开发中心上海,近年来参加的一个开源项目。在这个项目中我们使用了开源软件开发中普遍使用的缺陷跟踪系统 —— Bugzilla。Bugzilla 是一个开源的缺陷跟踪系统(Bug-Tracking System),它可以管理软件开发中缺陷的提交(new),修复(resolve),关闭(close)等整个生命周期。针对项目的特性,我们将 Bugzilla 做为整个项目开发过程中的唯一管理工具。通过这种独特的使用方式,积累了一些经验,希望可以和广大开发人员一起分享。
    2006年10月26日  
 
Websphere Commerce 6.0 中基于 Struts 结构的 Store 功能的定制修改
本文通过举例,详细介绍了对WebSphere Commerce 6.0 中基于Struts结构的需求链模型(Demand Chain)商业中心商店(Commerce Plaza Store)的功能进行定制修改的方法。 通过本文提供的定制修改方法,这个商店前台可以支持对可改装的成套商品(DynamicKit)和联合销售(MachanceAssociation)的显示。
    2006年10月25日  
 
让开发自动化: 选择持续集成服务器
由于有许多持续集成服务(CI)服务器可以选择,所以很难决定哪个适应自己。在 “让开发自动化” 系列的第二篇文章中,开发自动化专家 Duvall 采用一致的评估标准和很多说明性示例,介绍了一些开源 CI 服务器,包括 Continuum、CruiseControl 和 Luntbuild。
    2006年10月23日  
 
权衡 Apache Geronimo EJB 事务选项,第 1 部分: 容器管理事务
本系列分为三部分,将探索 Apache Geronimo 中的 Enterprise JavaBeans (EJB) 容器管理事务和 bean 管理事务。在第 1 部分中,将找出两种事务之间的差异,其中包括了解容器管理事务如何帮助您避免事务逻辑和管理的复杂性,从而使您可以专注于企业 bean 的业务逻辑。您还将学会如何在 Geronimo 应用服务器中实现容器管理事务,以及如何使用 Geronimo、OpenEJB 和 XDoclet 将自己从繁重的 EJB 编码工作中解放出来。
    2006年10月23日  
 
开源面向对象数据库 db4o 之旅,第 1 部分: 初识 db4o
本文为 db4o 之旅系列文章的第一篇,介绍了面向对象数据库 db4o 的基本特性,并且与传统关系型数据库以及 OR 映射技术做了比较分析,读者可以体验到 db4o 的全新的面向对象存储的理念,并且给出了性能测试数据。
    2006年10月23日  
 
权衡 Apache Geronimo EJB 事务选项,第 2 部分: Bean 管理事务
既然您已经在第 1 部分学习了有关 Enterprise JavaBeans (EJB) 容器管理的事务的所有细节,那么您可能对 EJB bean 管理的事务以及如何在 Apache Geronimo 应用服务器中实现它感到好奇。在由三部分组成的系列文章的这一期文章(第 2 部分)中,您可以获得所有细节。
    2006年10月23日  
 
权衡 Apache Geronimo EJB 事务选项,第 3 部分: 综合所有事务
Jonathan Sagorin 在由三部分组成的系列文章的最后一部分中对 Enterprise JavaBeans(EJB)事务进行全面的揭示。探索 Apache Geronimo 应用服务器上与容器管理事务和 bean 管理事务都相关的难题和附加实现与配置选项。
    2006年10月23日  
 
使用 JMX 管理 Apache Geronimo
Java 社区已经利用 Java Management Extension (JMX) 规范和框架作为系统、应用程序和资源管理的标准。Apache Geronimo 平台是以管理功能为最高优先级来设计的,而 JMX 是起主要作用的技术之一。本文将探索如何使用 JMX 管理 Geronimo 平台。
    2006年10月23日  
 
使用 AppFuse 快速构建 J2EE 应用
本文以一个 J2EE 开发者的角度,借助一个简单的应用示例,在融合了个人经验的基础上介绍了如何用 AppFuse 一步步地构建 J2EE 项目。通过阅读本文,读者不仅能够学会用 AppFuse 进行开发,而且能够充分体会到 AppFuse 提供的“快速开发”的优越性。
    2006年10月19日  
 
Hello World,第 3 部分:WebSphere Integration Developer:通过一组组件创建多个业务解决方案
欢迎阅读“Hello World”系列中的第 3 部分教程,本系列教程提供了对各种 IBM 软件产品的简要概述。本教程将简要介绍 WebSphere Integration Developer。其中包括三个实践性的动手练习,在这些练习中,您将创建 BPEL 业务流程和业务规则组,然后对它们进行集成。
    2006年10月18日  
 
使用 AIDE 实现高效率,第 3 部分: 接触点与托管资源集成
本教程是有关 IBM Autonomic Integrated Development Environment (AIDE) 的系列教程的第 3 部分,描述了托管资源的基本接触点接口。通过本教程,您可以了解 Eclipse 如何使用 TODO 项来支持此类开发工作,并了解如何为任意托管资源管理提供基于接触点的平台――这个主题是已经在电信和企业管理领域存在了数十年而未得到完美解决的问题。
    2006年10月17日  
 
实战 Groovy: 用 Groovy 减少代码冗余
Groovy 简洁的语法将开发人员从那种需要进行代码编译但却无助于表达什么是程序真正想要实现的典型的 Java 结构中解放了出来。在实战 Groovy 系列的这一复兴篇中,Groovy 开发人员兼特约专栏作家 J. Scott Hickey 带您进行一系列对常规 Java 代码和 Groovy 代码的比较,展示这门令人兴奋的语言如何将您解放出来,让您能够专注于编码的重要方面。
    2006年10月17日  
 
利用 DB2 9 与 WebSphere Community Edition 启动 J2EE 开发
最新版本的 IBM DB2 数据库中的新特性使得像对待标准关系数据库中的数据那样访问和操纵 XML 数据成为可能。在本教程中,您将学习在 Windows 或 Linux 环境上安装一个 DB2 9 数据库和 WebSphere Application Server Community Edition,然后编写和部署利用 DB2 9 XML 功能的 Java 应用程序。
    2006年10月12日  
 
Hibernate 能够满足我们的验证需求
尽管在 Web 应用程序中尽可能多的层次中构建数据验证非常重要,但是这样做却非常耗时,以至于很多开发人员都会干脆忽略这个步骤 —— 这可能会导致今后大量问题的产生。但是随着最新版本的 Java 平台中引入了注释,验证变得简单得多了。在本文中,Ted Bergeron 将向您介绍如何使用 Hibernate Annotations 的 Validator 组件在 Web 应用程序中轻松构建并维护验证逻辑。
    2006年10月10日  
 
IBM WebSphere 开发者技术期刊: 利用 J2EE Connector Architecture
将 CICS 应用程序与主流 J2EE 组件进行集成是许多企业面临的难题。本文介绍如何使用 J2EE Connector Architecture (JCA) 和 CICS Transaction Gateway 对 IBM WebSphere Application Server 中部署的 CICS 应用程序和 J2EE 组件进行事务集成。针对 WebSphere Application Server V6.x 更新。
    2006年10月10日  
 
监控业务系统数据库连接
J2EE 服务器一般提供了数据库连接池活跃连接个数的信息,但难以提供连接的细节、执行的 SQL 语句以及是否产生锁等信息。一旦发生不稳定现象,开发人员容易归咎于应用服务器。本文分析了业务模块如何导致系统级别的问题,并提出了实时监控数据库连接细节并准确定位异常所在模块的方法,以方便排除业务模块问题。读者可以增强对于系统问题分析和解决的能力,并能够明确如何分析和解决业务系统问题,而不是简单认为时应用服务器平台不够稳定造成的。同时,对 Java 核心 API 及 Proxy 技术的理解也将进一步增强。
    2006年10月10日  
 
使用 AIDE 实现高效率,第 2 部分: 构建实际接触点
本教程是有关 AIDE 的系列教程的第 2 部分,将不再讨论使用 IBM AIDE 工具包构建接触点的基本知识,而将讨论如何使用事件和 IT 管理技术(特别是 Java Management Extensions),并说明如何将外部增值 Java 工具连接到自主计算接触点。我将重点讨论如何解决将自主计算接触点与外部使用 JMX 工具的软件链接的问题。
    2006年10月9日  
 
使用 AIDE 实现高效率,第 1 部分: 构建接触点
本教程是 IBM Autonomic Integrated Development Environment (AIDE) 系列教程的第 1 部分,将向您演示如何快速启动和运行 IBM AIDE 工具包。在本教程中,您将学习如何创建、修改和部署接触点,并了解接触点与基础模型的内在联系。
    2006年10月9日  
 
构建基于 J2ME 的安全 SOAP 客户机,第 1 部分:探索 J2ME 的 Web 服务 API (WSA)
本系列教程共三部分,将介绍如何构建基于 Java 2 Micro Edition (J2ME) 的安全 Web 服务客户机。第 1 部分将介绍允许无线访问 Web 服务的应用程序场景。还将讨论安全 Web 服务应用程序的体系结构,并说明不同技术组件如何在 J2ME 应用程序中彼此协作来提供安全功能。我们将深入研究数个 WSA 应用程序的内部情况,从而对 J2ME 的 Web 服务 API (WSA) 进行详细讨论。本教程的后续部分将详细阐述这些概念,从而将安全机制加入到 WSA 应用程序中。
    2006年9月30日  
 
使用 Apache Geronimo 和 JMS 构建事件驱动的框架
能够及时响应实时的信号和事件成为了企业框架的最重要方面之一。本文讨论 Apache Geronimo 框架提供的技术和工具,使应用程序和服务能够有效地对这些信号和事件作出响应,并将它们作为消息传播到驻留在平台虚拟层之间的相关组件。这些技术(包括面向服务的体系结构 (SOA) 和使用 Java 反射的有效事件驱动交互框架)有助于降低设计有效事件驱动的软件系统的复杂性,同时可以增加灵活性。
    2006年9月28日  
 
Geronimo 叛逆者,第 8 部分: 未来的 Apache Geronimo
想知道 Apache Geronimo 的未来是什么样吗?本系列的这篇文章正适合您。在本期中,叛逆者将探索 Geronimo 的格言卡里有什么,其中包括 Geronimo 开发人员在哪里进行项目、重要的新特性以及改进。然后,将为您展示下一版本的 Apache Geronimo。
    2006年9月28日  
 
进入 Harmony 世界,第 3 部分: Harmony VMI
作为由 5 个部分组成的系列文章的第三部分,这篇文章较详细地介绍了 Harmony 项目中的虚拟机接口(VMI)。
    2006年9月28日  
 
J2EE 应用程序的授权概念和解决方案
授权体系结构可能非常不合理,存在大量问题。在本文中,您将了解如何调整应用程序的开发工作,以有效地使用 IBM WebSphere Application Server 中的授权功能。
    2006年9月25日  
 
跨越边界: Rails 迁移
Ruby on Rails 是不断发展的 Web 开发框架,它实现了一些先进的想法,例如通过配置进行约定、大量的元编程、特定于域的语言以及用数据库包装代替对象关系映射。这篇文章研究的 Rails 模式迁移是一种把每个数据库的模式变化与基本对象模型分离的思想。
    2006年9月25日  
 
Java 理论与实践: 平衡测试,第 3 部分
这个系列的前两期介绍了像 FindBugs 这样的静态分析工具,通过关注全部 bug 分类而不是特定的 bug 实例,可以对管理软件质量提供更大的控制能力。在关于测试的最后这一期中,Brian Goetz 介绍另一种发现违犯设计规则之处的技术:方面。
    2006年9月22日  
 
了解 Eclipse 插件如何使用 OSGi
Eclipse 集成开发环境(IDE)和 Eclipse Rich Client Platform(RCP)应用程序的核心由 Open Services Gateway Initiative(OSGi)规范的实现驱动。本文通过描述对 Eclipse 平台而言插件是什么,并跟踪从 Eclipse V2.1 到今天基于 OSGi 的实现中插件的发展,阐明了 Eclipse 与 OSGi 的关系。还解释了 OSGi manifest.mf 文件选项以及通过 Eclipse 提供的添加项。
    2006年9月21日  
 
EJB 倡导者: 什么是最佳实践?
在本文中,我们首先通过读者提出的问题解释了“最佳实践”的整体理念,接着介绍了有关应用程序体系结构的新知识,最后说明了 Enterprise JavaBeans 这一强大概念尚未得到大家广泛采用的原因。
    2006年9月20日  
 
追求代码质量: JUnit 4 与 TestNG 的对比
JUnit 4 具有基于注释的新框架,它包含了 TestNG 一些最优异的特性。但这是否意味着 JUnit 4 已经淘汰了 TestNG?Andrew Glover 探讨了这两种框架各自的独特之处,并阐述了 TestNG 独有的三种高级测试特性。
    2006年9月18日  
 
IBM WebSphere 开发者技术期刊: 使用 WebSphere Application Server 开发高性能 J2EE 线程
异步 Bean 提供可以由多个应用程序使用的有效而又安全的全局线程池。您需要使用专门的线程池时,可以通过 IBM WebSphere Application Server V5.x 或 V6.x 使用 Asynchronous Beans EventSource 接口构造一个线程工厂,从而能够自由使用任何必需的高级线程用法模式,并且不降低性能。
    2006年9月17日  
 
优化您的 Apache Geronimo 发行版
Apache Geronimo 以可伸缩性而闻名,它使用 GBeans,允许开发人员即插即用所需的任何服务与 Web 应用程序。但 Apache Geronimo 开箱即用的发行版配套提供了一些监听端口和启动的应用程序模块的服务,包括 Web 应用程序在内,这将占用大量资源,还有可能使您的应用程序暴露于入侵者的威胁之下。本文将介绍如何停止和重启监听和应用程序服务,以及如何按照需要取消部署和重新部署各个应用程序模块及 Web 应用程序,从而有效地将 Apache Geronimo 发行版的部署调整为仅包含必要的核心服务和应用程序。
    2006年9月14日  
 
用 Apache 和 Subversion 搭建安全的版本控制环境
本文将在服务器端配置工作的角度,结合作者在实际开发工作当中的配置实例,介绍 Subversion 服务器端的基本配置和管理,以及如何将 Subversion 与 Apache 结合,实现一些高级管理功能。
    2006年9月11日  
 
使用 Apache Geronimo 和 POJO 构建 SOA 框架
在不考虑库和框架强制执行的应用程序编程接口 (API) 约束的情况下进行软件开发,是一个非常诱人主张。它使许多人接受了普通旧式 Java 对象(Plain Old Java Object,POJO)编程的范例 —— 能够在 Java 平台上开发软件,而无需使用多余的接口或第三方 API。Apache Geronimo 框架为构建复杂应用程序和服务的 POJO 开发提供了一个可靠的基础设施。本文介绍 Geronimo 框架的一些组件和技巧,用于通过 POJO 策略来实现成功的、面向服务的开发。
    2006年9月11日  
 
Java 语言的 XML 验证 API
检查文档是否遵循了模式中规定的规则。不同的解析器和工具支持不同的模式语言如 DTD、W3C XML Schema 语言、RELAX NG 和 Schematron。Java 5(TM) 增加了统一的验证应用程序编程接口(API),可以把文档和用这种或那种语言编写的模式作比较。了解这种 XML 验证 API。
    2006年9月7日  
 
通过 Web 服务向后兼容性向前发展
对于任何控制模式,管理基于 SOA 的系统的变更都是非常重要的部分。您可以从本文中了解一些用于 SOA 变更管理的技术。
    2006年9月7日  
 
使用 XMLBeans 在 Apache Geronimo 中部署 SOA 应用程序
对 XMLBeans 好奇吗?这种高级易用的 XML-Java 绑定技术允许您像访问任何 Java 对象或 JavaBean 一样访问 XML 文件。本文将阐明有关 XMLBeans 技术的更多内容,包括它如何与 Apache Geronimo 一起使用以及如何简化和流化面向服务架构 (SOA) 开发。
    2006年9月7日  
 
Java 理论与实践: 平衡测试,第 2 部分
上一期的 “Java 理论与实践” 专栏说明了如何充分利用 FindBugs 之类的静态分析工具来管理软件质量,并重点测试了 bug 的整个目录(而不是特定 bug 实例)。在本期专栏中,专职 bug 清除专家 Brian Goetz 将详细说明构造和调优不平凡的 bug 模式检测器的过程。
    2006年9月7日  
 
跨越边界: REST on Rails
“跨越边界” 系列中以前的文章说 Ruby on Rails 是一个突然流行起来的框架,充当着 Ruby 编程语言的催化剂。随着 Ruby 的经验不断成功,开发人员开始寻求把他们的 Ruby 应用程序与用其他语言编写的应用程序集成。Rails 对 Web 服务提供了优秀的支持。本文介绍 Rails 中的 Web 服务,重点放在一个名为 Representational State Transfer (REST) 的策略上。
    2006年9月7日  
 
Geronimo renegade: OpenEJB 和 Apache Geronimo 的 EJB 实现
Enterprise JavaBeans (EJBs) 到底有什么了不起的,为什么对 Java 2 Platform, Enterprise Edition (J2EE) 开发来说如此重要?在这一期的 Geronimo renegade 专栏中,OpenEJB 的共同创始人 David Blevins 将介绍 EJB 可以为您做什么,并解释 OpenEJB 如何被选择作为 Apache Geronimo 的 EJB 实现。
    2006年9月7日  
 
用 Lucene 加速 Web 搜索应用程序的开发
Lucene 是基于 Java 的全文信息检索包,它目前是 Apache Jakarta 家族下面的一个开源项目。在这篇文章中,我们首先来看如何利用 Lucene 实现高级搜索功能,然后学习如何利用 Lucene 来创建一个健壮的 Web 搜索应用程序。
    2006年9月6日  
 
XML、Java 与 XMLBeans 结合应用的商业价值
通过阅读本文,您将了解面向服务的架构(Service-Oriented Architecture,SOA)、XML 和 XMLBeans 如何在解决实际商业问题中发挥重要作用及其原因,文中将以娱乐业为例进行案例分析。本文的目的并不在于介绍代码,而是让您了解在需要使用 XML 时如何使用 XMLBeans 及其原因。
    2006年9月5日  
 
Java SCA 调用样式
本文概略介绍了服务组件体系结构(Service Component Architecture,SCA)的传统 Java 对象(plain old Java object,POJO)组件中的 Java 用法以及传入传出 POJO 组件的数据流。您将通过本文了解在 POJO 组件中使用不同调用样式的效果。
    2006年9月5日  
 
Java 语言的 XPath API
Elliotte Rusty Harold 举例说明了 Java 5 的新 XPath API。
    2006年9月5日  
 
DWR 简化 Ajax 的 portlet 间通信
许多开发人员都期待着利用 Ajax 技术来提高基于 Web 的应用程序的用户体验,但是 Ajax 编程可能是一项麻烦的任务。开放源码的 Direct Web Remoting (DWR) 库通过自动把 Java 类转换成 JavaScript 类,可以为 Java 开发人员简化 Ajax 开发。在这篇文章中,将学习如何用 DWR 和符合 JSR-168 规范的 portlet 迅速而容易地构建 Ajax 应用程序。
    2006年9月4日  
 
使用 Apache Geronimo 将 Apache Axis 应用程序移植到 Axis2
随着 Apache Axis 及其最新产品 —— Axis2 的出现,在 Apache Geronimo 上开发 Web 服务已经变得非常轻松并且也不太繁琐了。Axis2 是对 Axis 的重要改进,这是因为在 Axis2 上实现了更好的体系结构,简化了开发,并且 Axis2 提供了更多的数据绑定支持。本文介绍如何使用示例 Web 服务,以及如何将以前在 Axis 中开发的 Web 服务迁移到 Axis2 中。将讨论 Axis2 与 Axis 相比的多种改进和提高,以及这与在 Geronimo 应用服务器上部署新移植的 Axis2 Web 服务有什么关联。
    2006年8月31日  
 
解析 Java 类和对象的初始化过程
本文主要对类和对象初始化全过程进行分析,通过一个实际问题引入,将源代码转换成 JVM 字节码后,对 JVM 执行过程的关键点进行全面解析,并在文中穿插入了相关 JVM 规范和 JVM 的部分内部理论知识,以理论与实际结合的方式介绍对象初始化和类初始化之间的协作以及可能存在的冲突问题。
    2006年8月31日  
 
使用 AppFuse 的七个理由
开始学习在 Java 平台上使用诸如 Spring、Hibernate 或 MySQL 之类的开放源码工具时可能非常困难。再加上 Ant 或 Maven,以及与 DWR 一起的小 Ajax,还有 Web 框架 —— 即 JSF,我们必须睁大眼睛盯着如何配置应用程序。AppFuse 减少了集成开放源码项目的痛苦。它可以把测试变成一等公民,让我们可以从数据库表生成整个 UI,并使用 XFire 来支持 Web 服务。另外,AppFuse 的社区也非常健全,这是不同 Web 框架用户可以一起融洽相处的地方之一。
    2006年8月31日  
 
使用 Rational Application Developer 在 Web 应用程序中集成水晶报表 (Crystal Reports),第 1 部分: 在 Web 应用程序中使用 JDBC 连接嵌入水晶报表 (Crystal Reports)
学习在设计时和运行时如何使用JDBC连接嵌入水晶报表 (Crystal Reports)。
    2006年8月31日  
 
Java 5 特性 Instrumentation 实践
Instrumentation 是 Java 5 提供的新特性。使用 Instrumentation,开发者可以构建一个代理,用来监测运行在 JVM 上的程序。监测一般是通过在执行某个类文件之前,对该类文件的字节码进行适当修改进行的。下文将通过一个具体的例子,来展示 java.lang.instrument 包的工作原理,并且实现了一个测量函数运行时间的代理。
    2006年8月31日  
 
在 Apache Geronimo 上远程部署 Web 应用程序
Apache Geronimo 是一种认证的 Java 2 Platform Enterprise Edition(J2EE) 1.4 应用服务器。大多数人在想到 J2EE 时,会想到事务管理、Web 应用程序和异步消息传递等东西。但是,有了这些特性也不一定能够通过 J2EE 认证。应用服务器必须提供任务关键型生产系统所需的许多工具。这些工具之一是远程部署。Geronimo 是为满足大多数部署场景而设计的,所以它包含对远程部署的支持。本文解释使用 Geronimo 远程部署应用程序的许多方式。学习如何使用命令行工具(Geronimo 部署工具)和基于浏览器的工具(Geronimo Administration Console)远程部署应用程序,以及如何在集成开发环境(Eclipse)中部署应用程序。本文还提供一个对小型 Web 应用程序进行部署的简单示例。
    2006年8月31日  
 
Spring 2 和 JPA 简介
Java 服务器应用程序的创建并不一定困难而烦琐。在轻量级 Spring 框架的第二代中添加了一大批特性,即使是新的服务器应用程序开发人员也能够轻松上手。其关键增强之一就是 Spring 2 与 Java 持久性 API (JPA)的集成,这是企业 JavaBean(EJB)3.0 规范的基石。在这份教程中,您将学习如何用 Spring 2 框架从头开始创建服务器应用程序。
    2006年8月28日  
 
WebSphere Application Server 中的内存泄漏检测与分析: 第 1 部分:内存泄漏概述
本文简要概述了 IBM WebSphere Application Server 中可用于解决 Java 堆泄漏的技术。
    2006年8月25日  
 
使用开放源代码框架的 Java 应用程序的 Web 服务集成模式,第 1 部分: 实现调用模式
主要有四种用于集成 Web 服务的模式。本系列包括两个部分,本文是第 1 部分,将对开发服务和客户机的方式进行建议,以便通过使用流行的开放源代码框架调用采用所有四种服务端点模式的 Web 服务。我们将讨论其中两种模式,即请求-响应模式和单向端点模式,将同时涵盖文档样式和 RPC Web 服务调用演示的内容。本系列的下一篇文章将描述其他两种集成模式,要求-响应模式和通知模式。
    2006年8月25日  
 
使您的应用程序调用我的应用程序,第 1 部分: Apache Geronimo 通信基础 ―― 开发、部署和测试
Apache Geronimo 包含顶尖的消息传递实现,还有世界级的 Enterprise JavaBeans(EJB)实现,从而使您可在自己的应用程序中使用消息驱动 bean(MDB)。这也就意味着只要具备恰当的资源适配器,其他组件就可以使用消息传递与您的应用程序交互。本系列教程详细叙述了 Java Platform, Enterprise Edition(Java EE)应用程序的创建,在这个应用程序中,用户、管理员甚至其他应用程序都可利用 MDB 进行交互,方法是向 Java Apache Mail Enterprise Server(也称为 Apache James)发送电子邮件,而 Apache James 随后又使用 J2EE Connector Architecture(JCA)资源适配器反过来与 Geronimo 通信。
    2006年8月24日  
 
人工智能 Java 坦克机器人系列: 神经网络,上部
神经网络是人工智能应用中最重要的一部分,本文介绍了神经网络在 Robocode 中的应用,并分析了用 Java 编写的 Robocode 机器人例子代码。但本文不限于 Robocode 这个 Java 编程游戏与神经网络,同时还涉及到贝叶斯网络、神经网络 Java 公共包的应用、AICODE 这个编程游戏与 Robocode 互补特点。本文希望帮助大家利用 Robocode 这个有趣的编程游戏更好的领会神经网络与 Java 技术,在大家学习人工智能与 Java 方面抛砖引玉。
    2006年8月24日  
 
人工智能 Java 坦克机器人系列: 神经网络,下部
Robocode 中团队作战是很复杂的应用,如何在多变的环境下找到自己想要的目标是团队作战的关键。本文将用贝叶斯网络来实现团队作战的目标的选择,贝叶斯网络是人工智能中机器学习的一种方法,它并不属于神经网络范围。由于本文不仅介绍了贝叶斯网络的应用,同样涉及到神经网络公共包的应用、Robocode 中使用神经网络的例子机器人分析,最后还介绍了 AI-CODE 这个类似于 Robocode 的编程工具的体系结构,以方便 C,C++,C# 用户在本文 Java 代码的基础上对神经网络知识的理解。
    2006年8月24日  
 
让开发自动化: 持续检查
利用源代码分析工具,自动获得关于代码复杂性、重复程度、符合编码标准的程度,从而改进软件开发过程。
    2006年8月21日  
 
方便 Ajax 与 Java EE 的集成
随着 Ajax 的兴起,对于消解这个热门技术的谜团并有针对性地处理在它的使用中出现的问题的需求出现了。高级 IT 专家 Patrick Gan 利用这个机会,研究了在 Java EE Web 应用程序中引入 Ajax 对整个开发生命周期可能产生的影响。对采纳 Ajax 基于异步通信的模式会存在的问题保持清醒,有助于踏上有效集成 Ajax 的正确道路。
    2006年8月17日  
 
追求代码质量: 测试 Struts 遗留的应用程序
虽然 Struts 正在慢慢退出 Web 框架的历史舞台,但它的遗产仍然存在,存在的形式主要是需要测试和维护的应用程序。这个月,Andrew Glover 向您介绍如何使用 JUnit 的 StrutsTestCase、DbUnit 以及在这个系列中迄今为止学到的一些工具,把以质量为中心的方法用于 Struts 上的测试(可以这么说)。
    2006年8月17日  
 
不仅仅是另一本并发性图书
如果以前没有购买 Java Concurrency in Practice(Goetz 等,Addison-Wesley,2006 年),那么现在该购买了。经验丰富的 Java 开发人员(和流行书作者)Sing Li 介绍了为什么即使并发性还没进入您的日常开发,也应当阅读这本重要的图书。该书由 developerWorks 的长期作者和并发性专家 Goetz 执笔。
    2006年8月14日  
 
Rich Internet Applications 的技术选项
Web 应用程序就要进入下一级别了,Rich Internet Application (RIA) 可以极大地增强用户交互。在本文对 RIA 的概述中,您将学习如何将其应用于用户界面 (UI) 层。Web 开发人员和架构师可能对该领域里当前可用的几种常见技术 —— Laszlo、XUL、XForms、 Macromedia Flex 和 Dojo 的讨论特别感兴趣。本文还包括其他技术的链接。本文假设您相当了解传统的 UI 工具,比如 HTML 和 XML。
    2006年8月14日  
 
实现 Java 多线程并发控制框架
Java 多线程是提高程序效能的利器,本文并不是告诉您如何编写多线程 Java 程序,而着重于多线程的并发控制以及如何描述线程执行的过程。当您需要完全掌控 Java 多线程执行的过程时,本文将会对您有所帮助。
    2006年8月14日  
 
部署 MIDlet 到 J2ME 设备
学习在支持 J2ME 的设备上部署 MIDlet 的各种方法。在这篇教程中,您将看到如何以远程和本地方式部署 MIDlet,还会了解到如何通过无线方式下载 URL 引用的 MIDlet,以及如何在支持 J2ME 的设备上进行这样的下载。
    2006年8月10日  
 
使用 WebSphere 集群环境构建强大而灵活的 J2EE 应用程序
本文描述了在 WebSphere Application Server 集群环境中设计基于 Web 的应用程序时需要考虑的事项,包括应用程序文件更新和同步、会话对象的序列化和动态缓存。
    2006年8月10日  
 
进入 Harmony 世界,第 2 部分: 研究 Port Layer
本文是“进入 Harmony 世界”这个由 5 部分组成的系列文章的第二篇,较详细地介绍了 Harmony 项目中用于实现平台无关性的 Port Layer,了解 Harmony Port Layer 的由来,结构及其在 Harmony 开发中的重要作用。
    2006年8月7日  
 
专家评论: Roland Barcia:Java Persistence API 中带注释的命名查询是否真的非常有用?
对于开发人员来说,注释的确使某些事情变得非常容易,但这又以丧失简洁性为代价。在 Java Persistence API (JPA) 中,注释用作将 Java 对象映射到底层数据库的一种机制,不过即使在注释没有任何意义时,开发人员也常常使用它。本文介绍通过 JPA 访问数据的一些其他方法,以及这些方法作为最佳选择的时间和原因。
    2006年8月7日  
 
配置 FTP 服务器以支持 IPv6
下一代协议,Internet Protocol version 6 (IPv6),被广泛认为是 Internet 和网络世界的未来。这种认同已鼓励各个 IT 公司开发支持并使用 IPv6 地址格式进行相互通信的应用程序。在本文中,学习配置 File Transfer Protocol (FTP) 服务器以支持 IPv6,然后通过一个简单的使用 IPv6 地址的 Java 程序来与 FTP 服务器通信。
    2006年8月7日  
 
Java Content Repository API 简介
随着内容管理应用程序的日益普及,对于公共的、标准的内容仓库 API 的需求也变得渐渐明显起来。Content Repository for Java Technology API(JSR-170)的目标就是提供这样一个接口。在这篇文章中,我将用开放源码的 JSR-170 实现 Apache Jackrabbit,设计一个简单的类似维京百科全书的后端,研究这个前途远大的框架所提供的特性。
    2006年8月4日  
 
IBM WebSphere 开发者技术期刊: 使用 JMS 和 WebSphere ESB 构建强大而可靠的 SOA——第 3 部分
Java Message Service (JMS) 对 J2EE 平台上的可靠消息传递进行了标准化。最近发布的 IBM WebSphere Enterprise Service Bus (ESB) 产品提供了一些重要的功能,这些功能处于任何支持面向服务的体系结构的环境的核心位置。本系列中的三篇文章介绍了如何对 JMS 消息传递和 WebSphere ESB 进行集成,作为其中的结束篇,本文描述了如何在 WebSphere ESB 中为中介流组件构建 JMS 自定义绑定。
    2006年8月3日  
 
在 WebSphere Message Broker V6 中使用 Java
本文介绍 WebSphere Message Broker V6 中增强的 Java 支持,重点关注新的 JavaCompute 节点,该节点简化了 Java 在消息流应用程序开发中的使用。本文还列举了大量的参考资料,可以帮助您在 WebSphere Message Broker 中学习和使用 Java。
    2006年8月1日  
 
跨越边界: 用 Haskell 研究函数性编程
结构化编程和面向对象编程都革新了业务应用程序构建的方式。但是还存在其他编程模型,有些梦想家还认为这些范式比面向对象编程的生产力更高。这篇文章探索 Haskell 研究函数性编程的基础。学习函数性编程可以重塑对于 Java 编程的思考方式。
    2006年7月31日  
 
追求代码质量: 驯服复杂的冗长代码
只是从远处看一眼乱七八糟四处蔓延的代码块,开发人员就会感到心惊肉跳 —— 这很正常!冗长的代码常常是复杂性的标志,会导致代码难以测试和维护。本月将学习三种测试代码复杂性的重要方法,它们分别基于方法长度、类长度和内部类耦合。在这一期的 “追求代码质量” 系列文章中,专家 Andrew Glover 将向您展示如何使用诸如 PMD 和 JavaNCSS 之类的工具,在您需要的时候获得更高的精度。
    2006年7月31日  
 
在 Eclipse 中轻松使用 Ant,在 Ant 编辑器中轻松编写、构建和调试代码
Eclipse 可使得使用 Apache Ant 更加容易。了解 Eclipse 集成开发环境 (IDE) 中的 Ant 集成特性,并学习如何使用 Ant 编辑器在 Eclipse 中编写、构建和调试代码。
    2006年7月28日  
 
跨越边界: 动态类型语言中的 Web 开发策略
过去十年的大部分时间里,Java 社区一直在使用 JavaServer Pages (JSP) 技术,但现在已开始显现出衰退的迹象。目前,长期以来的惯例阻止了 Java 程序员在 Web 页面中使用 Java 代码,并且即便扩展简单的组件也很繁琐。超越 JSP 编程的 Java Web 开发框架已经出现,但却缺少动态语言功能。本文将向您展示 Ruby 的 Web 页面开发策略并会提及有关 Seaside 的基本方法。
    2006年7月28日  
 
UTF-8 字符处理在 Web 开发中的应用
Web 应用要适应多语言的需求。不同国家的用户应该可以输入本国语言的字符, 同时 Web 应用又应该可以根据不同的区域设置来用多国语言显示页面。 当前,不同的语言有不同的编码方式来显示对应的语言信息,例如中文可以用 GB2312 编码来显示,日文可以用 Shift-JIS 编码来显示。但 UTF-8 编码方式几乎可以包括了所有的语言字符。用 UTF-8 编码来处理 Web 应用信息的输入和显示可以使不同 Web 应用之间的信息交互标准化,并且可以简化应用的开发过程。
    2006年7月27日  
 
使用 Apache Geronimo 和 Ajax 构建目录,第 2 部分: 查询 LDAP 服务器
在本系列的 第 1 部分, 您已经将假想的个人信息导入 Lightweight Directory Access Protocol (LDAP) 服务器中。现在,应该使用 LDAP Tools for Eclipse 完成 Apache Geronimo 的内置 Apache Directory LDAP 服务器的配置了。本文是本系列的最后一期文章,您将查询 LDAP 服务器并使用 Ajax 更新 Web 页面。您还将熟悉使用 Java 平台和 Ajax 中可用的工具集来构建以 LDAP 为中心的应用程序的一些技术。
    2006年7月20日  
 
用函数式编程技术编写优美的 JavaScript
函数式或声明性编程是非常强大的编程方法,正逐渐在软件行业流行起来。这篇文章将介绍一些相关的函数式编程概念,并提供有效使用这些概念的示例。作者将解释如何使用 JavaScript(TM)(JavaScript 能导入函数式编程的构造和特性)编写优美的代码。
    2006年7月20日  
 
面向 Java 开发人员的 Ajax: 探索 Google Web Toolkit
最近发布的 Google Web Toolkit (GWT) 是一组全面的 API 和工具,它支持用户几乎完全使用 Java 代码来创建动态 Web 应用程序。Philip McCarthy 回到了他广受欢迎的 “面向 Java 开发人员的 Ajax” 系列,向您展示 GWT 能做什么,并帮助您确定它是否适合您。
    2006年7月17日  
 
进入 Harmony 世界,第 1 部分: Apache Harmony 项目简介
Apache Harmony 是 2005 年 5 月宣布的开放源码 Java SE 实现,本文是一个分 5 部分的系列文章的第一篇,这个系列主要介绍 Apache Harmony 项目的内部实现,最新发展现状和开源 Java 开发的模式,并鼓励和欢迎大家参与到 Harmony 的社区中来。本文是 5 个系列的第一篇,概括介绍了 Harmony 项目的背景,技术架构,社区运作和未来的方向。
    2006年7月17日  
 
人工智能 Java 坦克机器人系列: 强化学习
本文中,我们将使用强化学习来实现一个机器人。使用强化学习能创建一个自适应的战斗机器人。这个机器人能在战斗中根据环境取得最好的策略,并尽力使战斗行为最佳。并在此过程中不断学习以完善自身不足。
    2006年7月13日  
 
深入 Lucene 索引机制
Lucene 是一个基于 Java 的全文检索工具包,你可以利用它来为你的应用程序加入索引和检索功能。Lucene 目前是著名的 Apache Jakarta 家族中的一个开源项目,下面我们即将学习 Lucene 的索引机制以及它的索引文件的结构。在这篇文章中,我们首先演示如何使用 Lucene 来索引文档,接着讨论如何提高索引的性能。最后我们来分析 Lucene 的索引文件结构。需要记住的是,Lucene 不是一个完整的应用程序,而是一个信息检索包,它方便你为你的应用程序添加索引和搜索功能。
    2006年7月13日  
 
跨越边界: 在集成框架中进行测试,第 2 部分
在由两篇文章组成的这一系列的第 1 部分中,介绍了如何用 Ruby on Rails 进行单元测试,并展示了如何利用这种方式的某些方面改进 Java 的单元测试。Java 开发人员对更高级测试的选择更加有限。在这篇文章中,将继续研究 Rails,体会用于功能测试和集成测试的集成框架的优势。
    2006年7月10日  
 
Java 理论与实践: 平衡测试,第 1 部分
在 2004 年 6 月,经验丰富的清除专家 Brian Goetz 引进了 FindBugs 静态代码分析工具,即使在测试良好的软件中,该工具也可以检测 bug。本月他将重拾该主题,查看静态分析工具如何通过开发存在所有种类的 bug 的资源(而不是特定实例)来改进管理软件质量的方式。
    2006年7月10日  
 
测试对象串行化
即使最杰出的开发人员有时也会忘记测试对象串行化,但那并不能作为您犯下同一错误的借口。在这篇文章中,Elliotte Rusty Harold 将解释对对象串行化进行单元测试的重要性,并为您展示一些应牢记的测试。
    2006年7月6日  
 
Subversion 简介
Elliotte Rusty Harold 介绍了 Subversion —— 一种开放源码、多用户版本控制系统,支持非 ASCII 文本和二进制数据。通过 Elliotte 的介绍,您可看到如何在 Eclipse 中配置 Subversion 支持(通过 Subclipse 插件)、检出一个项目、与您的存储库同步,随后执行一些常用的操作,如合并、修补、比较和删除。
    2006年7月6日  
 
面向 Java 开发人员的 Ajax: 使用 Google Web Toolkit 开发 Ajax
GWT(Google Web Toolkit) 是 Google 最近推出的一个开发 Ajax 应用的框架,它支持用 Java 开发和调试 Ajax 应用,本文主要介绍如何利用 GWT 进行 Ajax 的开发。
    2006年7月3日  
 
面向 Java 开发人员的 Ajax: Google Web Toolkit 入门
Ajax 被用于创建更加动态和交互性更好的 Web 应用程序。Google Web Toolkit (简称GWT) 是 Google 推出的 Ajax 应用开发包,GWT 支持开发者使用Java 语言开发 Ajax 应用。本文中作者将介绍如何使用 GWT 开发 Ajax 应用的基本方法和步骤。
    2006年7月3日  
 
人工智能 Java 坦克机器人系列: 遗传算法
遗传算法(Genetic Algorithm, GA)是近几年发展起来的一种崭新的全局优化算法。本文将讲解这种算法,并介绍如何 Robocode Java 坦克机器人中采用此算法以实现机器人进化。
    2006年6月30日  
 
使用 Swing 进行动态界面设计
Swing UI 工具包使动态更新用户界面以响应事件或用户操作成为可能(虽然并不总是很容易)。本文回顾了一些用于构建能够动态更新的 UI 的常用方法、其间可能遇到的一些陷阱和一些有助于您决定何时它是完成工作的正确方法的原则。
    2006年6月30日  
 
Java 技术,IBM 风格: 监视和判断问题
Java 技术 5.0 的 IBM 实现包含许多有用的工具,可以帮助开发人员诊断和解决 Java 开发问题。在 “Java 技术,IBM 风格” 系列的最后一期中,您将了解可以从 IBM 跟踪和转储引擎获得的信息。本文还将介绍 Diagnostic Toolkit and Framework for Java(DTFJ)API,可以用这个 API 编写代码来查询和分析诊断数据。
    2006年6月30日  
 
将 EJB 服务与 WebSphere Process Server 集成
本文介绍如何使用 IBM WebSphere Process Server Version 6 和 IBM WebSphere Integration Developer Version 6 来在不对其进行更改的情况下集成现有 J2EE 应用程序。
    2006年6月29日  
 
通过 JVM 查看关于 Apache Geronimo 的统计信息
Apache Geronimo 应用服务器不仅是开放源码的,而且性能很高。所以它是运行高性能应用程序的自然选择。但是,只是将应用程序运行在 Geronimo 中还不能保证它满足您的性能要求。有时候,可能需要分析和优化应用程序的效率。有许多工具可用于该任务,但您可以通过分析 Java 虚拟机 (JVM) 统计信息基本完成该任务。本文将帮您体验如何从 JVM 获得统计信息,从而对应用程序进行概要分析和优化,以满足性能需要。
    2006年6月29日  
 
跨越边界: 在集成框架中进行测试,第 1 部分
Java 社区在推进自动单元测试方面已经做了一项激动人心的工作。越来越多的开放源码框架支持在构建项目的同时构建自动测试套件。Spring framework、JUnit、TestNG 和其他几个框架的一些或全部灵感都来自自动测试的思想。尽管如此,一些非 Java 语言和框架具有更多的测试动机、更合适的测试工具和更统一的测试视角。通过观察其他框架的测试方式,可以改进 Java 语言中的测试方式,甚至使用更合适的语言来测试 Java 代码。这篇文章是关于在 Ruby on Rails 上进行测试的两篇文章中的第一篇,将介绍 Rails 单元测试的方式。
    2006年6月27日  
 
Java 开发中的可视化支持
IBM 的 Rational Rational® Application Developer 6.0(以后称作“Application Developer”)中的Java可视化编辑器大大简化了复杂的Java应用软件的开发过程。这篇文章介绍了这些可视化特点。
    2006年6月26日  
 
Geronimo 叛逆者: Apache Geronimo 的 JMS 实现:ActiveMQ
我们已经在 “Geronimo 叛逆者” 专栏中对集群进行了许多讨论。但是,使所有集群成为可能的消息传递又怎么样呢?Geronimo 包含 ActiveMQ,这是 Java Message Service(JMS)的一种实现,创建它是为了满足项目的需要。在本文中,我们与 ActiveMQ 的创建者之一 James Strachan 讨论了 ActiveMQ、消息传递以及依赖消息传递的应用程序的未来发展。
    2006年6月22日  
 
Java 技术,IBM 风格: 类共享
Java 5.0 平台的 IBM 实现中新的共享类特性提供了一种完全透明和动态的方法,可以共享已经装载的所有类,而不会对共享类数据的 JVM 施加限制。这个特性为减少虚拟内存占用和改进启动时间提供了一个简单且灵活的解决方案,大多数应用程序都能够因此受益。本文讨论这个特性是如何工作的、如何使用它以及何时使用它,还介绍它提供的一些特性。
    2006年6月22日  
 
Java Web 服务,第 1 部分: Java Web 服务在未来一年内的发展
2006 年中,Web 服务领域将发生翻天覆地的变化。对于 Java 开发人员而言,这些变化将包括新 Web 服务框架和构建于 Web 服务之上的新功能层的出现。在 Dennis Sosnoski 的“Java Web 服务”系列的第 1 部分,他讨论了即将发生的变化,并为读者构想了基本的概况。
    2006年6月20日  
 
追求代码质量: 用代码度量进行重构
在 “追求代码质量” 的前一期中,学习了如何用代码度量客观地度量代码质量。这个月,Andrew Glover 将介绍如何使用相同的度量方法和提取方法模式进行有针对性的重构。
    2006年6月19日  
 
为 DB2 XML 数据开发 Java 应用程序
DB2 的 Viper 版本现在还处于 beta 阶段,其特征在于对存储、管理和查询 XML 数据提供了新的重要支持。在本文中,将学习有关如何编写访问新 XML 数据的 Java 应用程序的基础知识。
    2006年6月19日  
 
Apache Geronimo 机器修理店应用示例,第 4 部分: EJB:会话 bean 和消息驱动 bean
在这个分 4 部分的教程中,到目前为止,已经使用 servlet、JavaServer Pages(JSP)、J2EE 声明性安全和 J2EE Connector Architecture(JCA)创建和部署了机器修理店示例应用程序。然后用 Java Database Connectivity(JDBC)替换了 JCA Resource Adapter,并添加一个 Web 服务来与数据库模块进行通信。在第 3 部分中,了解了两种实体 bean 之间的差异 ―― bean 管理的持久性(BMP)和容器管理的持久性(CMP),并创建了一个简单的控制台,让用户能够定制他们汽车的马力。在本系列的最后,将学习 Enterprise JavaBeans(EJB)―― 具体地说,是会话 bean 和消息驱动 bean(MDB),并使用它们在应用程序中添加一个控制台,让技师能够订购汽车部件。
    2006年6月15日  
 
Apache Geronimo 机器修理店应用示例,第 3 部分: EJB:Bean 管理的持久性和容器管理的持久性
我们继续扩展在本系列的 第 1 部分 中创建和部署并在 第 2 部分 中改进过的机器修理店示例应用程序。在这个 4 部分系列教程的第 3 部分中,我们创建一个简单的控制台,让顾客能够定制他们的汽车的马力。学习两种实体 bean ―― bean 管理的持久性(bean-managed persistence,BMP)和容器管理的持久性(container-managed persistence,CMP) ―― 之间的差异,并分别使用它们访问汽车部件数据库。
    2006年6月15日  
 
Apache Geronimo 机器修理店应用示例,第 2 部分: 数据源、JDBC 和 Web 服务
在本文中,我们将介绍开发示例机器修理店应用程序的后续步骤。本系列教程适用于 Java 2 Platform Enterprise Edition (J2EE) 新手和熟练开发人员,将展示如何在 Apache Geronimo 平台上创建并部署应用程序。在本系列的 第 1 部分 中,我们已经使用 servlet、JavaServer Page (JSP)、J2EE 声明性安全和 J2EE Connector Architecture (JCA) 创建并部署了一个应用程序。本文是该系列文章的第 2 部分,在这篇文章中,我们将对这个应用程序进行增强:使用 JDBC (Java Database Connectivity) 来替换 JCA Resource Adapter,并添加一个 Web 服务,以便与数据库模块进行通信。
    2006年6月15日  
 
Apache Geronimo 机器修理店应用示例,第 1 部分:Servlet、JSP、安全性和 JCA
在连续几个发行版之后,Apache Geronimo 项目迎来了非常好的势头,开发人员开始注意并且好奇他们可以怎样使用 Java 2 Platform Enterprise Edition (J2EE) 认证的平台来开发应用程序。尽管使用标准技术开发应用程序对于 J2EE 专家来说可能只是微不足道的事情,但是要将这些组件放在一起正常工作则需要一些特定于 Geronimo 的知识。因此,J2EE 新手和那些在 Geronimo 中集成应用程序的开发人员可能会发现本系列教程非常有用,而那些熟练的 J2EE 程序员也可以从本系列中找到一些在 Geronimo 上构建应用程序的方法。本系列教程将向您展示如何创建一个示例应用程序,并给出对其进行配置和将其部署到 Geronimo 中所需要的步骤。在本系列的第 1 部分中,我们将使用 servlet、JavaServer Page (JSP)、J2EE 声明性安全 (declarative security) 和 J2EE Connector Architecture (JCA) 来创建并部署应用程序。
    2006年6月15日  
 
书评: Wicked Cool Java
来自Rational Edge:这篇书评介绍的是班克斯•布赖恩创造的学习Java语言和技巧的非技术性的方法。
    2006年6月15日  
 
书评:学习编程
本文来自于 Rational Edge:Chris Pine 的一篇有关Ruby语言计算机编程的介绍,热情洋溢且易于阅读。
    2006年6月15日  
 
Enterprise Generation Language:在当今的现代应用程序中利用现有的 IT 技术和资源
本文出自于 Rational Edge:许多现今工作于传统的 IT 环境中的软件开发人员不具备开发 Java 代码的技术技能和知识。本文将介绍 IBM 新的 Enterprise Generation Language (EGL) 如何使这些开发团队不需要昂贵的培训。
    2006年6月15日  
 
使用 EMMA 测量测试覆盖率
本文主要通过一个示例项目介绍如何在集成了 Ant 和 Junit 的基础上,利用 EMMA 来收集单元测试对代码的覆盖率。
    2006年6月15日  
 
Java 理论与实践: 处理 InterruptedException
Java 语言的很多方法,例如 Thread.sleep() 和 Object.wait(),都可以抛出 InterruptedException。这个异常是不能忽略的,因为它是一个检查异常(checked exception)。但是应该如何处理它呢?在本月的 “Java 理论与实践” 中,并发专家 Brian Goetz 将解释 InterruptedException 的含义,为什么抛出 InterruptedException,以及在捕捉到该异常时应该怎么做。
    2006年6月15日  
 
GT4 远程执行客户机快速入门
您是一位软件开发人员,正在努力地把公司的应用程序移植到一个崭新的分布式环境中。您的组织已经为网格计算这一令人兴奋的新领域提供了一些资源,但是您却不知道接下来应该做些什么。最终期限很快就要到了,惶恐的气氛逐渐在您的团队中蔓延开来。您需要做的事情是制定一个快速路线图,将组织的应用程序部署或移植到计算或数据网格中。Globus 一直以来都在致力于提供有关 Globus Toolkit V4.0(GT4)的文档,但您现在需要的是开发文档。Globus 正在创建一些开发文档 Web 站点来解决这个问题。同时,在本文中,我们给出了一些资源管理领域中的开发技巧,目的在于帮助您使用 Web services Grid Resource Allocation and Management(WS-GRAM)服务快速启用网格应用程序。
    2006年6月13日  
 
Spring 开发 Swing GUI 简介
本教程介绍了 Spring 框架以及依赖注入的概念(也称为反转控制),这是在编写简单的 Java Swing GUI 应用程序时使用的技术。我们将从头开始开发一个完整的可以工作的应用程序。还会体会一下 Spring Rich Client Project,这是一个用来使用 Spring 开发 Swing 应用程序的新框架。您会欣赏到 Spring 的丰富功能,以及如何用它来简化开发任务。
    2006年6月12日  
 
跨越边界: Java 模型以外的类型策略
当谈到 Java 语言的类型方法时,Java 社区分为两大阵营。一些人喜欢编译时错误检查,更好的安全性,以及改进的工具 —— 这些都是静态类型所能提供的特性。而另一些人则偏爱更动态的类型体验。这一次在 “跨越边界” 中,您将看到两种高生产力的非 Java 语言所使用的一些截然不同的类型策略,并发现在 Java 编程中提高类型灵活性的一些方法。
    2006年6月12日  
 
使用 SQLXML 数据类型
如果您是一名 Java 2 Enterprise Edition (J2EE) 开发人员,那么您可能想提前了解一下目前正在开发的 SQLXML 技术。查看使用 SQLXML Java 数据类型创建 XML 文档、在关系数据库中存储 XML 文档、从数据库中检索 XML 文档和导航 XML 文档的过程。
    2006年6月10日  
 
高级 Facelets 编程
如果您认为国际化非常困难,现在应该转变观念了!在本文中,Richard Hightower 延续前文中的 Facelets 简介,介绍了使用更高级的方法架起 Java Server Faces (JSF) 和 EL 之间的互通桥梁。遵循 Rick 为您演示的方法,可轻松国际化 Web 页面、向复合组件添加定制的逻辑标记,以及把元数据编程合并到 Facelets 开发中。
    2006年6月8日  
 
在使用 Tomcat 的 Apache Geronimo 上部署 OpenLaszlo 应用
随着流行的富用户界面(UI)语言 OpenLaszlo 的兴起,以及 Apache Geronimo 的同时兴起,OpenLaszlo 开发人员希望在 Geronimo 中部署应用程序。本教程介绍了在 Geronimo 中配置 Apache Tomcat 内部细节所必需的过程,以便能够运行 OpenLaszlo 应用服务器,并在 Geronimo 中部署和运行 OpenLaszlo 应用程序。您将实现一个示例 OpenLaszlo 应用程序,以证实运行在 Apache Geronimo 上的 OpenLaszlo 应用服务器的功能。
    2006年6月5日  
 
你好,Shale: 剖析 Shale 应用程序
通过对框架的应用目录结构的详细分析,Brett McLaughlin 继续深入介绍 Shale。利用本系列第一篇文章中介绍的 Shale starter 应用程序,Brett 详细地为您介绍从 src/ 到 dist/ 的核心目录。本文介绍了 Shale 库的存储方式,定制文件的放置位置以及在何处向 Shale 应用程序插入专门的行为。在本文中,他给您提出一些关于管理 Shale 目录的重要建议,并且让您从一个示例应用程序(基于 Shale starter 应用程序)开始学起,该示例应用程序将作为本系列其余文章讨论的基础。
    2006年6月5日  
 
不要重复 DAO!
由于 Java 5 泛型的采用,关于泛型类型安全 Data Access Object (DAO) 实现的想法变得切实可行。在本文中,系统架构师 Per Mellqvist 展示了基于 Hibernate 的泛型 DAO 实现类。然后展示如何使用 Spring AOP introductions 将类型安全接口添加到类中以便于查询执行。
    2006年6月5日  
 
高级 XML 验证
XSLT 样式表被设计用来转换 XML 文档。当基于语法的验证不能覆盖所有需要的约束时,通过与 Java 扩展一起使用,样式表可以成为 XML Schema 的一个强有力的补充。在本文中,Peter Heneback 讲解了使用 XSLT 和 Java 扩展来验证文档的案例,并提供了实用的指导和代码示例。
    2006年6月5日  
 
界面组装器模式
本文提出了一种界面设计中的架构模式-界面组装器模式,它致力于分解界面,将界面和组装行为解耦,将界面逻辑处理与领域逻辑处理解耦,这样我们在开发GUI胖客户端界面应用时可以从众多的界面控制管理中解脱出来,而专注于我们的后台业务逻辑的开发。通过该模式,我们可以动态地组装我们的界面,我们甚至还可以在我们的界面中轻松地插入 transaction 事务或 session 会话管理。
    2006年6月1日  
 
XML 问题: 管道流微格式
XML 一种越来越常见的用法是让小段内容通过任意的处理工作流,就像 UNIX 管道中的文本那样。这些片段可能来自一个或多个文档,可以是整个文档也可以是其中的某些部分,也可能按需由其他来源综合而成,因此非常适合用流来描述。使用明确定义的 XML 或 XHTML 片段的微格式(microformat)方法非常适合于这种处理方式。本文介绍了一些这样的例子,即使用现有的 Python 和 Java(TM) 工具以及 hCard 和 hCalendar 微格式。
    2006年6月1日  
 
Java 技术,IBM 风格: 垃圾收集策略,第 1 部分
Java 平台最大的好处之一是,它会替您负责处理大量垃圾收集工作,但是有时候您仍然希望调整进行垃圾收集的方式。利用 IBM 提供的最新 Java 技术实现,可以在几种垃圾收集策略中做出选择,从而让自己的应用程序发挥出最好的性能。本文是 “Java 技术,IBM 风格” 系列的第二篇文章。在本文中,Java 开发人员 Mattias Persson 探讨了可用的选项并详细描述了每个选项适合的场景。
    2006年6月1日  
 
在 Apache 目录服务器中存储 Java 对象,第 1 部分
这个两部分的系列介绍了在 Apache 目录服务器(ApacheDS)中保存 Java 对象的步骤。在第 1 部分中,作者 Bilal Siddiqui 介绍了 ApacheDS,并提供了 ApacheDS 核心架构的概述。因为主要把 ApacheDS 用作保存 Java 对象的 LDAP 服务器,所以 Bilal 提供了对 LDAP 概念和术语的快速概述。他还介绍了如何用 JXplorer 查看 LDAP 模式组件,例如属性类型和对象类,还介绍了如何在 ApacheDS 中输入数据对象。文章末尾概述了 Java 对象的序列化和远程方法调用,并用它们把 Java 对象保存在 ApacheDS 中,为第 2 部分实践性更强的方法做好准备。
    2006年5月29日  
 
Geronimo 叛逆者: 加入集群功能,第 2 部分
由于 “加入集群功能”(developerWorks,2005 年 12 月)一文引起的争议,我重新就这一主题详细采访了一位 Apache Geronimo 的集群专家。在本文中将确切地了解到什么是集群,并详细观察 WADI 应用程序分布式基础设施(Application Distributed Infrastructure,WADI)项目,这是 Geronimo 中组合的一个项目,用来提供 Geronimo 的集群功能。
    2006年5月29日  
 
利用 Ant 和 Eclipse 有效地提高部署工作效率
本文主要介绍 Ant 在多用户开发的情况下,如何用 Eclipse,并且根据不同的目标环境编译不同的部署包。文中首先介绍一个场景,给出在开发、编译、部署过程中遇到的问题;然后介绍如何用 Eclipse 来简化你的 Ant 开发过程;文章的最后解释如何通过编写有效的 Ant 脚本来提高你的工作效率。
    2006年5月29日  
 
在 Apache 目录服务器中存储 Java 对象,第 2 部分
在第 2 部分中将介绍如何在 Apache 目录服务器 (ApacheDS) 中存储 Java 对象,Bilal Siddiqui 将提供 9 个示例应用程序,演示在第 1 部分中学习的概念。除了介绍使用 ApacheDS 存储、搜索、检索和修改 Java 对象的所有步骤之外,Bilal 还将在总结全文时提供一个可重用的 Java 类,该类可以使用 LDAP 模式组件在 ApacheDS 中将这些功能组合在一起。
    2006年5月29日  
 
Java 技术,IBM 风格: IBM Developer Kit 简介
随着 Java 5.0 的出现,IBM 在它的 Java 技术实现方面进行了改进。本文是一个分 5 部分的文章系列的第一篇,这个系列主要关注 IBM Developer Kit 最新版本中的变化。作者 Chris Bailey 首先简要描述了 Java 5.0 平台的改进,然后介绍了 IBM SDK 实现中的变化。
    2006年5月25日  
 
使用 Ajax 调用SOAP Web 服务,第 2 部分: 扩展 Web 服务客户机
使用 Asynchronous JavaScript and XML (Ajax) 设计模式实现基于 Web 浏览器的 SOAP Web 服务。在本系列的第 1 部分 中,作者引入了一个简单的用于调用 SOAP Web 服务的基于 Web 浏览器的 JavaScript 库。在第 2 部分中,作者将实现对 Web 服务寻址语言 (Web Services Addressing Language) 和 Web 服务资源框架 (Web Services Addressing Language) 规范的支持,以便扩展 JavaScript 库的功能。
    2006年5月25日  
 
Classworking 工具箱: 分析泛型数据结构
Java 5 泛型把详细的类型信息编码到类文件中。许多类型的工具都可以从全面的类型信息提供的改进的数据结构中受益,但是要把这个信息变成有用的形式可能有些困难。为了让这个工作更容易些,系列作者 Dennis Sosnoski 围绕 ASM Java 字节码操纵框架构建了一个数据结构分析程序,可以解释泛型信息,为应用程序使用的数据的实际数据类型创建深度的视图。
    2006年5月25日  
 
使用 DHTML 与 XML 制作 Ajax 幻灯片
学习如何创建通过 “Ken Burns Effects” 实现动画的 Ajax 客户端幻灯片放映。通过本文,您将了解如何创建 Ajax XML 数据源、从客户机请求 XML 并用 XML 动态地创建活动的 HTML 元素。
    2006年5月23日  
 
追求代码质量: 软件架构的代码质量
大多数设计良好的软件架构都趋向于支持系统的可扩展性、可维护性和可靠性。遗憾的是,对质量问题的疏忽极可能使软件架构师的努力白费。在 “追求代码质量” 系列的这一期文章中,质量专家 Andrew Glover 解释如何持续地监视并纠正会影响软件架构的长期生存能力的代码质量方面。
    2006年5月23日  
 
跨越边界: Ruby on Rails 的秘笈是什么?
Ruby on Rails 好像一直处于争论的风口浪尖。大多数争论的核心是其所宣称的令人惊异的生产力。“跨越边界” 的作者 Bruce Tate 已经开始理解 Rails 并不是一个更好的工具,而是一个不同类型的工具。本文研究了使 Rails 在某个领域如此高效率的折衷和设计决策。然后思索了应该在 Java 社区获得更多关注的受 Rails 启发的思想。
    2006年5月23日  
 
面向方面的编程:它的好处是什么?
来自于 Rational Edge:关于面向方面的编程的大多数介绍,都是建立在技术可行的有限环境的基础之上,而忽略了AOP的实际价值。这篇文章提供了将AOP技术应用于软件开发项目的一系列实际的例子。
    2006年5月18日  
 
跨越边界:活动记录和 Java 编程中特定于域的语言
Java 编程的世界充满了特定于域的语言(DSL),但是在 Java 语言中用来构建 DSL 的选项是有限的。使用 Ruby 则不是这样。在这篇文章中,将学习 Ruby 提供的一些漂亮方式,可以集成干净的 DSL,让您大开眼界,用一种新的参考框架来审视 Java 的选项。
    2006年5月18日  
 
Java 理论与实践: 非阻塞算法简介
Java 5.0 第一次让使用 Java 语言开发非阻塞算法成为可能,java.util.concurrent 包充分地利用了这个功能。非阻塞算法属于并发算法,它们可以安全地派生它们的线程,不通过锁定派生,而是通过低级的原子性的硬件原生形式 ―― 例如比较和交换。非阻塞算法的设计与实现极为困难,但是它们能够提供更好的吞吐率,对生存问题(例如死锁和优先级反转)也能提供更好的防御。在这期的 Java 理论与实践 中,并发性大师 Brian Goetz 演示了几种比较简单的非阻塞算法的工作方式。
    2006年5月18日  
 
使用 EJB 3.0 Java Persistence API 设计企业应用程序
本文将介绍 Java Platform, Enterprise Edition (Java EE 5) 的一种设计方法,它利用了 Enterprise JavaBeans (EJB) 3.0 新的 Java Persistence API (JPA)。JPA 提供了一种标准的对象关系映射解决方案,该解决方案避免了依赖第三方框架(如 Hibernate)。您将看到示例应用程序的详细内容,其中验证了本方法并阐明关键设计决定。
    2006年5月11日  
 
使用 ConTest 进行多线程单元测试
众所周知并行程序设计易于产生 bug。更为严重的是,往往在开发过程的晚期当这些并行 bug 引起严重的损害时才能发现它们并且难于调试它们。即使彻底地对它们进行了调试,常规的单元测试实践也很可能遗漏并行 bug。在本文中,并行专家 Shmuel Ur 和 Yarden Nir-Buchbinder 解释了为什么并行 bug 如此难于捕获并且介绍了 IBM Research 的一种新的解决方案。
    2006年5月11日  
 
AOP@Work: 用 Contract4J 进行组件设计
契约式设计(Design by Contract)是切实可行的技术,可以阐明组件设计的细节、为客户记录正确的组件用法,并用编程的方式测试组件使用的顺应性(compliance)。在 AOP@Work 的最后一篇中,Dean Wampler 介绍了 Contract4J,这是契约式设计的工具,它用 Java 5 标注(annotation)指定合约,并在运行时用 AspectJ 方面计算合约。在成为 AOP 工具包中新增的一个举足轻重的工具的同时,Contract4J 迎合了面向方面设计的新趋势。
    2006年4月28日  
 
使用 Java 平台管理 bean
Java 平台的最新版本包含许多新的系统监视和管理特性。在本文中,三位来自 IBM Java 技术中心团队的开发人员一起带您开始使用这个 API。在快速概述了 java.lang.management 包之后,他们将指导您经历大量短小的实践场景,探测运行的 JVM 性能。
    2006年4月28日  
 
SWT、Swing 或 AWT:哪个更适合您?
本文通过对 Eclipse 的 SWT 和 Java Swing、Abstract Windows Toolkit(AWT)GUI 工具包进行比较,可以帮助新应用程序的开发人员从中选择适当的工具。您可以通过本文了解对每个工具包的基本特性的介绍,以及使用每个工具包的优缺点。
    2006年4月27日  
 
掌握 Ajax,第 5 部分: 操纵 DOM
上一期中 Brett 介绍了文档对象模型(DOM),它的元素在幕后定义了 Web 页面。这一期文章中他将进一步探讨 DOM。了解如何创建、删除和修改 DOM 树的各个部分,了解如何实现网页的即时更新!
    2006年4月27日  
 
实战 Lucene,第 1 部分: 初识 Lucene
本文首先介绍了Lucene的一些基本概念,然后开发了一个应用程序演示了利用Lucene建立索引并在该索引上进行搜索的过程。
    2006年4月20日  
 
EJB 倡导者:EJB 2.x 过时了吗?
EJB 倡导者对声称 EJB 3.0 使 EJB 2.0 过时的读者进行了回应,并探讨了 EJB 3 规范的一些新功能,其中包括 Java Persistence API (JPA)。这篇采用对话形式的文章表明,虽然这些新规范带来了很大好处,但是它们需要您对假设条件进行一些简化,这可能无法适合所有人。由于通过合适的工具,几乎所有这些好处都可以作为 EJB 2.x 规范的实现加以提供,所以 EJB 2.x 可能会继续存在一段时间。
    2006年4月14日  
 
EJB 倡导者: EJB 2.x 过时了吗?
EJB 倡导者对声称 EJB 3.0 使 EJB 2.0 过时的读者进行了回应,并探讨了 EJB 3 规范的一些新功能,其中包括 Java Persistence API (JPA)。这篇采用对话形式的文章表明,虽然这些新规范带来了很大好处,但是它们需要您对假设条件进行一些简化,这可能无法适合所有人。由于通过合适的工具,几乎所有这些好处都可以作为 EJB 2.x 规范的实现加以提供,所以 EJB 2.x 可能会继续存在一段时间。
    2006年4月13日  
 
掌握 Ajax,第 4 部分: 利用 DOM 进行 Web 响应
程序员(使用后端应用程序)和 Web 程序员(编写 HTML、CSS 和 JavaScript 上)之间的分水岭是长久存在的。但是,Document Object Model (DOM) 弥补了这个裂缝,使得在后端使用 XML 同时在前端使用 HML 切实可行,并成为极其有效的工具。在本文中,Brett McLaughlin 介绍了 Document Object Model,解释它在 Web 页面中的应用,并开始挖掘其在 JavaScript 中的用途。
    2006年4月10日  
 
Java 理论与实践: 良好的内务处理实践
垃圾收集几乎是每位 Java 平台开发人员都喜爱的一个特性,它简化了开发,消除了潜在的代码错误。可是尽管垃圾收集通常可以让您无需进行资源管理,但有时候您还是必须自己进行一些内务处理。在本期的 Java 理论与实践中,Brian Goetz 讨论了垃圾收集的局限性,并介绍了您必须自己做内务处理的场景。
    2006年4月10日  
 
AOP@Work: 使用方面的下几个步骤
一旦涉足方面之后,您就会马不停蹄,但不带地图去旅行绝对不是个好主意。在本文,尊敬的方面发明人 Ron Bodkin 为您提供了成功地采用方面的四个阶段,从使用跟踪和测试的第一个实验一直到构建自己的可重用方面库。
    2006年4月6日  
 
测试遗留代码
Test-first 编程是自面向对象编程以来最有效的编码方式,但它假定您从一个空白屏幕开始编程。当代码已经存在时,您应该怎么做呢?使用一个流行的开放源码的 Java 工具作为例子,作者 Elliotte Rusty Harold 向您展示了如何为 从未测试过的遗留代码开发测试套件。
    2006年4月4日  
 
构建自己的监测工具
监测(profiling)是测量软件程序在什么地方消耗资源(包括 CPU 时间和内存)的技术。在这篇文章中,软件架构师 Andrew Wilcox 解释了监测的好处和当前的一些监测选项及其不足。然后他介绍了如何用 Java 5 中新增的代理接口和简单的面向方面编程技术构建自己的监测器。
    2006年4月3日  
 
跨越边界: 研究活动记录
Java 编程语言对于广大的厂商、客户和行业来说,获得了前所未有的成功。但是,没有一种编程语言可以擅长每件工作。这篇文章开启了 Bruce Tate 的一个新系列,研究其他语言解决主要问题的方式以及这些解决方案对 Java 开发人员的意义。他首先研究活动记录,这是 Ruby on Rails 背后的持久性引擎。活动记录颠覆了许多 Java 的习惯做法,从典型的配置机制到基本的架构选择。结果就是这样一个框架:既有根本上的折衷,又促进了根本性的生产率改进。
    2006年4月3日  
 
Java 理论与实践: 伪 typedef 反模式
将泛型添加到 Java 语言中增加了类型系统的复杂性,提高了许多变量和方法声明的冗长程度。因为没有提供 “typedef” 工具来定义类型的简短名称,所以有些开发人员转而把扩展当作 “穷人的 typedef”,但是收到的决不是好的结果。在这个月的 Java 理论与实践 中,Java 专家 Brian Goetz 解释了这个 “反模式” 的限制。
    2006年3月31日  
 
迁移到 Rational Systems Developer,第 1 部分: Rational Rose 模型
IBM Rational Systems Developer 提供一个基于 Eclipse 的简单易用的系统建模和设计环境。了解如何成功地将您现有的 IBM Rose 模型迁移到 Rational System Developer 上。本教程使用 Rational Systems Developer 所提供的示例 Rose 模型,向您展示如何将 Rational Rose 所生成的现有 UML 模型迁移到新的基于 Eclipse 的 Rational Systems Developer 环境中。
    2006年3月30日  
 
使用 Object Authority Manager 来增强 WebSphere MQ JMS 安全性
本文向您介绍如何使用 WebSphere MQ Object Authority Manager 来实现自定义的授权服务,以便对来自 WebSphere MQ JMS 客户端的连接请求进行身份验证。
    2006年3月27日  
 
Classworking 工具箱: 泛型与 ASM
在本文中,classworking 精神领袖 Dennis Sosnoski 展示了 ASM Java 字节码操纵框架怎样在无需经过 Java classloading 处理的情况下提供对泛型信息的灵活访问。在文中,他还深入探讨了泛型的二进制类表示。
    2006年3月27日  
 
掌握 Ajax,第 3 部分: Ajax 中的高级请求和响应
对于很多 Web 开发人员来说,只需要生成简单的请求并接收简单的响应即可;但是对于希望掌握 Ajax 的开发人员来说,必须要全面理解 HTTP 状态代码、就绪状态和 XMLHttpRequest 对象。在本文中,Brett McLaughlin 将向您介绍各种状态代码,并展示浏览器如何对其进行处理,本文还给出了在 Ajax 中使用的比较少见的 HTTP 请求。
    2006年3月23日  
 
Java 理论和实践: 用软引用阻止内存泄漏
在 Java 理论和实践的前一期文章中,Java 清洁工程师 Brian Goetz 探究了弱引用(weak references),它让您警告垃圾收集器,您想要维护一个对象的引用,而不会阻止该对象被垃圾收集。在本期文章中,他将解释 Reference 对象的另外一种形式,即软引用(soft references),用于帮助垃圾收集器管理内存使用和消除潜在的内存泄漏。
    2006年3月20日  
 
Classworking 工具箱: 泛型与 ASM
Java 5 泛型提供了对于许多 classworking 都非常有用的信息。尽管 Java 反射可用于为载入的类获取泛型信息,但要求类必须载入到 JVM 中,这是一个很大的缺点。在本文中,classworking 精神领袖 Dennis Sosnoski 展示了 ASM Java 字节码操纵框架怎样在无需经过 Java classloading 处理的情况下提供对泛型信息的灵活访问。在文中,他还深入探讨了泛型的二进制类表示。
    2006年3月20日  
 
追逐代码质量: 决心采用 FIT
JUnit 假定测试的所有方面都是开发人员的地盘,而集成测试框架(FIT)在编写需求的业务客户和实现需求的开发人员之间做了协作方面的试验。这是否意味着 FIT 和 JUnit 是竞争关系呢?绝对不是!代码质量完美主义者 Andrew Glover 介绍了如何把 FIT 和 JUnit 两者最好的地方结合在一起,实现更好的团队工作和有效的端到端测试。
    2006年3月20日  
 
使用 AJAX 构建应用程序:学习用 AJAX 构建支持实时验证的 Web 应用程序
异步 JavaScript 和 XML(Asynchronous JavaScript with XML,AJAX)支持动态、异步的 Web 体验,却不需要页面刷新。在本教程中,将跟随一个示例图书订购应用程序的构建,学习构建基于 AJAX 的 Web 应用程序 ―― 拥有实时验证,却不用页面刷新。
    2006年3月18日  
 
为 WebSphere MQ 环境编写用于 MQ Explorer 的 Java 测试
WebSphere MQ V6 中的创新之一是基于 Eclipse 的管理工具,其允许使用 Eclipse 插件来扩展 WebSphere MQ Explorer 工具集。本文向您介绍如何使用简单 Java 和 XML 来编写在 WebSphere MQ 环境中执行自定义验证的插件。
    2006年3月16日  
 
架构性宣言: MIDP 2.0 中的工厂设计模式
这个月将学习有关 MIDP 2.0 的更多知识,同 Mikko 一起观察 Mobile Information Device Profile (MIDP) 的通用连接器框架 —— 工厂设计模式。
    2006年3月13日  
 
将嵌入式应用程序全球化
本文章将介绍嵌入式设备的全球化解决方案的两个方面 —— 国际化和本地化。对于国际化来说,要学习如何设计代码的结构,以支持多种语言。对于本地化来说,要学习如何定制数字、日期、时间以及货币格式。
    2006年3月13日  
 
移动视频: QuickTime for Java API 入门
最新一代的 iPod 媒体播放器在移动视频编程领域开辟了一个新机会 —— 但是如何入门呢?本文介绍将 QuickTime for Java 库,以编程方式为 iPod 媒体播放器创建视频内容时需要这个库。
    2006年3月13日  
 
Apache Derby 简介
在本教程中您可以学习到在 Java 2 Platform, Enterprise Edition (J2EE) 环境使用 Apache Derby 所需要的基本技能,Derby 在该环境中是作为一个数据库嵌入的,例如嵌入在 Apache Geronimo 中。本教程将展示如何在 Geronimo 中嵌入 Derby,以及如何使用 Derby 和 Geronimo 部署一个基于 Web 的电子商务应用程序。还将帮助您熟悉 Derby 的系统工具,这是一组用来简化使用 Derby 进行应用程序开发的工具。
    2006年3月9日  
 
AOP@Work: 使用 AspectJ 5 检验库方面
本文中,作者编了一个假想的故事,故事所讲述的世界离您的现实生活并不遥远,其中有 30 个重大的挑战。通过这个故事,您将学会如何使用及编写库方面,以及如何为相信这一技术和不相信这一技术的人交付解决方案。
    2006年3月7日  
 
追求代码质量: 不要被覆盖报告所迷惑
本文中,作者深入地介绍覆盖报告中数字的真实含义。然后他会提出您可以尽早并经常地利用覆盖来确保代码质量的三个方法。
    2006年3月7日  
 
在 Apache Geronimo 上部署 J2EE 应用程序
学习如何在 Apache Geronimo 上部署 Java 服务器页面(JSP)、servlet 和不同的企业 JavaBean(EJB)。这篇文章包含 Apache Geronimo 需要的部署步骤,这与其他 Java 2 平台企业版(J2EE)容器不太一样。
    2006年3月2日  
 
使用多个 Struts 配置文件
把大的配置文件分成更小的、更具可管理性的部分,可以让 Struts 应用程序更容易组织和维护。在这份教程中,McLaughlin 介绍了如何把 Apache Struts 设置成使用多个配置文件。本教程回顾了 Struts 的配置,逐步介绍了分而治之的配置策略的执行,并介绍了一些额外的配置清理选项。
    2006年2月23日  
 
在 MIDlet 中加入多媒体:Mobile Media API(MMAPI)简介
本教程介绍 Mobile Media API (MMAPI),它扩展了 Java 2 Platform, Micro Edition(J2ME)平台的功能,为资源有限的设备提供了音频、视频和其他基于时间的多媒体支持。
    2006年2月22日  
 
Facelets 非常适合 JSF
试图把 JSF 和 JSP 结合起来就像试图要把脚硬塞进手套一样:可能做得到,但是只是更好的解决办法出现之前的一个权宜之计。在这篇文章中,JSF 的热心支持者 Rick Hightower 介绍了关于 Facelets 他最喜欢的内容:容易的 HTML 样式的模板化和可重用的复合组件。
    2006年2月21日  
 
了解 Tapestry,第 2 部分:规划和开发 Tapestry 应用程序
Tapestry 框架允许 Java™>||CHR(59)||< 和 Web 开发人员开发动态的、轻量级的和富于响应性的基于 servlet 的 Web 应用程序。在本文中,Brett McLaughlin 继续介绍 Tapestry,即如何规划 Tapestry 应用程序的开发,创建有用的、健壮的 Tapestry 组件。
    2006年2月21日  
 
SWT 和 JFace,第 4 部分:简介
SWT 和 JFace 系列的第 4 部分对于前几部分中使用 Java 技术、Eclipse 以及 SWT 和 JFace 库创建应用程序的知识进行扩展。这篇文章介绍了 ToolBar、CoolBar、Tray、SashForm、Link 和其他控件以及其他几种对话框的使用方法。
    2006年2月21日  
 
使用SWT开发WEB应用
Eclipse SWT(标准部件工具包)发展迅速,以其良好的性能和漂亮的外观,已逐渐成为JAVA桌面应用开发的首选控件包。一直以来SWT都是用来开发桌面应用的,那 这个优秀的工具包能否直接用于开发WEB应用呢?如今SmartSWT技术可以让这个想法成为现实,这对SWT来说,无疑又多了一个用武之地。
    2006年2月21日  
 
WID服务组件与JMS系统的交互方法
本文介绍了WID支持的两种预定义的 JMS 绑定方式,并通过一个实例介绍了如何创建一种客户化的JMS 绑定方式来使服务组件与不同类型的 JMS 交互。
    2006年2月20日  
 
使用教学 LiveCD 回到学校
无需经过冗长的安装和配置即可使用 Linux 系统中提供的开源教学工具。本文将介绍 3 个软件包:FreeDUC、Knoppix for Kids 和 Vigyaan,它们使学习环境的设置变得简单易行。
    2006年2月20日  
 
SWT 和 JFace,第 4 部分: 简介
SWT 和 JFace 系列的第 4 部分对于前几部分中使用 Java 技术、Eclipse 以及 SWT 和 JFace 库创建应用程序的知识进行扩展。这篇文章介绍了 ToolBar、CoolBar、Tray、SashForm、Link 和其他控件以及其他几种对话框的使用方法。
    2006年2月20日  
 
Eclipse简史
从1990年代末,IBM开始开发现在为我们所知的Eclipse。这篇文章回顾了Eclipse这一流行的计算平台的产生和逐渐被人们接受的过程,解释了Eclipse在现在的开发工具领域中扮演的角色。
    2006年2月17日  
 
使用 Struts Validator
跟随 Web 开发专家 Brett McLaughlin 一步步安装和配置 Struts Validator 组件。Validator 最初始是在 Struts 之上独立于 Sruts 开发的,现在已经是专业 Struts 应用程序编程的必备组件。使用 Validator,可以验证 Struts ActionForm 中的输入。在本教程中,将学习在不触及现有 Java 代码的情况下,声明性地执行这种验证。
    2006年2月16日  
 
EJB 倡导者:使用 Java EE 实现松耦合的 SOA 应用程序
本文探究了面向服务的体系结构中各种形式的松耦合,并重点介绍什么时候是使用消息驱动 Bean 所提供的异步处理能力的最佳时机。
    2006年2月16日  
 
掌握 Ajax,第 2 部分: 使用 JavaScript 和 Ajax 发出异步请求
多数 Web 应用程序都使用请求/响应模型从服务器上获得完整的 HTML 页面。常常是点击一个按钮,等待服务器响应,再点击另一个按钮,然后再等待,这样一个反复的过程。有了 Ajax 和 XMLHttpRequest 对象,就可以使用不必让用户等待服务器响应的请求/响应模型了。本文中,Brett McLaughlin 介绍了如何创建能够适应不同浏览器的 XMLHttpRequest 实例,建立和发送请求,并响应服务器。
    2006年2月16日  
 
掌握 Ajax,第 2 部分:使用 JavaScript 和 Ajax 进行异步请求
多数 Web 应用程序都使用请求/响应模型从服务器上获得完整的 HTML 页面。常常是点击一个按钮,等待服务器响应,再点击另一个按钮,然后再等待,这样一个反复的过程。有了 Ajax 和 XMLHttpRequest 对象,就可以使用不必让用户等待服务器响应的请求/响应模型了。本文中,Brett McLaughlin 介绍了如何创建能够适应不同浏览器的 XMLHttpRequest 实例,建立和发送请求,并响应服务器。
    2006年2月16日  
 
使用 Amazon Web 服务推动应用程序的开发,第 3 部分:使用 Amazon Simple Queue Service (ASQS) 和 J2ME 构建分布式应用程序
本教程演示了如何通过支持 J2ME 的设备使用 Amazon 简单队列服务 (Amazon Simple Queue Service, ASQS) 。该系列教程的 第 1 部分概述了 Amazon Web 服务 (AWS);第 2 部分介绍 Amazon 简单队列服务。
    2006年2月6日  
 
敏捷软件开发基础:进行有效的客户协作
在上篇文章(《敏捷软件开发基础:持续集成环境的搭建》)中,我们讲述了如何在团队开发中搭建起一个持续集成的环境,从而为有效地实施敏捷开发实践打下基础。其中所提到的工具和方法都是针对开发团队内部开发环境的搭建的。但是,仅仅有了一个持续集成环境还不足以开发出优秀的软件。毕竟,软件开发出来是要为客户提供价值的,要想开发出真正满足客户要求、使客户满意的软件,开发团队和客户之间的有效协作和沟通是必须的。本文就试图关注于这一方面的内容,就如何高效地进行客户协作以及这种有效协作对软件开发的重要影响展开论述。
    2006年2月6日  
 
OPC:使用用户的错误报告提高软件质量
OPC的全称是Orthogonal Problem Classification (正交问题分类)。“Orthogonal”意味着用于分类的指标是不相关的而且无冗余的。OPC是类似于ODC(Orthogonal Defect Classification),并且与ODC相兼容的一种分类方法。 与ODC所不同的是,OPC所针对的数据并不是在软件开发过程中发现的defects,而是由用户所报告的问题(Customer Reported Problems)。
    2006年2月6日  
 
AOP@Work: 用 AspectJ 和 Spring 进行依赖项插入
依赖项插入和面向方面编程是互补的技术,所以想把它们结合在一起使用是很自然的。请跟随作者一起探索两者之间的关系,并了解怎样才能把它们组合在一起,来促进高级的依赖项插入场景。
    2006年1月23日  
 
针对 Java 移动设备的 3D 图形,第 2 部分: M3G 的保留模式
Mobile 3D Graphics API 保留模式允许操作 3D 世界的场景图表示。本文是此系列两部分中的第 2 部分,讨论保留模式这种轻松地管理 3D 对象的方式。
    2006年1月23日  
 
Java5 多线程实践
Java5增加了新的类库并发集java.util.concurrent,该类库为并发程序提供了丰富的API多线程编程在Java 5中更加容易,灵活。本文通过一个网络服务器模型,来实践Java5的多线程编程,该模型中使用了Java5中的线程池,阻塞队列,可重入锁等,还实践了Callable, Future等接口,并使用了Java 5的另外一个新特性泛型。
    2006年1月23日  
 
Java 在 Message Broker 中的应用
本文介绍了如何通过三种方式将java与 Message Broker的开发结合起来,以扩展 Message Broker 的应用范围和前景。
    2006年1月20日  
 
类装入问题解密,第 2 部分: 基本的类装入异常
本文是系列中四篇文章的第二篇,它考察了一般在运行应用程序时抛出的各种类装入异常。这些异常虽然常见,但是 Java 程序员对它们的理解通常不深。本文将逐个提供能够突出这些异常行为特点的详细示例,解释造成异常的原因,并介绍一些可行的解决技术。文章从非常常见的 ClassNotFoundException 开始,逐渐转移到不太常见的异常,例如 ExceptionInInitializerError。
    2006年1月16日  
 
类装入问题解密,第 4 部分: 死锁和约束
本文是本系列中的四篇文章的最后一篇,它研究了类装入器死锁和约束违反。这两类问题不仅难于理解,更难解决。与本系列中以前的文章中一样,我们还是提供示例来演示问题,然后讨论各种解决技术。
    2006年1月16日  
 
类装入问题解密,第 3 部分: 处理更少见的类装入问题
本文是本系列中四篇文章的第三篇,它研究了在 Java 开发过程中的一些更复杂、更少见的类装入问题。造成这些问题的原因通常无法直接从症状得出;所以,解决起来既困难又费时。与本系列以前的文章一样,我们仍然提供示例来演示问题,然后讨论各种解决技术。
    2006年1月16日  
 
基于Eclipse的图形化工具加速BTT5.1应用开发
本文将介绍BTT5.1的图形化工具的功能特色,通过展示各个工具之间的协同工作介绍了如何利用这些图形化工具加速BTT5.1应用开发的全过程。
    2006年1月16日  
 
使用 Ajax 调用 SOAP Web 服务,第 1 部分: 构建 Web 服务客户机
本文介绍如何使用异步 JavaScript 和 XML (Asynchronous JavaScript and XML, Ajax) 设计模式来实现基于 Web 浏览器的 SOAP Web 服务客户机。
    2006年1月16日  
 
使用 JSF 架构进行设计
本文中,作者 Anand Joshi 使用 JSF 框架中的设计模式阐释了 JavaServer Faces (JSF) 体系结构。他讨论了 JSF 体系结构中使用的 GoF 设计模式,以及这些模式在 JSF 框架中的作用。任何对设计模式和 JSF 体系结构有一定了解的人都能从 Anand 详细的介绍中有所收获。
    2006年1月16日  
 
使用正则表达式验证本地化数据
数据验证是编写任何用户界面时经常要处理的一项杂务。Java 语言的正则表达式支持可以使数据验证变得更容易。您可以定义一个正则表达式,用于描述有效数据,然后让 Java 运行时检查它是否匹配。但是有些类型的数据在不同地区有不同的格式。而 ResourceBundle 类让您可以以一种优雅的方式使用特定于地区的数据。本文展示如何结合这两种技术来解决常见的数据输入问题。
    2006年1月16日  
 
WebSphere Integration Developer 6.0 信息路线图
WebSphere Integration Developer 6.0 信息路线图
    2006年1月16日  
 
用 GBO 构建感知文化的应用程序
本文介绍 Global Business Object(GBO),这种 IBM alphaWorks 技术为全球化应用程序提供了对文化敏感的 GUI 元素的一组 Java 库。Shu Bei 和 Zhu Xiao Hui 将帮助您了解 GBO 的体系结构和全球化特性。还详细描述了一个 GBO 组件,从而说明 GBO 如何与基于 Web 的应用程序集成。
    2006年1月12日  
 
Classworking 工具箱: 反射泛型
在本文中,作者分析了如何用反射深入参数化类型的内部,并充分展示了 Java 5 应用程序数据结构的优势。
    2006年1月9日  
 
脱离 Rails 看 Ruby
Ruby on Rails 只是使 Ruby 非常强大的方面之一,就像 EJB 只是 Java 企业平台的一部分一样。本文中,作者揭示了 Java 开发人员可以使用 Ruby 做什么。
    2006年1月9日  
 
在 J2EE Web Application 中快速高效访问 IBM DB2 数据库
IBM DB2 数据库在 J2EE Web Application 中应用日趋广泛,如何快速高效地访问 IBM DB2 数据库成为开发人员关心的话题。本文首先介绍如何快速的利用 IBM DB2 提供的 JDBC 驱动程序通过 Java API 进行数据库接口开发,然后进一步介绍如何在 WebSphere Application Server 6.0 中配置数据库连接池 (Connection Pool),更加高效地访问 IBM DB2 数据库,最后通过一致的代码接口,使得 Web 开发人员更加透明的访问 IBM DB2 数据库。
    2006年1月9日  
 
用 Selenium 自动化验收测试
验收测试(也称功能测试)是用来测试手工任务的功能的,但是手工测试这些任务可能很花时间,并且容易出现人为的错误。在本文中,作者为架构师、开发人员和测试人员展示了如何使用 Selenium 测试工具来自动化验收测试。通过自动化测试,可以节省时间,并消除测试人员所犯的错误。文中还给出了一个例子,以演示如何将 Selenium 应用到现实中使用 Ruby on Rails 和 Ajax 的项目上。
    2006年1月4日  
 
Java 理论与实践: 用弱引用堵住内存泄漏
虽然用 Java 语言编写的程序在理论上是不会出现“内存泄漏”的,但是有时对象在不再作为程序的逻辑状态的一部分之后仍然不被垃圾收集。本月,负责保障应用程序健康的工 程师 Brian Goetz 探讨了无意识的对象保留的常见原因,并展示了如何用弱引用堵住泄漏。
    2006年1月4日  
 
类装入问题解密,第 1 部分: 类装入和调试工具介绍
类装入组件是 Java 虚拟机的基础。虽然开发人员一般对类装入的基础有良好的掌握,但是当问题发生时,在诊断问题和确定解决方案方面可能还要有一定的困难。在这份由四部分组成 的系列中,Lakshmi Shankar 和 Simon Burns 讨论了在 Java 开发中可能遇到的各种类装入问题,解释了它们为什么会发生和如何解决它们。他们提供的见解有助于理解和解决常见的 Java 异常,例如 NoClassDefFoundError 和 ClassNotFoundException,以及更有挑战性的问题,例如类装入器约束违反和死锁。在第 1 部分中,他们详细描述了 Java 类装入的工作方式,讨论了 JVM 中可以帮助诊断类装入问题的工具。
    2006年1月4日  
 
构建更加安全的 Web 应用程序
开发人员总是在与 Web 应用程序中的操作和数据篡改作斗争。本文提供了一个保护这些漏洞的框架。可以嵌入这个框架,它为像 Struts 这样常用的表示框架提供了逻辑安全设计。
    2006年1月4日  
 
为 Domino 构建 JSR 168 门户应用程序
在以前的一篇文章中,我们描述了如何创建一个 DXL 框架,从而通过 Web 操作 Lotus Domino 数据库。现在,我们将注意力转移到如何构建 JSR 168 门户应用程序来作为 Domino 数据库的前端。
    2006年1月4日  
 
掌握 Ajax,第 1 部分: Ajax 入门简介
Ajax 由 HTML、JavaScript、DHTML 和 DOM 组成,这一杰出的方法可以将笨拙的 Web 界面转化成交互性的 Ajax 应用程序。本系列的作者是一位 Ajax 专家,他演示了这些技术如何协同工作 —— 从总体概述到细节的讨论 —— 使高效的 Web 开发成为现实。他还揭开了 Ajax 核心概念的神秘面纱,包括 XMLHttpRequest 对象。
    2006年1月4日  
 
构建更加安全的 Web 应用程序
开发人员总是在与 Web 应用程序中的操作和数据篡改作斗争。本文提供了一个保护这些漏洞的框架。可以嵌入这个框架,它为像 Struts 这样常用的表示框架提供了逻辑安全设计。
    2005年12月29日  
 
视图链接使 Eclipse 应用程序更丰富
丰富的 GUI 中的视图可以以各种方式显示信息,从而改善用户体验。由于 UI 视图的本质,它们需要依赖于其他视图并需要进行交互。Eclipse 简化了链接 UI 视图的工作,并提供了将视图链接应用到非 UI 场景的方式。
    2005年12月29日  
 
迈向 Geronimo CORBA 互操作性
与大型遗留系统无缝地交互、实现对自动化系统的实时控制,常常被认为是应用今天的敏捷 Java 2 Platform, Enterprise Edition (J2EE) 服务器的最后领域。作为开发人员,需要能利用现有的遗留系统投资,并把异构的解决方案结合到系统中。看看 Apache Geronimo 服务器的最新版本(撰写本文时处于 Milestone 5)如何通过成熟健壮的分布式对象标准 Common Object Request Broker Architecture (CORBA),提供了这类系统的互操作性。
    2005年12月22日  
 
AOP@Work: 对方面进行单元测试
AOP 使编写特定于应用程序的横切关注点测试比任何时候都要容易了。要了解其原因以及如何实现,请听作者介绍测试面向方面的代码所具有的好处,并展示在 AspectJ 中测试横切行为的样式。
    2005年12月20日  
 
蓝牙技术,第 1 部分: 使用 JSR-82 和 OBEX 进行文件传输
熟悉用来控制蓝牙设备的 Java™>||CHR(59)||< 语言库,并学习如何用 JSR-82 API 和 Object Exchange 在客户机和服务器之间传输文件。
    2005年12月15日  
 
蓝牙技术,第 1 部分: 使用 JSR-82 和 OBEX 进行文件传输
熟悉用来控制蓝牙设备的 Java 语言库,并学习如何用 JSR-82 API 和 Object Exchange 在客户机和服务器之间传输文件。
    2005年12月15日  
 
将容器管理的持久性 Bean 用于面向服务的体系结构
本文将介绍如何使用 IBM WebSphere Process Server 对容器管理的持久性 (CMP) Bean 的连接和持久性逻辑加以控制,使其可以存储在非关系数据库中。您将了解各种受支持的数据访问模式,并将了解多个基本使用场景,其中包含相关的示例。
    2005年12月15日  
 
AOP@Work: 用 AspectJ 进行性能监视,第 2 部分
本文中,作者展示了如何在 Glassbox Inspector 中添加企业监视功能,包括监视多个应用程序、Web 服务和 Web 应用程序框架。他还展示了如何跟踪应用程序错误并在监视代码中包含它们,并展示了如何以编程方式部署和控制这个监视基础架构。
    2005年12月15日  
 
蓝牙技术,第 2 部分: 创建蓝牙音乐商店
对象交换(Object Exchange,OBEX)是在两个蓝牙设备之间发送和接收文件的首选方法。这个系列的 第 1 部分 介绍了 OBEX 的语义,解释了如何创建简单的 OBEX 服务器应用程序 FileServer.java。 在这篇文章中,将学习如何创建简单的 OBEX 客户机应用程序 FileClient.java,它能把文件传输到服务器应用程序。还将学习如何修改 OBEX 客户机应用程序,把它变成一个蓝牙音乐商店。
    2005年12月15日  
 
蓝牙技术,第 2 部分: 创建蓝牙音乐商店
对象交换(Object Exchange,OBEX)是在两个蓝牙设备之间发送和接收文件的首选方法。这个系列的 “第 1 部分” 介绍了 OBEX 的语义,解释了如何创建简单的 OBEX 服务器应用程序 FileServer.java。 在这篇文章中,将学习如何创建简单的 OBEX 客户机应用程序 FileClient.java,它能把文件传输到服务器应用程序。还将学习如何修改 OBEX 客户机应用程序,把它变成一个蓝牙音乐商店。
    2005年12月15日  
 
架构宣言: MDA 实战
在这一期文章中,把已经学到的关于 MDA 的知识应用于实践,了解如何使用开放源码的模型驱动架构(MDA)工具来简化 Spring-Hibernate 的开发。
    2005年12月13日  
 
用AspectJ构造方面库
在编程语言发展史中,可重用库的引入很大得提高了编写程序的准确性和快速性,提高了软件重用能力,面向过程的编程和面向对象的编程都对可重用库提供了支持,那么面向方面的编程也不例外。本文介绍了方面库的概念,以及如何使用AspectJ构造和使用方面库。
    2005年12月13日  
 
使用WebSphere Adapter Toolkit开发符合J2EE标准的资源适配器,第 3 部分
在商业整合开发中,J2EE 应用程序经常需要与企业信息系统(EIS)交互,以获得所需的资源。J2EE Connector Architecture (JCA) 1.5 标准定义了资源适配器(Resource Adapter)组件规范,使 J2EE 应用程序可以通过标准接口和 EIS 系统交互。IBM 提供了工具软件 WebSphere Adapter Toolkit 6.0 (WAT)以及 Adapter Foundation Classes(AFC) 基础类库来帮助开发者快速的构建符合 JCA 标准的资源适配器。本文将通过具体的实例(WebSphere Demo FTP Adapter)来说明整个开发流程。
    2005年12月13日  
 
使用WebSphere Adapter Toolkit开发符合J2EE标准的资源适配器,第 2 部分
在商业整合开发中,J2EE 应用程序经常需要与企业信息系统(EIS)交互,以获得所需的资源。J2EE Connector Architecture (JCA) 1.5 标准定义了资源适配器(Resource Adapter)组件规范,使 J2EE 应用程序可以通过标准接口和 EIS 系统交互。IBM 提供了工具软件 WebSphere Adapter Toolkit 6.0 (WAT)以及 Adapter Foundation Classes(AFC) 基础类库来帮助开发者快速的构建符合 JCA 标准的资源适配器。本文将通过具体的实例(WebSphere Demo FTP Adapter)来说明整个开发流程。
    2005年12月13日  
 
使用WebSphere Adapter Toolkit开发符合J2EE标准的资源适配器,第 1 部分
在商业整合开发中,J2EE 应用程序经常需要与企业信息系统(EIS)交互,以获得所需的资源。J2EE Connector Architecture (JCA) 1.5 标准定义了资源适配器(Resource Adapter)组件规范,使 J2EE 应用程序可以通过标准接口和 EIS 系统交互。IBM 提供了工具软件 WebSphere Adapter Toolkit 6.0 (WAT)以及 Adapter Foundation Classes(AFC) 基础类库来帮助开发者快速的构建符合 JCA 标准的资源适配器。本文将通过具体的实例(WebSphere Demo FTP Adapter)来说明整个开发流程。
    2005年12月13日  
 
Web 的未来是语义的
作者在向您介绍组织如何利用基于存在论开发的同时,还探索了语义 Web 技术的基础。语义 Web 有助于有效的知识管理和有成本效益的产品生命周期自动化,实现更快的开发和集成过程。
    2005年12月13日  
 
如何在 WebSphere 中解决 jar 包冲突
Jar包冲突问题是在大型Java软件开发中经常遇到的问题,系统开发人员经常会为解决类似的问题耗费大量的时间进行调试和测试,本文根据各种际情况,结合WebSphere中类加载器,讨论了几种解决jar包冲突问题的办法,并给出了具体实现的步骤及源代码。
    2005年12月13日  
 
在 Apache Geronimo 应用程序中实现和部署 Web 服务
在最近三年中,Web 服务浪潮席卷全世界。现在,无论您的企业应用程序是部署在小型家庭商店中,还是跨多个领域的企业基础设施的一部分,无论应用程序是否与他人协作,它都必须支持 Web 服务。在本文中,IBM Advanced Technology Solutions 团队将全面概述 Apache Geronimo 应用服务器的 Web 服务特性,并演示如何使用这些特性来创建支持 Web 服务的企业应用程序。然后使用一个虚拟银行例子来解释如何在 Geronimo 应用程序中实现和部署 Web 服务。
    2005年12月8日  
 
Eclipse V3.1 中的 Java 泛型支持
Java 5 提供泛型支持,泛型支持是开发人员多年以来所要求的特性。它代表了 Java 编程语言一次重要的升级。像泛型这么复杂的技术,不仅对工具供应商也对开发人员带来了挑战。本文着重介绍 Eclipse 如何应对泛型挑战以及泛型给 Java 语言带来的变化,展示了如何在 Eclipse 中充分利用泛型,包括对于快速帮助、快速修复、重构和项目参数选择的支持。此外,还展示了完全泛型化语言的一些微妙而重要的方面。
    2005年12月8日  
 
用 Struts 实现动态单选按钮
在这篇文章中,我将介绍通过嵌套 Struts 标记创建单选按钮组。然后我用一个特定的表单 bean 指向这个标记并对保存单选按钮值的 String[] 数组进行迭代,把相同的 name 属性分配给每个 value 属性。
    2005年12月5日  
 
实战 Groovy: 美妙的操作符
Java 取消了操作符重载,但是新兴的 Groovy 又使之浮出水面。在实战 Groovy 定期连载的“Groovy 每日应用”的最后一期中,请随着 Andrew Glover 介绍的三类可重载操作符,重新寻回自己多年来失去的东西。
    2005年12月5日  
 
持续测试:将错误扼杀在摇篮之中
Continuous Testing是一个能进一步提高测试驱动开发有效性的Eclipse插件。当开发人员在Eclipse修改并保存了程序源代码时,Continuous Testing利用CPU的空闲时间执行选定的测试,并将测试结果以warning的形势显示在Eclipse的Problem View中。
    2005年12月5日  
 
Geronimo J2EE Web 服务,第 2 部分: 消息处理程序、附件、安全和注册中心访问
了解如何向传统 J2EE 应用程序添加消息处理程序、附件支持、Web 服务安全、自定义异常和统一描述、发现与集成(UDDI)注册中心访问。本系列教程包括两部分,这是第 2 部分,通过扩展部署在 Apache Geronimo 上的 BookShop 应用程序介绍了这些新的内容。
    2005年11月28日  
 
Struts 的动态复选框
Struts Recipes 的合著者 Danilo Gurovich 从 George Franciscus 停止的地方开始,介绍了易于使用的创建动态选择复选框的 Struts 诀窍。
    2005年11月28日  
 
使用 Geronimo 实现功能强大的浏览器检测和定制 JSP 标记
本文将介绍如何利用 Apache Geronimo 和 Jetty 的优点来创建功能强大的浏览器和操作系统检测机制。除了开放源码的 Geronimo 应用服务器之外,本教程还向您介绍如何使用免费的 JavaScript 程序在客户端进行浏览器和操作系统检测。
    2005年11月24日  
 
在WebSphere Application Server 5中通过Access Intent 进行并发控制
本文将首先讨论一些并发控制中常见的问题,考虑到CMP实体Bean的复杂性,而大家对JDBC则非常熟悉,我们将首先从JDBC入手,介绍JDBC提供的隔离级别以及底层数据库提供的锁机制,并讨论一些使用隔离级别和锁时常见的问题。在了解了JDBC中的并发控制后,我们将深入讨论WebSphere Application Server中提供的并发控制策略以及如何正确使用这些并发控制策略。
    2005年11月24日  
 
使用 Rational Functional Tester 给开发人员带来的好处
如果您做了一些变更并四处移动了一些类,那么您如何能够确定您没有破坏任何内容呢?如果您利用 IBM Rational Functional Tester 记录测试用例,那么您可以在通常所花费的一小部分时间内重新执行整套的回归测试。
    2005年11月24日  
 
Geronimo 应用服务器中的事务
事务是每个 Java 2 平台企业版 (J2EE) 应用程序不可或缺的一部分,您访问数据库的时候经常要用到事务。事实上,如果发生不可预料的错误,事务对于维护数据完整性是至关重要的。Java 开发人员和定期撰稿人 Neal Sanche 描述了 J2EE 事务的实质以及如何在 Apache Geronimo 应用服务器中使用它们。为了演示事务,您将使用一个简单的示例程序 Transaction Demo,它具有一个简单菜单允许您与一个关于星星名称的数据库进行交互。
    2005年11月22日  
 
AOP在大规模软件开发项目中应用的尝试与思考
本文的写作源于一个真实的大型软件开发项目,我们努力尝试在这个项目中推广应用AOP。在此我们将对曾经面临过的一些实际问题与困难进行分析,试图引发关于面向方面软件开发(AOSD)的一些更深层次的思考。本文的作者将站在开发者的角度做出客观的判断,既不是AOP的狂热鼓吹者,同样也不是AOP反对阵营的一员。因此可以视作来自Java开发者对AOP技术应用的客观分析和建设性意见。
    2005年11月17日  
 
ODC(Orthogonal Defect Classification)简介
Defect分析是软件开发和测试中一个重要的环节,ODC介绍了一种不同于大家常用的非常有效的defect分类及分析方法。这篇文章简单的向大家介绍了什么是ODC,以及如何在项目和产品开发中使用ODC来改进开发测试流程从而增强产品质量。希望读者具有基本的软件开发和测试经验,并且了解defect分析的基本方法。
    2005年11月17日  
 
HTTP代理如何正确处理Cookie
大多数的 Web 应用程序都要求维护某种会话状态,如用户购物车的内容。这种会话状态的保持很多情况下需要借助于Cookie或者Session的帮助。本文结合在线页面翻译 (Machine Translation System)项目中对于Cookie的处理方法,探讨一下如何在HTTP应用代理中正确处理Cookie的传递和管理问题。
    2005年11月14日  
 
SWT 和 JFace,第 3 部分:简介
SWT 和 JFace 系列的第 3 部分扩展了我们所学的关于使用 Java 技术、Eclipse 以及 SWT 和 JFace 库创建应用程序的知识。这一期将向您展示如何使用表树(tabular tree)、画布、样式文本、滑块、微调控制项(spinner)、刻度和其他控件,以及如何使用一些堆栈布局。
    2005年11月14日  
 
使用 IBM Rational Application Developer 6.0 开发 Faces JSR 168 portlet 来进行自主计算
本教程指导您使用 IBM Rational Application Developer 开发一个简单的 JSR 168 portlet,并且部署到 Integrated Solutions Console。讲解如何使用 Java Server Faces 服务器端 Data Table 组件和其他小部件来创建 JSR 168 portlet。
    2005年11月10日  
 
Java 理论与实践: Mustang 中的同步优化
在上一期的 Java 理论与实践中,专栏作家 Brian Goetz 研究了 Escape 分析,这是许多 JVM 在相当一段时间内已经放入日程表的一项优化,也是预计会在 Mustang (Java SE 6)发行版的 HotSpot 中出现的优化。这个月,Brian 将介绍一些为 Mustang 安排的同步优化
    2005年11月8日  
 
揭示你的代码中的缺陷,第一部分:代码检验
本教程将教你学会在Rational Software Architect中利用代码检验工具以寻找你的代码中的设计问题。这个教程用一个具有代表性的应用例子来告诉你如何使用代码检验规则引擎来指出低水平和高水平的编码和设计结果,这其中特别包括了对企业级 Java 应用。
    2005年11月7日  
 
Spring 系列,第 4 部分: Spring JMS 消息处理 1-2-3
快速了解使用 Spring JMS 框架和 IBM WebSphere MQ 5.3 进行 JMS 消息处理的基础知识。
    2005年11月7日  
 
轻量级开发的成功秘诀,第 7 部分:Java 替代方案
尽管 Java 编程语言功能强大,但对于轻量级开发,它有着严重的局限性。对于某些问题,其他的编程语言(比如 Ruby)也许会改善生产效率。本文向您展示,在一种程序语言中,什么对生产效率来说是重要的。
    2005年11月7日  
 
XMS 简介――IBM 消息服务 API
XMS(正式名称为“面向 C/C++ 和 .NET 程序的 IBM 消息服务客户机”)收集了最新的消息传递客户机和 API(这些 API 分别是 JMS 的 C、C++ 和 C# 的实现)。它们将 JMS 的优秀功能引入了非 Java 环境之中。JMS 是一套标准的、抽象的消息传递 API,用于“发布/订阅”消息传递、“点到点”消息传递和外部管理对象。XMS 通过将 WebSphere 消息传递扩展到以 .NET(或 C 和 C++)作为客户机平台的用户,或扩展到希望使用消息传递集成旧有 C++ 应用程序和最新 J2EE 应用程序的用户,从而实现了多种环境内消息传递的集成。
    2005年11月7日  
 
建立一个 Derby 日历,第 1 部分: 理解 JDBC
在这个共有三部分的系列教程中,第 1 部分将用 Java 语言和 Apache Derby 数据库建立一个日历和提醒器应用程序。本教程开始向您展示如何安装数据库并通过 Java Database Connectivity(JDBC)探索与它的交互。为把 Derby 结合到您的应用程序,第 2 部分和第 3 部分将探讨不同的选择,以及当我们从单用户系统迁移到多用户系统时 Derby 的事务处理能力。最后,我们将迁移到一个拥有 Web 界面的多模式系统。
    2005年11月3日  
 
使用 Spring 更好地处理 Struts 动作
Struts Recipes 的合著者 George Franciscus 将介绍另一个重大的 Struts 整合窍门 ―― 这次是将 Struts 应用程序导入 Spring 框架。请跟随 George,他将向您展示如何改变 Struts 动作,使得管理 Struts 动作就像管理 Spring beans 那样。结果是一个增强的 web 框架,这个框架可以方便地利用 Spring AOP 的优势。
    2005年11月3日  
 
Classworking 工具箱: 源代码生成与字节码生成的结合
JiBX 1.0 采用类处理技术对类编译后生成的字节码进行了增强并且支持直接生成新类。字节码生成比工作在源代码级具有一些显著的优势,然而,有时它却在生成和调试应用 程序时造成一些麻烦。即使不考虑方便的问题,一些开发者也是除了“源代码”之外什么也不信任。JiBx 2.0 的首席开发人员 Dennis Sosnoski 要使 JiBX 2.0 同时支持字节码生成技术和源代码生成技术。在这篇文章中,他讨论了源代码生成技术和字节码生成技术的不同之处并且对于如何协调二者给出了自己的看法。
    2005年11月3日  
 
用Rational Functional Tester 创建随需应变的自动测试脚本
IBM Rational Functional Tester是由IBM推出的针对Java,.Net和Web应用程序的自动化测试工具,拥有功能强大的编辑器并支持多种脚本语言,还集成了ScriptAssure 技术、模式匹配功能及数据驱动,以增强测试脚本的灵活性。借助这一工具,测试人员可以轻松地录制或编写脚本来进行自动化测试,极大地提高了测试效率。
    2005年11月3日  
 
在Eclipse中创建新的重构功能
对重构的强大支持是软件开发人员喜爱Eclipse的一个最为重要的原因。而Eclipse还有一个至少和重构不相上下的优点,那就是其近乎无懈可击的可扩展性。这两者的结合意味着我们可以根据自己的需要来创建展新的重构功能。
    2005年11月1日  
 
改进的应用程序开发,第五部分:用 Rational 工具测试并验证
测试是任何开发过程中的重要部分,要执行足够的测试,您不仅需要识别缺陷,还要跟踪这些缺陷、定位及他们在开发过程的每个迭代过程中所影响的组件。在本教 程中,您将了解到 IBM Rational 软件测试产品和其他用于开发过程的工具,如 IBM Rational RequisitePro、IBM Rational Application Developer for WebSphere Software 和 IBM Rational ClearQuest。
    2005年10月27日  
 
JDO技术分析及企业应用研究
JDO(Java Data Object)是JCP中较早开发出来并形成规范的JSR12,该规范对数据的持久化存储进行了一系列规范,并已有众多的商业产品和开源项目是基于该规范。作为一种需要引起重视的技术,研究并探讨其企业应用可行性是十分重要的。
    2005年10月27日  
 
改进的应用程序开发,第四部分:构建 Web 客户端
在本教程中,您回到可信赖的拍卖应用程序,并添加 Web 客户机。利用 IBM Rational Application Developer 中的强大特性,您不用书写任何代码就可以开发一个会话(session)bean 外观。一旦您的会话 bean 构建好,您就可以利用 JavaServer Faces 技术,使用 Rational Application Developer 直观的 Web designer 创建能够访问会话 bean 的页面。
    2005年10月26日  
 
面向 Java 开发人员的 Ajax: Ajax 的 Java 对象序列化
如果您正在使用异步 JavaScript 和 XML(Ajax)进行 Java Web 开发,那么您最关心的问题可能就是把数据从服务器传递给客户机。在 面向 Java 开发人员的 Ajax 系列的第二篇文章中,Philip McCarthy 介绍了 Java 对象序列化的五种方式,并提供了选择最适合应用程序的数据格式和技术所需要的全部信息。
    2005年10月24日  
 
面向 Java 开发人员的 Ajax: 构建动态的 Java 应用程序
在这个系列中,作者 Philip McCarthy 介绍了一种创建动态应用程序体验的开创性方式。Ajax(异步 JavaScript 和 XML)是一种编程技术,它允许为基于 Java 的 Web 应用程序把 Java 技术、XML 和 JavaScript 组合起来,从而打破页面重载的范式。
    2005年10月24日  
 
Java 理论与实践: 再谈 Urban 性能传言
Java 语言遭到许多性能方面的攻击。虽然有些攻击可能是名符其实的,但是看看公告板和新闻组上关于这一主题的贴子,可以发现,对于 Java 虚拟机(JVM)实际的工作方式存在许多误解。在本月的 Java 理论与实践 中,Brian Goetz 驳斥了反复重复的有关 JVM 分配慢的传言。
    2005年10月24日  
 
实战 Groovy: 关于 MOP 和迷你语言
将耳朵贴到地上仔细听 ―― MOP 正在前进!了解一下元对象协议(Meta Object Protocol,MOP)吧,这是一种将应用程序、语言和应用程序构建为 语言的翻新方法。
    2005年10月20日  
 
使用 TestNG 的新特性管理实际项目中的大量单元测试
̦随着项目的成长,单元测试的数量会迅猛增长。这就带来不少问题。首先数量巨大的单元测试难于管理,运行一遍耗时巨大。 其次,有时某个微小改动可能只需要运行某个测试文件中的部分单元测试就可以,这时重新运行全部测试用例就没有必要了。 其三,大多数项目需要用到多线程特性,为使用了多线程特性的代码写测试用例相当麻烦且容易出错。 本文将利用 TestNG 提供的新特性,解决以上提到的问题。
    2005年10月19日  
 
轻量级开发的成功秘诀,第 6 部分:持久性策略
在任何 Java 技术应用程序中,持久性框架都是一个极其重要的部分。作出选择是令人头疼的一件事。因此,开发人员常常选择流行的框架,不论是企业级 JavaBeans 还是 Hibernate。通常,您不需要完整的对象关系映射层。即使您确实需要,其他的持久方案都有提供。Hibernate 是免费的,而且功能丰富。Kodo JDO 有优秀的管理和映射支持。iBATIS 是一种混合解决方案,它把对象映射到 SQL 查询的结果,而非表格。甚至 JDO 也有它的地位。本文讨论各种方案并给您一个选择最佳方案的方法。
    2005年10月17日  
 
Struts 与 Velocity 的集成
Struts 大师 George Franciscus 介绍如何把 Velocity 模板引擎集成进 Struts 应用程序。
    2005年10月17日  
 
JUnit 4 抢先看
JUnit 是 Java 语言事实上的 标准单元测试库。JUnit 4 是该库三年以来最具里程碑意义的一次发布。它的新特性主要是通过采用 Java 5 中的标记(annotation)而不是利用子类、反射或命名机制来识别测试,从而简化测试。在本文中,执着的代码测试人员 Elliotte Harold 以 JUnit 4 为例,详细介绍了如何在自己的工作中使用这个新框架。注意,本文假设读者具有 JUnit 的使用经验。
    2005年10月14日  
 
Spring 系列,第 3 部分: 进入 Spring MVC
在 Naveen Balani 的 Spring 系列的第 3 部分中,学习如何用 Spring 框架开发基于 MVC 的 应用程序。
    2005年10月14日  
 
Geronimo 中的 J2EE Web 服务,第 1 部分
了解如何为部署到 Apache Geronimo 应用服务器上的传统的基于 Java 2 Platform, Enterprise Edition (J2EE) 的应用程序增加 Web 服务。通过扩展 BookShop 示例应用程序 ―― 它让客户使用 Web 浏览器按类别在数据库中查找图书,了解为 J2EE 1.4 平台开发支持 Web 服务的应用程序需要进行哪些配置。通过在 BookShop 中结合两种兼容 J2EE 的 Web 服务,我们实现了一种扩展的体系结构,可同时解决服务消费者和服务提供者两种应用场景。
    2005年10月13日  
 
Apache Geronimo 揭密
从有多年 IBM WebSphere Application Server(以及其他商业 J2EE 应用服务器)使用经验的专家的角度来探索 Apache Geronimo 应用服务器。本教程通过比较 Geronimo 与 WebSphere Application Server 的特性和能力,探讨了 Geronimo 的优缺点,并提出如何在概念上架构 WebSphere Application Server 和 Geronimo 之间应用程序的共享。
    2005年10月13日  
 
改进的应用程序开发,第二部分:利用 Rational Application Developer 开发解决方案
在本教程中,您将实现拍卖应用程序,该应用程序是在整个 IBM 产品家族中使用到的实例。该实例是一个基于 Web 的应用程序,它利用 Java 2 Platform,Enterprise Edition(J2EE)技术来生成类似于 eBay、Yahoo、Amazon 和其他拍卖站点及系统的拍卖系统。
    2005年10月13日  
 
JDNC 简化了 Java UI 开发
在这篇实用教程中,Java UI 开发员 Jack Li Guojie 介绍了如何用 JDNC Swing Extensions 在不对现有代码做过多改变的情况下改进 Java UI。还将介绍如何通过利用 JDNC 数据绑定和 DataSet API 简化以数据为中心的 Java UI 开发。
    2005年10月10日  
 
AOP@Work: 用 AspectJ 进行性能监视,第 1 部分
随着 Ron Bodkin 介绍如何把 AspectJ 和 JMX 组合成灵活而且模块化的性能监视方式,就可以对散乱而纠缠不清的代码说再见了。在这篇文章(共分两部分)的第一部分中,Ron 用来自开放源码项目 Glassbox Inspector 的代码和想法帮助您构建一个监视系统,它提供的相关信息可以识别出特定问题,但是在生产环境中使用的开销却足够低。
    2005年10月10日  
 
改进的应用程序开发, 第一部分:整理应用软件需求
此五部系列的第一部分说明了如何使用Rational RequisitePro来管理和组织一个新项目的需求规格。然后,在你开发出你的需求的统一列表之后,此教程将说明如何使用Rational Software Modeler 基于这些需求对你的应用软件建模。
    2005年9月29日  
 
Spring 系列,第 2 部分: 当 Hibernate 遇上 Spring
Naveen Balani 继续他的 Spring 系列,介绍把 Hibernate 事务与 Spring 面向方面编程(AOP)集成的知识。结果是一个可以依靠的持久性框架。
    2005年9月29日  
 
为表格显示定义自定义标记
在同一个位置上创建更易于管理的 Web 应用程序和更新代码。当为显示在多个位置上的表格定义自定义标记时,Tag 类反映了任何在所有 JSP 页上出现的改变。本文将介绍用不同的 HTML 控件(包括 href、选择框、单选按钮、文本框和组合框)创建这样的灵活标记。
    2005年9月26日  
 
Classworking 工具箱: 深入 JiBX 代码生成内部
JiBX 框架构建在类处理技术之上,用于在 Java 对象和 XML 之间进行快速而灵活的转换。但是生成正确的、经得起检验的字节码并不容易。首席开发人员 Dennis Sosnoski 在开发 1.0 产品发行版的过程中,经历了一些痛苦的类处理体验。在这篇文章中,他分享了自己的感受,讨论了用于代码生成的内部结构以及确保生成的代码符合 JVM 规则所采取的步骤。
    2005年9月26日  
 
AOP 介绍
本教程介绍 AOP 及其基本概念。AOP 及其相关的工具使您可以将基本横切关注点(如日志记录和安全)的代码,与程序的核心应用逻辑相分离。AOP 通过使代码更具有可读性、更不容易出错以及更容易设计和维护,改善了代码质量。
    2005年9月22日  
 
实战 Groovy: 用 curry 过的闭包进行函数式编程
本文中,作者介绍了如何对标准的闭包(例如闭包复合和 Visitor 设计模式)进行 curry 处理。curry() 方法是由 Haskell Curry 发明的,在 JSR 标准发布之前就已经在 Groovy 语言中了。
    2005年9月21日  
 
专家提示: Scott Johnson :做一个快乐一生的程序员
快乐的程序员知道自己的擅长之处,也知道在那个他/她期望的有些像天上掉馅饼一样的工作中到底涉及到什么。受一篇关于普通程序员急于学习编程实践的文章的启发,作者就此与我们分享了他的观点。
    2005年9月21日  
 
LogMinner��一种基于EMF和STAF的日志分析工具
大型软件在运行过程中会产生大量的各种各样的日志信息,测试人员常常要分析大量的冗长的日志,而这些日志又往往分布在不同位置的不同平台的主机的不同目录中,使得测试中的日志分析工作繁复、乏味,为了方便测试人员快速分析日志,本文的作者开发了一个基于EMF和STAF技术的日志分析工具��LogMinner。
    2005年9月21日  
 
介绍 Java Content Repository API
在本文中,通过设计一个简单的类 Wikipedia 的综合后端,您将使用 JSR-170 的开放源码的 Apache Jackrabbit 实现来探讨这个期望的框架提供的特性。
    2005年9月17日  
 
Java 理论与实践: 用动态代理进行修饰
动态代理工具 是 java.lang.reflect 包的一部分,在 JDK 1.3 版本中添加到 JDK,它允许程序创建 代理对象。本文中,作者介绍了几个用于动态代理的应用程序。
    2005年9月17日  
 
开发 Eclipse 自定义控件
现在基于 Eclipse 的应用越来越多,很多桌面应用都是用 Eclipse 开发的。Eclipse 提供了一套 SWT/JFACE 的控件库,使得人们开发界面应用极大的方便。但是,SWT/JFACE 的控件库毕竟有限,在应用开发是我们不可避免地要自己开发一些自定义的控件。本文通过开发一个颜色列表控件的实例介绍了 Eclipse 自定义控件开发中所要用到的技术。
    2005年9月12日  
 
国际化过程中的障碍
Java 语言对多语言和多国家环境的支持是很强大的,但是也并不简单。如果您不小心,三个关键领域的错误就有可能出现在您的代码中,使得代码成为以美国为中心的。本文将识别这些国际化陷阱 (gotchas),并给出一些有助于您的应用程序更加全球可用的技术。
    2005年9月12日  
 
介绍 JDesktop Integration Components
本文将介绍 JDesktop Integration Components (JDIC),这是一个开源的项目,目的是构建消除本机应用程序和 Java 等价物之间差距的组件。JDIC 单一的 Java API 允许应用程序接进本机操作系统特性,同时保持跨平台支持。
    2005年9月8日  
 
应用服务器内存泄露问题诊断一例
在中间件应用服务器的整体调优中,有关于等待队列、执行线程,EJB池以及数据库连接池和Statement Cache方面的调优,这些都属于系统参数方面的调优,本文主要从另外一个角度,也就是从应用的角度来解决中间件应用服务器的内存泄露问题,从这个角度来提高系统的稳定性和性能。
    2005年9月6日  
 
有效地记录日志可以简化企业的开发过程
在本文中,顾问 Charles Chan 将向您介绍一些最好的实践,从而帮助您从项目一开始就编写有用的日志代码。
    2005年9月5日  
 
Eclipse 3.1 中使用TestNG:基于注释的单元测试框架
这篇文章将为大家介绍TestNG这个新的测试框架的特性,以及TestNG优于Junit3.X的地方。
    2005年9月1日  
 
Classworking 工具箱: 注释与配置文件
注释允许您将元数据指定为源代码的一部分。使用这个特性,可以将工具指令嵌入代码,而不是创建单独的配置文件(需要与源代码同时进行维护)。
    2005年8月29日  
 
AOP@Work: 用新的 AJDT 本本简化 AOP 开发
AJDT Eclipse 技术项负责人 Matt Chapman 将带您查看 AJDT 1.2 和 AJDT 1.3,它们分别是针对 Eclipse 3.0 和 Eclipse 3.1 的 AspectJ 开发工具的最新版本。这些版本的主要重点是将 AspectJ 与 Eclipse 平台更紧密地集成在一起,并为 AspectJ 开发人员提供更多 Java? 开发人员使用 Eclipse 时可以得到的高级工具支持。
    2005年8月29日  
 
实战 Groovy: Groovy 的腾飞
随着 Groovy JSR-1(及其后续发行版本)的发布,Groovy 语法的变化已经规范化 ―― 这意味着如果以前没有对此加以注意,那么现在是开始注意它的时候了。这个月,Groovy 的常驻实践者 Andrew Glover 将介绍 Groovy 语法最重要的变化,以及在经典 Groovy 中找不到的一个方便特性。
    2005年8月22日  
 
Java 理论与实践: 做个好的(事件)侦听器
观察者模式在 Swing 开发中很常见,在 GUI 应用程序以外的场景中,它对于消除组件的耦合性也非常有用。但是,仍然存在一些侦听器登记和调用方面的常见缺陷。在 Java 理论与实践 的这一期中,Java 专家 Brian Goetz 就如何做一个好的侦听器,以及如何对您的侦听器也友好,提供了一些感觉很好的建议。
    2005年8月22日  
 
驯服 Tiger: 集合框架
您可能已经非常熟悉新的 Java? 5 语言的泛型支持、并发工具库以及它们对集合框架的影响,但是这些并不是 Tiger 中集合框架的惟一变化。这个月,John Zukowski 将介绍另外几项增强,其中包括新的集合类型,以及现有类和接口的附加特性。
    2005年8月22日  
 
openMDX - 开源MDA平台
MDA的概念来自于OMG的规范,按照它的说法,MDA提供了一种开放的、供应商中立的 方法以应对商业与技术变化的挑战。实际上,在真正应用这种技术的时候,开发人员 面临着更大的挑战,就是需要在面向对象(OO)开发的基础上加入以模型为中心的思想。
    2005年8月22日  
 
Spring 系列: Spring 框架简介
在这由三部分组成的介绍 Spring 框架的系列文章的第一期中,将开始学习如何用 Spring 技术构建轻量级的、强壮的 J2EE 应用程序。developerWorks 的定期投稿人 Naveen Balani 通过介绍 Spring 框架开始了他由三部分组成的 Spring 系列,其中还将介绍 Spring 面向方面的编程(AOP)和控制反转(IOC)容器。
    2005年8月18日  
 
怀疑论者的 JSF: JSF 组件开发
在四部分的 怀疑论者的 JSF 系列的最后一期中,Rick Hightower 介绍了省时运动,它可以一次或永远地说服您:JSF 组件开发要比您想像的更容易。
    2005年8月18日  
 
使用模板构建 Eclipse 插件
您可能知道,Eclipse 是一个适合构建其他工具的框架。您可能还知道,您可以为 Eclipse 构建自己的插件。但是您知道吗,Eclipse 还附带了 7 个插件模板,您可以用这些插件模板作为起始点来构建插件。本教程从头至尾地介绍了使用 Hello World 模板构建一个插件的过程,然后介绍其他一些模板。
    2005年8月11日  
 
AOP@Work: 介绍 AspectJ 5
目前,AspectJ 5 处在它的第二个里程碑版本,AspectJ 5 是 Java? 平台上面向方面编程前进的一大步。AspectJ 5 主要的重点是对 Java 5 中引入的新 Java 语言特性(包括注释和泛型)提供支持。另外,AspectJ 5 还包含没有捆绑到 Java 5 的新特性,例如编写方面使用的基于注释的风格、改进的装入时织入以及新的方面实例化模型。现在请随这个项目的首席开发人员 Adrian Colyer 抢鲜了解 AspectJ 5,他将介绍 AspectJ 5 语言和包含 AspectJ 编译器及相关工具的版本。
    2005年8月11日  
 
Ruby on Rails 和 J2EE:两者能否共存?
Ruby on Rails 是一个相对较新的 Web 应用程序框架,构建在 Ruby 语言之上。它被宣传为现有企业框架的一个替代,而它的目标,简而言之,就是让生活,至少是 Web 开发方面的生活,变得更轻松。在本文中,Aaron Rustad 将对 Rails 和传统的 J2EE 框架在架构上的一些关键特性进行比较。
    2005年8月11日  
 
在Eclipse 3.1中体验J2SE 5.0的新特性 第 3 部分 :范型
本系列将介绍J2SE 5.0中三个比较重要的特性: 枚举类型, 注释类型, 范型, 并在此基础上介绍在如何在Eclipse 3.1开发环境中开发枚举类型, 注释类型和范型应用。本文将介绍范型。
    2005年8月9日  
 
在Eclipse 3.1中体验J2SE 5.0的新特性 第 1 部分 :枚举类型
本系列将介绍J2SE 5.0中三个比较重要的特性: 枚举类型, 注释类型, 范型, 并在此基础上介绍在如何在Eclipse 3.1开发环境中开发枚举类型, 注释类型和范型应用。本文将介绍枚举类型。
    2005年8月9日  
 
在Eclipse 3.1中体验J2SE 5.0的新特性 第 2 部分 :注释类型
本系列将介绍J2SE 5.0中三个比较重要的特性: 枚举类型, 注释类型, 范型, 并在此基础上介绍在如何在Eclipse 3.1开发环境中开发枚举类型, 注释类型和范型应用。本文将介绍注释类型。
    2005年8月4日  
 
AOP@Work: 设计切入点来避免模式密集
在“JUnit: A Cook's Tour”一文中,作者 Erich Gamma 和 Kent Beck 讨论了 JUnit 的设计。他们指出,与很多成熟框架中的关键抽象一样,TestCase 也有很高的模式密集,易于使用而难以修改。在 AOP@Work 系列的第四期文章中,Wes Isberg 重温了 Cook's Tour,说明如何通过使用 AOP 切入点设计来代替面向对象设计,在一定程度上避免导致成熟的设计难以修改的模式密集。
    2005年8月2日  
 
中级 Swing
在本教程中,将介绍 Swing 中超出基本组件和应用程序的一些方面。虽然这些研究领域更难学习和掌握,但它们更强大,可以让您创建更好的应用程序。
    2005年8月1日  
 
SWT 和 JFace, 第 2 部分
“SWT 和 JFace”系列的第 2 部分扩展了我们所学的关于使用 Java 技术、Eclipse 以及 SWT 和 JFace 库创建简单的 Standard Widget Toolkit (SWT) 应用程序的知识。这一期将向您展示如何使用组合框、列表、表和树控件,以及如何使用表单布局和可重用的 helper 方法。
    2005年8月1日  
 
Swing 入门
在学习本教程期间,您将了解 Swing 中的所有入门组件;所谓入门组件,指的是您用来构造简单用户界面(UI)的组件。您将学习如何用基本的方法来设计这些组件的属性,以及如何让这些 Swing 组件与其他组件交互。您还将学习完成 Swing 知识还需要的其他 UI 概念,其中包括布局、事件/侦听器和数据模型。在结束这篇教程的时候,您应当能够构建一个简单的 Swing 应用程序。
    2005年7月28日  
 
集中 Eclipse 中的帮助功能
本文将阐述如何利用 Eclipse 帮助和插件架构的动态特性,创建一个集中的帮助存储库。重点介绍如何使用内容帮助表来创建 Eclipse 插件,如何通过 Infocenter 来集中管理帮助文件,以及如何创建使您能够直接从 Eclipse 主菜单访问集中的帮助存储库的新菜单项。
    2005年7月27日  
 
通过 JPOX 和 DB2 Universal Database 了解 JDO 2.0
本文介绍了如何使用 Java Persistent Objects (JPOX) 将乏味的存取数据SQL语句的编写工作抽象为对象操作。我们展示了 JPOX 1.1,它被 Java Community Process 选作 Java Data Ojects 2.0 的参考实现。JPOX 是在 Apache 2.0 开放源代码许可下发布的,可以免费使用。
    2005年7月26日  
 
Classworking 工具箱: 在旧版 JVM 上使用 J2SE 5.0 特性
许多 J2SE 5.0 语言特性应该对旧版 JVM 也有用,但是实现这些特性的编译器会生成需要 JDK 5.0 或更高版本的代码。幸运的是,有一个开放源代码项目 Retroweaver 在 J2SE 5.0 与旧版 JVM 之间架起了一座桥梁。Retroweaver 转换您的类文件以消除 JDK 5.0 依赖性,同时添加其自己的支持函数库以使得大多数 5.0 特性在旧版 JVM 上完全有用。
    2005年7月25日  
 
加密移动应用中的数据
本教程提供了如何在 Java 2 微型版(J2ME)应用程序(MIDlet)中对应用程序的相关数据进行加密的概述。
    2005年7月21日  
 
AOP@Work: 用 AspectJ 增强设计模式,第 1 部分
设计模式长期以来一直是一些经验丰富的开发人员的工具箱的重要组成部分。不幸的是,因为模式可以影响多个类,所以它们也是侵入性的、难于使用(和重用)。本文是 AOP@Work 系列的第 3 部分,是一篇由两部分组成的文章,在这篇文章中,Nicholas Lesiecki 将介绍 AOP 是怎样通过根本转变模式实现来解决这一问题的。他研究了三个经典的 Gof 设计模式 (适配器模式、修饰器模式和观察者模式),同时还将讨论使用面向方面技术实现这些模式所带来的实践和设计方面的好处。
    2005年7月18日  
 
AOP@Work: 用 AspectJ 增强设计模式, 第 2 部分
Nicholas Lesiecki 用这篇深入研究观察者(Observer)模式的文章,继续他对使用面向方面技术实现设计模式的好处的讨论。他演示了 AspectJ 如何使复杂的模式转换成可重用的基本方面,从而使框架作者能够支持预先构建的模式库,供开发人员使用这些模式。
    2005年7月18日  
 
发挥 Tomcat 在 Geronimo 中强大功能
Geronimo 标准配置有两个独立的 Web 层引擎:Jetty 和 Tomcat。Jetty 是预配备的,可以随时使用的。Sing Li 是经验丰富的 Tomcat 用户,他介绍了如何针对 Tomcat 重新配置 Geronimo,并且说明了使用 Geronimo 可以提供它的熟悉的基本功能,甚至还可以得到增强的功能。
    2005年7月18日  
 
用 EclipseME 开发 J2ME 应用程序
本教程是为对使用 Eclipse IDE 来提高生产率感兴趣的 J2ME 开发人员编写的。本教程还面向那些想在自己喜欢的 IDE 中制作 J2ME 移动应用程序的 Java Eclipse 开发人员。具备 Eclipse 和 J2ME 的基础知识有助于完成本教程中描述的任务。
    2005年7月14日  
 
构建灵活的 J2ME 移动应用程序,第 1 部分
本教程是由两部分组成的系列文章的第一部分,提供构建灵活的 J2ME 移动应用程序的分步指导。在本教程中将介绍如何构建一个建立订单的简单移动应用程序。示例应用程序使用 Java 2 Platform, Micro Edition (J2ME) record management system (J2ME RMS) 存储订单信息,用一个 MIDlet 执行必要的创建及访问数据库应用程序的逻辑。介绍如何使用 J2ME RMS、打造 MIDlet、并将得到的应用程序部署到 J2ME 环境中。
    2005年7月14日  
 
适用于 Java 程序员的 CSP ,第 2 部分:用 JCSP 进行并发编程
本文中作者将介绍如何使用基于 Java 的 JCSP 库来编写能够确保没有并发问题(例如争用风险、 死锁、活动锁、资源耗尽)的 Java 应用程序。
    2005年7月11日  
 
适用于 Java 程序员的 CSP ,第 3 部分
Abhijit Belapurkar 通过介绍 JCSP 开发高级主题,结束了由三部分组成的介绍适用于 Java 开发人员的 CSP 的系列文章,介绍的内容包括:JCSP 与 AOP 的相似性、JCSP 与 java.util.concurrent 的比较,以及用 JCSP 进行高级同步。
    2005年7月11日  
 
当 Maven 遇上 Eclipse
Maven 是一个功能强大的工具,但需要将其集成到流行的集成开发环境 (IDE) 中,以使其功能更易用且让您的工作更轻松,从而增加您的生产力和项目质量。Mevenide 将 Maven 平滑集成到 Eclipse 中,帮助降低了第一次面对 Maven 时的学习曲线。本教程提供了如何让 Maven 与 Eclipse 协作的具体例子。
    2005年7月7日  
 
适用于 Visual Studio 开发人员的 Eclipse 指南
本教程演示如何使用 Eclipse IDE 开发 Java 应用程序。本教程面向 Visual Studio 开发人员,并给出 Visual Studio 上下文中的 Eclipse 概念和术语。教程从安装到调试全面地演示一个简单的例子。
    2005年7月4日  
 
Java 认证成功之路,第 4 部分: SCEA
Sun Certified Enterprise Architect(SCEA)考试针对的是用 Java 2 Platform, Enterprise Edition(J2EE)技术、以健壮的、可伸缩的、安全的和灵活的方式来设计和构建企业解决方案的专业人员。本考试是有关 J2EE 的认证的最高一级。尽管从逻辑上说,这门考试是在程序员和开发员考试之后,但是参加这门考试没有什么先决条件。设计 J2EE 解决方案的实际经验会帮助您顺利通过第一次考试。本考试由三部分组成,一部分是基础知识多选测试,一部分是任务指派,而最后一部分是评论和解释。
    2005年7月4日  
 
Java 认证成功之路,第 4 部分
Sun Certified Enterprise Architect(SCEA)考试针对的是用 Java 2 Platform, Enterprise Edition(J2EE)技术、以健壮的、可伸缩的、安全的和灵活的方式来设计和构建企业解决方案的专业人员。本考试是有关 J2EE 的认证的最高一级。尽管从逻辑上说,这门考试是在程序员和开发员考试之后,但是参加这门考试没有什么先决条件。设计 J2EE 解决方案的实际经验会帮助您顺利通过第一次考试。本考试由三部分组成,一部分是基础知识多选测试,一部分是任务指派,而最后一部分是评论和解释。
    2005年6月30日  
 
在 Java 中使用 Draw2D 和 SWT 绘图
用 Java 绘图一直都吸引着开发人员的注意。传统上,Java 开发人员使用 java.awt.Graphics 或 Java 2D API 进行绘图。一些开发人员甚至使用现成的开源工具箱(如 JSci)来绘图。但很多时候,您的选择被限定在了 AWT 或 Swing 上。为了最大限度地减少对第三方工具箱的依赖,或者为了简化绘图基础,可以考虑使用 Draw2D,并编写自己的代码来制图或绘图。
    2005年6月30日  
 
开发一个调试 JSP 的 Eclipse 插件
本文通过开发一个 JSP 编辑器插件的示例,介绍了 Eclipse 中设置 JSP 断点的方法,以及如何远程调试 JSP。作为基础知识,本文的前两部分描述了 JAVA Debug 和 JSR-45 的基本原理。
    2005年6月30日  
 
理解 WebSphere Information Integrator OmniFind Edition 的示例搜索应用程序
WebSphere Information Integrator OmniFind Edition 示例搜索应用程序说明了该产品强大的搜索功能,并为设计满足特有需求的定制搜索应用程序的用户接口奠定了基础。本文还将介绍该产品的总体设计、一些重要的类和方法,以及一些基本的执行路径。
    2005年6月30日  
 
e-Commerce 的安全性:攻击及预防策略
本文根据作者作为 WebSphere Commerce 开发人员的经验,提出了关于安全性的概述。它研究了 e-Commerce 应用的当前状况,并且描述了能够让您的在线站点或者在线购物经历更加的安全的技术。
    2005年6月29日  
 
公共事件基础架构:从技术预览到产品发布
公共事件基础架构(Common Event Infrastructure)是作为 IBM WBI Server Foundation V5.1 中的技术预览发布的,为开发者提供了创建和管理业务及系统事件的功能。随着 V5.1.1 中可用(production-ready)版本的发布,您可以使用公共事件基础架构在系统间关联和整合信息。
    2005年6月29日  
 
利用Java事件处理机制实现录制、回放功能
目前在一些java应用程序的GUI测试工具,可以提供捕获用户操作的能力并在代码被修改之后能够自动回放用户的操作。文章将分析Java的事件处理模型及其原理,介绍了基于事件源识别的捕获/回放所需要了解的关键技术并给出了两种实现方式。
    2005年6月24日  
 
JCA 1.5,第 3 部分: 消息输入流
在这由三部分组成的介绍最新版 J2EE 连接器架构(JCA)的系列文章的最后一期中,David Currie 将介绍新的消息输入流合约。这项增强让资源适配器能够通过消息驱动 bean 同步地调用应用程序。如果想在现有的资源适配器中使用这项功能或者正在考虑编写新的 JCA 1.5 资源适配器,那么这篇文章是不可缺少的读物。如果编写使用资源适配器的应用程序,或者想了解更多幕后发生的事情,那么这篇文章也会引起您的注意。
    2005年6月24日  
 
适用于 Java 程序员的 CSP,第 1 部分
虽然使用 Java 语言进行多线程应用程序编程并不难掌握,但是许多开发人员都在为了正确地应用它们而挣扎。结果,多线程程序要比我们想像的更容易发生细微的错误,这导致一些开发人员为了避免使用多线程而不惜代价,即使在并发和平行能够很明显地产生最好的设计的时候,他们也不采用多线程。在这篇由三部分组成的系列文章中,developerWorks 的定期投稿者 Abhijit Belapurkar 为您铺设了一条有助于克服对多线程编程恐惧、感受它的好处的道路。文章从多线程编程最常见问题的概述开始,这些问题包括:竞争冒险、死锁、活动锁、资源耗尽,等等。
    2005年6月21日  
 
Geronimo!第 2 部分: 驯服 J2EE 1.4 这匹野马
Geronimo 是 Apache Software Foundation 的 J2EE 1.4 服务器项目,它集成了众多已有开源服务来实现 J2EE 1.4 兼容性。在这篇由两部分组成的系列文章的 第 1 部分 中,作者探讨了开发 Geronimo 的理由、它的设计目标和架构,以及一些核心概念和术语。在这第 2 部分中,Sing Li 将深入主题,详细介绍 Geronimo。使用最新的 Geronimo 发行版本,您可以测试和部署 Web 应用程序、企业应用程序、Enterprise JavaBeans(EJB),等等。
    2005年6月17日  
 
扩展 Eclipse 辅助和规范开发流程
如果市场上的开发工具不能满足您的需要,而自己开发 IDE 又不太现实,那本文就是您所需要的,它介绍了如何扩展 eclipse JDT 来辅助规范你的项目开发流程和帮助约束你的代码规范。
    2005年6月16日  
 
在 Eclipse 中利用 Maven
Maven 将作为一个普通的构建系统,被人们重新认识,并且它将超越 Java 技术。本文不打算成为一篇 Maven 教程,而是将 Maven 与其他技术进行比较,让您洞察 Maven 与 Eclipse 相适应的地方,以及如何使这些工具相互协作。
    2005年6月16日  
 
用 SPARQL 搜索 RDF 数据
随着越来越多的数据使用类似 RSS 的 RDF 格式保存,一种新的需求产生了,即要求用一种简单方法查找特定信息。SPARQL 这个功能强大的新查询语言填补了这个空白,使用户可以很容易地在 RDF 的杂草从中找到所需的数据。本文将和您一起查看 SPARQL 的特性,学习如何利用 Jena 语义 Web 工具包,在自己的 Java 应用程序中使用 SPARQL 查询。
    2005年6月14日  
 
实战 Groovy: 在 Java 应用程序中加一些 Groovy 进来
您有没有想过在自己相对复杂的 Java 程序中嵌入 Groovy 简单的、易于编写的脚本呢?在这一期 实战 Groovy 系列文章中,Andrew Glover 将介绍把 Groovy 集成到 Java 代码中的多种方法,并解释在什么地方、什么时候适合这么做。
    2005年6月14日  
 
JAXP 全面介绍,第 2 部分
在这个由两部分组成的系列文章中,第 1 部分介绍了 Java API for XML Processing (JAXP) 及其解析和验证特性。JAXP 还为 Java 程序员提供了使用可扩展样式表语言 (XSL) 转换 XML 文档的能力。通过直接编程访问和 XSL 模板,JAXP 使得从一种 XML 格式转换为另一种格式非常容易。本文展示如何使用 JAXP 来转换 XML 文档和如何高速缓存 XSL 样式表以实现最佳性能。
    2005年6月13日  
 
JAXP 全部内容,第 2 部分
在这个由两部分组成的系列文章中,第 1 部分介绍了 Java API for XML Processing (JAXP) 及其解析和验证特性。JAXP 还为 Java 程序员提供了使用可扩展样式表语言 (XSL) 转换 XML 文档的能力。通过直接编程访问和 XSL 模板,JAXP 使得从一种 XML 格式转换为另一种格式非常容易。本文展示如何使用 JAXP 来转换 XML 文档和如何高速缓存 XSL 样式表以实现最佳性能。
    2005年6月13日  
 
李志 WBI 专栏:在WBI Server Foundation中使用WBI JDBC Adapter整合数据库应用
本文中我们将介绍 JDBC Adapter 是如何动态提取原有数据库系统的信息,实现数据同步的。
    2005年6月9日  
 
敏捷软件开发基础:持续集成环境的构建
从技术层面上来讲,“持续集成”的含义是指开发团队中的每个成员都尽量频繁地把他们所做的工作更改合入到源码库中,并且还要验证新合入的变化没有造成任何破坏。本文中,作者将介绍如何构建持续集成所需要的环境。
    2005年6月9日  
 
使用 PHP 和 J2EE 来实现通用的 Web 应用程序基础架构
传统上一直认为部署在 IBM WAS 上的 Enterprise Java 应用程序与部署在 Apache,MySQL 和 PHP 环境中的站点之间存在竞争,是彼此之间相互排斥的解决方案。但是,您可以同时运行 WebSphere 和 PHP 以此来获得它们对您的开发需求所体现出来的优势。
    2005年6月9日  
 
为 Web 应用程序创建测试用例
您是否正在寻找一种把自动测试技术应用到 Web 开发中的方法?那么不用再找了!jWebUnit 就是为 Web 应用程序创建测试用例的一个开源框架,它可以容易地插入到大多数 Java IDE 中。通过使用一个示例应用程序,描述了生成简洁测试用例的详细步骤,软件工程师 Amit Tuli 对 jWebUnit 进行了介绍。
    2005年6月7日  
 
Java 理论与实践: 在没有数据库的情况下进行数据库查询
在本月的 Java 理论与实践系列中,Brian Goetz 将演示如何将 SQL 或者 XQuery 这样的数据操纵之锤应用于非持久存储的数据。
    2005年6月7日  
 
AOP:选择正确的时机进行编织
本文介绍了在AOP编程中常见的几种Weave时机,并详细说明了这几种Weave时机的差别和适用场合。
    2005年6月6日  
 
用 Jester 对测试进行测试
全面的单元测试套件对健壮的程序是必不可少的。但是如何才能保证测试套件测试了应当测试的每件事呢?Ivan Moore 的 JUnit 测试的测试器 Jester,擅长发现测试套件的问题,并提供对代码基本结构的深入观察。Elliotte Rusty Harold 介绍了 Jester 并展示如何使用它才能得到最佳结果。
    2005年6月6日  
 
Classworking 工具箱: ASM classworking
在这一期的 Classworking 工具箱 中,咨询顾问 Dennis Sosnoski 把 ASM 字节码操作框架与他以前在 Java 编程动态性 系列中讨论过的字节码工程库(Byte Code Engineering Library,BCEL)以及 Javassist 框架进行比较。ASM 声称自己又小又快 ―― 但将它与其他框架进行比较的情况如何样呢?Dennis 将采用他在以前系列文章中使用的示例对 ASM 的可用性和性能进行评估。
    2005年6月2日  
 
用 Jester 对测试进行测试
全面的单元测试套件对健壮的程序是必不可少的。但是如何才能保证测试套件测试了应当测试的每件事呢?Ivan Moore 的 JUnit 测试的测试器 Jester,擅长发现测试套件的问题,并提供对代码基本结构的深入观察。Elliotte Rusty Harold 介绍了 Jester 并展示如何使用它才能得到最佳结果。
    2005年6月2日  
 
Classworking 工具箱: 注释(Annotation)与 ASM
您是否厌倦了为所有的数据类构建和维护 toString() 方法?在本期“Classworking 工具箱”文章中,Dennis Sosnoski 顾问向您展示了如何使用 J2SE 5.0 注释和 ASM 字节码操作框架来自动化该过程。他使用新增的 J2SE 5.0 instrumentation API 来在类被载入 JVM 中时调用 ASM,以提供运行时的动态类修改。
    2005年6月1日  
 
使用 WebSphere Studio Enterprise Developer V5.1.2 访问 3270 终端
这篇技术性的文章将向您展示如何通过企业开发工具中提供的 Host On Demand(HOD)Java 类在 WebSphere Studio Enterprise Developer V5.1.2 中创建一个可视化的 3270 模拟器的过程。这个视图使您能够访问 TSO 和执行 ISPF 命令,例如交互式的 CLISTS。
    2005年5月30日  
 
JCA 1.5,第 2 部分: 工作管理和事务流入
David Currie 将继续他的由三部分组成的系列文章,介绍 Java 2 企业版(J2EE)连接器架构(JCA)最新版本中的增强和变化。在本文中,他将介绍新的 JCA 1.5 工作管理合约,该合约允许资源适配器利用应用服务器的某些功能来调度和处理工作。在 JCA 的另一个增强 —— 事务流入 —— 的支持下,企业信息系统可以在自己的事务中执行这项工作。
    2005年5月30日  
 
Geronimo!第 1 部分: 支持 J2EE 1.4 引擎
自早先开发人员共享 GUI 库以来,基于 Java 的开源开发已经走了很长一段路。Geronimo 是一个大型项目,目的是基于现有的开源组件创建一个认证的 J2EE 1.4 服务器。让 Sing Li 带您走过 Geronimo 迷宫吧。在这篇由两部分组成的系列文章的第 1 部分中,您将了解 Geronimo 的优雅设计和大胆架构。
    2005年5月27日  
 
用 Cobertura 测量测试覆盖率
Cobertura 是一种开源工具,它通过检测基本的代码,并观察在测试包运行时执行了哪些代码和没有执行哪些代码,来测量测试覆盖率。除了找出未测试到的代码并发现 bug 外,Cobertura 还可以通过标记无用的、执行不到的代码来优化代码,还可以提供 API 实际操作的内部信息。Elliotte Rusty Harold 将与您分享如何利用代码覆盖率的最佳实践来使用 Cobertura。
    2005年5月27日  
 
使用 JTA 处理 DB2 UDB 和 Informix Dynamic Server 中的分布式事务
学习在使用 DB2 UDB 和 Informix Dynamic Server 时,如何在 Java 中通过 Java Transaction API 处理分布式事务。
    2005年5月23日  
 
将调用封装到 Rational Functional Tester API 中
在诸如 IBM Workplace 的企业环境内执行模拟测试会是一项很重要的任务。本文将介绍如何用 Java 创建封装器类,这些类将调用封装到 Rational Functional Tester API 中,以模拟常见的用户活动。
    2005年5月19日  
 
打造更强的 Java 支持
DB2 UDB v.8.2 中 DB2 JDBC Universal Driver 的增强使开发人员得以享受令人惊奇的性能和可管理性。
    2005年5月19日  
 
利用模型驱动开发降低复杂性,第 4 部分:使用 WebSphere Business Integration Modeler 5.1 对业务流程建模
在本教程中,使用本系列第 1 部分中介绍的估损人扩展场景,您将了解如何通过 IBM WebSphere Business Integration Modeler Version 5.1 对业务流程建模。
    2005年5月16日  
 
使用Rational Application Developer 6.0 和 WebSphere Portal Server 5.1开发JSF portlet ,第二部分
这是一篇关于使用IBM Rational Application Developer 6.0进行JSF (JavaServer Faces)和JSR (Java Specification Request)168开发的系列文章的第二部分(共两部分)。第一部分主要关注于JSF 和 JSR 168开发的基础产品特性并创建了两个portlet和三个CRMBrowser应用视图。在第二部分,你将会了解如何在JSR 168 portlet之间进行通信实现复杂的屏幕流。
    2005年5月16日  
 
技巧:XML 格式的 Javadoc
在 Java 代码中蕴涵着许多有价值的信息:所有类和接口,以及它们的实例变量和方法。您可以使用这些数据来创建文档,构建代码生成器,或者为项目报表提供度量标准。
    2005年5月16日  
 
在 IBM WebSphere Portal 的呈现阶段执行 Struts 操作
IStrutsPrepareRender 接口是 IBM Struts Portlet Framework 功能强大的新特征,在 IBM WebSphere Portal 的呈现阶段,开发者可以通过使用它轻松地进行编写 Render Struts 的操作。
    2005年5月16日  
 
利用模型驱动开发降低复杂性
过去的软件开发人员总是将精力集中于操纵数据位和在 CPU 中的寄存器之间移动字节这样的低级细节上。现在,他们逐渐将主要精力用于理解用户问题域(根据将支持的用例)和设计解决方案(他们构思成一些可以实现这些用例的服务的协作)。这一重大的思想转化可能是由于支持模型驱动开发的标准、技术和工具所致。
    2005年5月12日  
 
利用模型驱动开发降低复杂性,第 2 部分: 定义和管理需求
本文介绍了如何定义和管理解决方案需求,用 IBM Rational RequisitePro 持久存储和管理需求。本系列未来的文章将把这些需求连接到 Rational XDE 中的模型工件(artifact)。
    2005年5月12日  
 
利用模型驱动开发降低复杂性,第 1 部分: 使用 IBM Software Development Platform 开发端到端的解决方案
在这一 系列文章中,将学习如何用 IBM Software Development Platform 开发端到端的解决方案 ―― 从业务流程建模和需求定义,到设计、构造、测试和部署。还将探索构成 IBM Software Development Platform 的各个工具之间的关键集成点。 在这篇介绍性的文章中,可以学习到创建端到端开发周期中涉及到的各种角色。还会概要了解到每种角色执行的任务和他们使用的工具。
    2005年5月12日  
 
用例分析和设计
在本教程中,您将了解如何使用 IBM(R) Rational(R) XDE(TM) 软件对应用程序建模。
    2005年5月8日  
 
利用模型驱动开发降低复杂性,第 2 部分: 定义和管理需求
本系列描述了如何使用 IBM Software Development Platform 的组件端到端地开发解决方案,从业务流程建模和需求到设计、构建、测试、部署以及监视。在第 1 部分中,学习了模型驱动的架构、IT 专业人员在产品生命周期中的角色与活动,以及他们的工具。本文介绍了如何定义和管理解决方案需求,用 IBM Rational RequisitePro 持久存储和管理需求。本系列未来的文章将把这些需求连接到 Rational XDE 中的模型工件(artifact)。
    2005年5月1日  
 
利用模型驱动开发降低复杂性,第 2 部分: 定义和管理需求
本系列描述了如何使用 IBM Software Development Platform 的组件端到端地开发解决方案,从业务流程建模和需求到设计、构建、测试、部署以及监视。在第 1 部分中,学习了模型驱动的架构、IT 专业人员在产品生命周期中的角色与活动、以及他们的工具。本文介绍了如何定义和管理解决方案需求,用 IBM Rational RequisitePro 持久存储和管理需求。本系列未来的文章将把这些需求链接到 Rational XDE 中的模型工件。
    2005年5月1日  
 
利用模型驱动开发降低复杂性,第 1 部分: 使用 IBM Software Development Platform 开发端到端的解决方案
在这一系列文章中,将学习如何用 IBM Software Development Platform 开发端到端解决方案 —— 从业务流程建模和需求定义,到设计、构造、测试和部署。还将探索构成 IBM Software Development Platform 的各个工具之间的关键集成点。 在这篇介绍性的文章中,可以学习到创建端到端开发周期中涉及到的各种角色。还会概要了解到每种角色执行的任务和他们使用的工具。
    2005年5月1日  
 
利用模型驱动开发降低复杂性,第 1 部分: 使用 IBM Software Development Platform 开发端到端的解决方案
在这一 系列 文章中,将学习如何用 IBM Software Development Platform 开发端到端的解决方案 —— 从业务流程建模和需求定义,到设计、构造、测试和部署。还将探索构成 IBM Software Development Platform 的各个工具之间的关键集成点。 在这篇介绍性的文章中,可以学习到创建端到端开发周期中涉及到的各种角色。还会概要了解到每种角色执行的任务和他们使用的工具。
    2005年5月1日  
 
使用 WebSphere Studio 开发目录式 Web 站点――第 2 部分
开发 Web 应用程序并不一定是个冗长的且需要精通 J2EE 知识的流程。本系列文章向您显示了如何创建一个房地产经纪人 Web 站点实例的完整过程,包括如何创建复合数据表格。
    2005年4月29日  
 
探索 Eclipse 的 ASTParser
如果曾经编写过处理代码的应用程序,就会知道事情可能变得非常复杂,尤其在使用像 Java 这样复杂的语言时。不过对于那些使用 Eclipse 的人来说,有一个好消息:可以利用 Java Development Tooling (JDT) 和 ASTParser。本文就说明如何做。
    2005年4月28日  
 
WBI Modeler 和 WSAD Integration Edition 的集成技术清单
本文描述了使用 WBI Modeler 5.1 和 IBM WSAD Integration Edition 5.1 的集成场景。您可以使用本文了解和演示这些产品的集成性能。
    2005年4月25日  
 
定制 WebSphere Commerce 5.6 中的商店创建向导
本教程帮助您创建 WebSphere Commerce V5.6 中可用的商店创建向导。该商店创建向导使您可以使用扩展的站点及托管的业务模型,在维护一套通用的商店资产时为客户提供唯一的商店。
    2005年4月25日  
 
Classworking 工具箱: 用方面跟踪性能
在这一期的 Classworking 工具箱 中,顾问 Dennis Sosnoski 接着上个月,使用面向方面的(aspect-oriented)方法进行性能分析。他用 Apache Axis Web 服务框架分析了一个客户机应用程序,以找出执行时间都花在哪里了。同时,Dennis 分析了 Java 代码中的测量时间间隔问题,并展示了如何找出自己系统上计时器实现的粒度和开销。
    2005年4月25日  
 
怀疑论者的 JSF: JSF 转换与验证
Java Server Faces (JSF) 提供了标准转换、验证和消息传递框架,这些可以满足大部分的表单处理要求,同时确保数据模型的完整性。在怀疑论者的 JSF 系列的第三篇文章中,Paul Tabor 和 Rick Hightower 展示了插入自已风格的转换或者验证有多容易,甚至对于复杂的应用程序也是如此。
    2005年4月25日  
 
实战 Groovy: 用 Groovy 生成器作标记
Groovy 生成器让您能够利用诸如 Swing 这样的框架来模拟标记语言(如 XML、HTML、Ant) 任务以及 GUI。它们对于快速原型化非常有用,并且正像 Andrew Glover 这个月在“实战 Groovy”专栏中向您展示的那样,当您马上需要可消费的标记时,它们是数据绑定框架的一种便利的替代方案。
    2005年4月25日  
 
驯服 Tiger: 深入研究枚举类型
2004 年 11 月,Brett McLaughlin 带您初步了解了如何在 Java 5.0 平台上使用枚举类型。在这个月的“驯服 Tiger”技巧文章中,专栏作家 John Zukowski 将解释如何使用枚举类及其预定义方法,同时还将展示如何添加构造函数、覆盖方法,以及拥有实例变量。
    2005年4月25日  
 
JCA 1.5,第 1 部分: 优化和生命周期管理
本系列共三部分,在第一部分中,Java 开发人员 David Currie 介绍了 Java 2 Enterprise Edition (J2EE) Connector Architecture (JCA) 1.5 中所作的一些优化,它们可以加快现有或新外部资源适配器的运行速度。
    2005年4月21日  
 
用方面自动地支持遗留应用程序
学习如何用方面(Aspect)在任何遗留的 Java 应用程序中生成通用基础事件(Common Base Events),而不修改原始应用程序源代码。本文介绍了实现方法,还提供了一个能够在当前应用程序中使用的示例框架。
    2005年4月21日  
 
在 XForm 应用程序中使用 JSF 技术
本教程将介绍并展示如何用 JavaServer Faces (JSF) 技术开发 XForms 应用程序。JSF API(JSR-127)使企业 Java 开发人员能够为其服务器端应用程序构建用户界面。XForms (一个 W3C 推荐规范)是一个 XML 应用程序,它为设计基于 XML 的数据输入表提供了一个框架。
    2005年4月18日  
 
AOP@Work: AOP 和元数据:完美的匹配,第 2 部分
在这篇由两部分组成的关于组合使用元数据和 AOP 的系列文章的第二部分中,作者及 AOP 实践者 Ramnivas Laddad 将推荐一种把元数据视为多维关注点空间中的签名的全新方法。他还将介绍有效组合使用元数据与 AOP 的一组准则,并讨论元数据注释将如何影响面向方面的编程的应用。
    2005年4月18日  
 
Lotus Domino 和 IBM WebSphere 集成解决方案:Domino JSP 标签库
在 Lotus Domino 中管理数据,但又要利用 IBM WebSphere 高度可伸缩的优点,事务型的 J2EE 平台使用下面这些解决方案的一种:Domino XML 或 Domino JSP 标签库。在本系列的这两篇文章中,我们将重点介绍 Domino JSP 标签库。
    2005年4月18日  
 
利用 DB2 UDB 来使用 WebRowSet 实现
WebRowSet 接口是 JSR-114 的产物,向我们提供了 Java 1.5 中的 JDBC Rowset 功能。RowSet 对象允许您与后端数据库在断开连接的情况下交互。本文着眼于由 javax.sql.RowSet 接口扩展而来的 WebRowSet。本文还会展示 WebRowSetImpl 类,即 Sun 的 WebRowSet 接口的参考实现。您将会看到 WebRowSet 与 XML 的固有关系。
    2005年4月18日  
 
创建国际化的 JSP 应用程序
为国际客户设计 Java Server Pages(JSP)应用程序更像是一门艺术,而不像是科学,但所涉及的内容不仅仅能满足眼球。成功的关键是理解与国际化有关的独一无二的服务器端问题。Java 开发人员 Sing Li 将阐述这个重要问题,并给出两个经过考验确实有效的解决方案。
    2005年4月15日  
 
使用 Eclipse 为 Nokia 设备开发移动应用程序
本教程将展示如何使用 Eclipse IDE 和 Nokia Developer's Suite for J2ME 为 Nokia 手机开发 J2ME 应用程序。
    2005年4月7日  
 
Java 手机与空间 WMS 服务应用集成
本文探讨利用 J2ME 手机,实现移动设备与空间制图服务(WMS)网络应用服务集成,可以实现对J2ME手机对网络LBS、GIS 图像数据的访问与地图数据的显示,并在迅速实现小型的LBS、移动 GIS 核心的导航地图的显示功能。
    2005年4月7日  
 
Java 理论与实践: 用 XQuery 进行屏幕搜集
XQuery 是用来从 XML 文档中提取信息的 W3C 标准,目前包括 14 个工作草案。虽然 XQuery 主要集中于查找大型半结构化文档数据,但是令人惊讶的是 XQuery 对于一些更平凡的应用也非常有效。在本月的 Java 理论与实践 中,专栏作家 Brian Goetz 将介绍如何有效地把 XQuery 用作 HTML 的屏幕搜集引擎。
    2005年4月4日  
 
Buoy 使得简单 Java 用户界面的编程变得轻而易举
Buoy 是一个构建在 Swing 之上的免费用户界面(UI)工具包,它为 UI 开发人员提供了方便性和简单性。在本文中,开发人员兼撰稿人 Peter Seebach,用一个简单的 fractal 用户界面程序,介绍了 Buoy 可以做什么、为什么这么做。
    2005年4月4日  
 
利用 DB2 UDB 来使用 WebRowSet 实现
WebRowSet 接口是 JSR-114 的产物,向我们提供了 Java™ 1.5 中的 JDBC™ Rowset 功能。RowSet 对象允许您与后端数据库在断开连接的情况下交互。本文着眼于由 javax.sql.RowSet 接口扩展而来的 WebRowSet。本文还会展示 WebRowSetImpl 类,即 Sun 的 WebRowSet 接口的参考实现。您将会看到 WebRowSet 与 XML 的固有关系。
    2005年4月1日  
 
IBM JVM for Linux JIT 诊断简介
本文简要介绍 Just-In-Time(JIT)编译器和 Mixed Mode Interpreter(MMI)优化技术,在 IBM 的 JVM 1.3.1 和 1.4.2 中使用了这两种技术,它们对于从 Sun Hotspot JVM 上迁移过来的 Java 程序可能产生影响。
    2005年3月28日  
 
IBM JVM for Linux on POWER 的性能调优技巧
本文将介绍用于 iSeries 和 pSeries 上的 IBM JVM for Linux 的一些重要性能调优问题。在撰写这篇文章的时候,IBM 推出了 JDK 1.3.1 32-bit 和 JDK 1.4.2,但无论是 32 位还是 64 位风格的,都适用于 IBM iSeries 和 pSeries 上的 Linux。本文中提供的技巧可应用于 IBM iSeries 和 pSeries 上的 IBM JDK 1.3.1 和 JDK 1.4.2 for Linux,但是本文的特别针对目标是最新的 IBM JDK 版本 JDK 1.4.2。
    2005年3月28日  
 
AOP@Work: AOP 和元数据:完美的匹配,第 1 部分
在这篇由两个部分组成的系列文章的第 1 部分中,作者 Ramnivas Laddad 将对新的元数据功能进行概念性介绍,并展示在加入了元数据注释后,AOP 可以在什么地方获得最大的好处。然后他将分五步完成一个设计改造,从一个无元数据的 AOP 实现开始,最终得到一个结合了 Participant 设计模式与注释者-供应者(annotator-supplier)方面的 AOP。
    2005年3月28日  
 
驯服 Tiger: 虚拟机更新
在“驯服 Tiger”的这一期中,John Zukowski 介绍了最新的 Java 虚拟机如何改善启动时间、降低内存需求、提高性能。Tiger 提供了共享的数据档案文件、新的线程调度算法以及致命错误处理器(用来处理故障)。请在本文附带的讨论论坛上与作者和其他读者分享您对本文的想法。
    2005年3月28日  
 
JUnit 断言扩展
JUnit 通过制作满足预期需求的断言来测试软件代码单元,但是这些断言只限于基本操作。IBM 软件工程师 Tony Morris 通过引入 JUnit 断言扩展(Assertion Extensions for JUnit)填补了这个空白,JUnit 断言扩展提供了一整套在 JUnit 框架中执行的复杂断言。下面请随作者的演示一道,了解如何使用这个来自 alphaWorks 的新包来提高 Java 软件的可靠性和健壮性。
    2005年3月28日  
 
实战 Groovy: 用 Groovy 打造服务器端
Groovlet 和 GroovyServer Pages(GSP)框架都是建立在 Java Servlet API 基础之上。不过,与 Strut 和 JSF 不同,Groovy 的服务器端实现不意味着适用于所有情况。相反,它提供了一种快速而又方便地开发服务器端应用程序的简化方法。下面请跟随 Groovy 的鼓吹者 Andrew Glover,听听他如何介绍这些框架,并展示它们的应用。
    2005年3月28日  
 
Classworking 工具箱: 将 aspect 放到 werk 中
面向方面编程(Aspect-oriented programming,AOP)通过将在应用程序范围内起作用的功能分离出来而不是放到某个类或者包中,可以使代码保持清洁。日志记录是这种功能的一个常用的例子。AOP 是否可以帮助进行日志记录?在本文中,开发人员和 AOP 拥护者 Dennis Sosnoski 对 AspectWerkz 框架的使用进行分析以找出答案。
    2005年3月21日  
 
通过 JXTA 进行无线通信,第 2 部分: 实现 JXTA-for-JMS
学习如何用 JXTA(JXTA-for-JMS,或简称 JXTA4JMS)实现 Java 2 Platform, Micro Edition(J2ME)客户机与 Java Message Service(JMS)应用程序之间的连接。用实例展示 J2ME 设备或者 JMS 客户机是如何使用 JXTA4JMS 的。本文还将描述 JXTA4JMS 的架构,并解释 JXTA4JMS 实现中的类的部署情况。
    2005年3月21日  
 
关注性能: 什么时候好的基准测试不好了
在进行基准测试操作时,一定要对出现意外结果有思想准备。即使您认为自己知道会是什么样的结果,可是奇怪的结果常常会让您无所适从。性能专家 Jack Shirazi 和 Kirk Pepperdine 一直在与意外结果打交道。请跟他们一起对 Java 5.0 中的一种新语言功能进行基准测试并发现一些不寻常的结果。
    2005年3月21日  
 
StatCVS 提供了对 CVS 储存库活动的深入观察
StatCVS 是一个创建并发版本系统(Concurrent Versions System -CVS)储存库活动图表的方便工具。在本文中,开发人员 Tom Copeland 将解释如何安装、运行 StatCVS,概述生成的报告,然后还将介绍如何为多个储存库生成报告,StatCVS 的内幕及限制等多项内容。
    2005年3月21日  
 
XSLT 2.0 中的代码生成,第 2 部分:用 XSLT 2.0 生成 PHP
本文将介绍如何扩展第 1 部分中建立的 XSLT 2.0 代码生成器。
    2005年3月17日  
 
怀疑论者的 JSF:消除关于 JSF 的 FUD
对于 Java Server Faces (JSF) 这样一种不可或缺的技术,产生了很多不适当的 FUD(“Fear, uncertainty, and doubt”的缩写,意思是“恐惧、不确定、怀疑” )。盛传着这样一些谣言:JSF 开发很难,比一些主流方法的要求更苛刻,并且完全依赖于 WYSIWYG 工具。在这个新的由 4 部分组成的系列文章中,经常为 developerWorks 撰稿的作者 Rick Hightower,划清了 FUD 与事实真相,向您展示了:JSF 实际上比诸如 Struts 这样的 MVC Model 2 框架更加容易使用。如果您知道自己在做什么,那么确实是这样的。
    2005年3月17日  
 
驯服 Tiger: 利用 Tiger 为窗格减压
有多少次您是使用 frame.getContentPane().add() 编写代码,或者说有多少次在调用 add() 之前忘记获得内容窗格,并最终以在运行时抛出 Error 结束?作为顾问,John Zukowski 将在这一篇“驯服 Tiger”技巧中向您展示:这些问题都已成为过去。
    2005年3月15日  
 
实战 Groovy: 使用 Groovy 模板进行 MVC 编程
视图是 MVC 编程的一个重要部分,而 MVC 编程本身又是企业应用程序开发的一个重要组件。在这篇实战 Groovy 的文章中,Andrew Glover 向您介绍了 Groovy 的模板引擎框架是如何用来简化视图编程的,并如何使您的代码更加经久容易维护。
    2005年3月14日  
 
本地化中的 XML:通过 TM 和 TMX 重用翻译
本文介绍 TM 技术,以及 TMX 如何帮助用户独立于翻译工具厂商。
    2005年3月14日  
 
Java 理论与实践:一个有缺陷的微基准的剖析
众所周知,软件工程师常常受到性能问题的困扰,有时候甚至很过分。虽然有时候性能在一个软件项目中是最重要的需求,例如在为高速交换机开发协议路由软件时便是如此,但在大多数情况下,需要在性能需求与其他需求之间进行平衡,例如功能性、可靠性、可维护性、可扩展性、投入市场的时间以及其他业务和工程上的考虑。在本月的 Java 理论和实践 中,专栏作家 Brian Goetz 将探讨为什么度量 Java 语言结构体的性能比看上去要难得多。
    2005年3月14日  
 
WebSphere Application Server Enterprise 中的新扩展消息传递模式
扩展的消息传递 (Extended Messaging,EMS) 技术对应用服务器的基本消息传递功能进行了改进。该工具支持最先应用于 WebSphere Application Developer-Integrated Edition 5.0 中。本文描述了对 V5.1 中 EMS 技术的改进,利用这些改进可以构建灵活的消息传递模式,并改进了处理延迟消息的方法。
    2005年3月7日  
 
AOP@Work: AOP 工具比较,第 2 部分
在这个由两部分构成的 AOP 工具比较的第 2 部分中,面向方面专家 Mik Kersten 将把重点放在工具与开发环境的集成以及构建过程上,包括对 AOP 工具 IDE 特性的逐点比较。为了帮助制定最终决策,在进行总结的时候,作者将介绍这些快速发展的工具近期的发展情况,并提供每种工具优缺点的总结。注意,本文将解释最近宣布的 AspectJ 和 AspectWerkz 项目合并的意义。
    2005年3月7日  
 
Classworking 工具箱: 用 Hansel 和 Gretel 覆盖代码
为确保代码与规格说明相符,单元测试提供了一种很好的技术。但是单元测试的质量要取决于编写测试的人,而单元测试的结果是与测试的质量挂钩的。如何确保单元测试能具有满足要求的质量呢?在这个专门关于 classworking 工具的新系列的第一篇文章中,developerWorks 正式撰稿人 Dennis Sosnoski 将讨论代码覆盖工具如何为您的测试提供重要的质量检查。
    2005年3月7日  
 
DB2 UDB、WebSphere 和 iBATIS:用 iBATIS、DB2 UDB V8.1 和 WebSphere Studio Application Developer V5.1.2 创建 Java 和 J2EE 应用程序
学习如何在 Java 应用程序和 J2EE 应用程序中使用 iBATIS。本文将介绍 iBATIS 语法,访问数据源,设立支持 iBATIS 的 WebSphere Studio 项目,并使用 iBATIS 查询 DB2。
    2005年3月3日  
 
使用 portlet 与业务流程引擎建立连接
使用 Process Choreographer 提供的业务流程 Java API,查看如何创建 portlet 来调用业务流程。包括可下载的样本代码。
    2005年3月3日  
 
怀疑论者的 JSF: JSF 应用程序的生命周期
本系列怀疑论者的 JSF 一共包含 4 篇文章,本文是其中的第 2 篇。在本文中,Rick Hightower 对 Java™Server Faces (JSF)请求处理生命周期的主要阶段进行了介绍。作者使用一个示例程序,详细介绍了请求处理的 5 个阶段。随着介绍的深入,作者将向您展示如何在 JSF 中采用 JavaScript 技术对即时事件进行处理,最后简要介绍一下 JSF 中提供的众多组件来结束对 JSF 组件模型的介绍。
    2005年3月1日  
 
高级 Synth
本文将深入透视 Synth 外观,它是 Java 5.0 中为 Swing 引入的最新内容。通过为 Java UI 编程引入“皮肤”的概念,Synth 使开发人员可以为应用程序创建和部署定制的外观。软件工程师 Michael Abernethy 将带您从头开始逐步构建一个具有 synth 外观的应用程序,让您充分了解 Synth 的概念。阅读本文之后,您应该可以在短时间内创建具有专业外观的 UI。
    2005年2月24日  
 
AOP@Work: AOP 工具比较,第 1 部分
AOP 技术的时代已经来临,但是怎样才能为项目选择正确的工具呢?在新推出的 AOP@Work 系列的第一篇文章中,面向方面(aspect-oriented)的编程专家 Mik Kersten 将比较 4 个领先的 AOP 工具(AspectJ、AspectWerkz、JBoss AOP 和 Spring AOP),帮助大家判断应该选择哪一个工具。本文由两个部分组成,在文中,作者将重点介绍这些工具的语言机制和不同技术的优劣。
    2005年2月24日  
 
中级 Java 编程
本教程将介绍 Java 语言的一些功能,这些功能比“Java 编程简介”教程(请参阅 参考资料,以获得该教程和本教程中引用的其他材料)中介绍的要更复杂一些。为了最大程度地利用本教程,您应该阅读一些介绍性教程,或者应该熟悉本教程中介绍的概念。
    2005年2月21日  
 
使用 portlet 服务安全的访问远程 Web 应用
本文演示了 portlet 服务在封装 portlet 与远程 Web 应用程序之间的交互上起到的作用。描述了连接到一个为了确保安全而使用轻量级目录访问协议 (Lightweight Directory Access Protocol,LDAP) 目录以及轻量级第三方认证 (Lightweight Third Party Authentication,LTPA) 的 WebSphere Application Server 应用程序。样本代码以及配置实例都包括在示范连接会话 EJB 或 servlet 之中。
    2005年2月21日  
 
安装使用 DB2 UDB 的集群的 SPECjAppServer2004 基准 - 一个高性能 J2EE 1.3 应用程序沙箱
如果您要在集群环境中安装 DB2 基准,那么您可以从这篇文章中获得所需的帮助。本文可以帮助您确定如何配置 WebSphere 和 DB2 UDB,以便安装一个 SPECjAppServer2004 基准,该基准是一个可伸缩的集群级(cluster-scalable)应用程序。标准性能评估公司(Standard Performance Evaluation Corporation,SPEC)提供了关于如何安装 SPECjAppServer2004 应用程序的通用用户指南,但是在文档中没有包括特定于供应商的信息。本文将填补这个空缺,提供详细的说明和示例脚本,帮助您把 SPECjAppServer2004 应用程序的安装变成一项简单任务。
    2005年2月21日  
 
在 IBM Rational Application Developer V6 中使用 JSF 和 Javascript 创建高级输入表单
在输入表单上创建复杂的验证现在已经不再困难了,也不需要知道深入了解 Java 或者 JSF 内部的知识。随着 Rational Application Developer V6 的发布,利用拖放就能方便且快速创建包含复杂验证的表单。
    2005年2月17日  
 
专家访谈:Bobby Woolf 谈 J2EE 体系结构和设计
这篇一问一答的文章里,我们邀请到了 J2EE 专家 Bobby Woolf 来回答关于 J2EE 应用程序体系结构及设计的问题。
    2005年2月7日  
 
构建一个Java拍卖系统的客户端
本教程中你将使用数据视图部署一个IBM(R) DB2(R) Universal Database Express V8.2数据库定义。然后,你将使用Java Visual Editor构建一个图形化的用户界面(GUI),其动态地访问本地数据库和拍卖服务器所支持的远程Web服务。数据绑定支持已经显著地改进了与不同数据源连接的作业。
    2005年2月3日  
 
建立 Web 拍卖客户端
在本教程中,您可以使用 Web Developer 来构建一个可以与本地数据库和一组拍卖站点的 Web 服务进行交互的 Web 拍卖客户端。您可以在建立好的 Web 站点上查看到本地仓库库存,查看到所有处于激活状态的拍卖列表,新建根据仓库存储产品而生成的拍卖列表,以及查询拍卖站点。
    2005年2月3日  
 
StrutsTestCase 简化开发过程
本文将介绍 StrutsTestCase(STC)框架,解释如何用模拟方式和 Cactus 方式测试示例应用程序。作者 Sunil Patil 是 IBM 印度软件试验室的开发人员,他首先将介绍 STC,然后会带您遍历设置使用 STC 和测试各种 Struts 特性的环境的过程。还将演示如何在 STC 中同时使用 Cactus 和模拟方式
    2005年2月3日  
 
李志 WBI 专栏:WBI Server Foundation中的BPEL流程开发进阶
本文介绍了利用WSADIE5.1对流程进行设计、建模和开发的过程,并展示了如何在异步流程中调用外部程序和等待外部程序返回处理结果。
    2005年2月3日  
 
使用IBM Rational 软件对遗留系统的集成进行管理
大多数IT 组织都必须解决三个主要问题:1.帮助组织减少成本 2.增加并且保持客户 3.加快业务效率。完成这些问题一般都需要实现对多个业务系统的数据和业务逻辑的无缝访问,也就是说,要实施系统集成工程,以便联结业务流程、实现数据的访问与共享。
    2005年2月3日  
 
基于struts+spring+ibatis的轻量级J2EE开发
JpetStore 4.0是ibatis的最新示例程序,基于Struts MVC框架(注:非传统Struts开发模式),以ibatis作为持久化层。该示例程序设计优雅,层次清晰,可以学习以及作为一个高效率的编程模型参考。本文是在其基础上,采用Spring对其中间层(业务层)进行改造。使开发量进一步减少,同时又拥有了Spring的一些好处。
    2005年2月3日  
 
Java 理论和实践: 了解泛型
JDK 5.0 中增加的泛型类型,是 Java 语言中类型安全的一次重要改进。但是,对于初次使用泛型类型的用户来说,泛型的某些方面看起来可能不容易明白,甚至非常奇怪。在本月的“Java 理论和实践”中,Brian Goetz 分析了束缚第一次使用泛型的用户的常见陷阱。
    2005年2月3日  
 
使用 WebSphere Studio Device Developer 开发服务管理框架包
本文是一个具有一定深度的学习指南,帮助用户更好的理解开放服务网关协议 (OSGi) 编程框架和 API,重在讨论如何将它们应用到实际的服务管理框架包的开发中去。
    2005年2月1日  
 
最容易最轻松的EJB组件
本教程向你介绍IBM Rational Application Developer,一个模型驱动的应用程序开发工具,它使得创建EJB组件的过程变得最简单。你将学习新的给你的组件建模的方法,并运行向导产生代码。
    2005年1月31日  
 
用 Apache Ant 进行 Derby 数据库开发
开源 Derby 数据库引擎为开发人员提供了一个用于轻量级数据库开发的强大工具。Derby 数据库基于文件系统,可以在不同平台之间移植。由于这个原因,通常的策略是在开发时创建数据库,并将数据库与二进制发布文件一起发布,而不是动态创建数据库。在这篇文章中,作者 James Snell 将介绍少量 Apache Ant 任务,这些任务使得将 Derby 数据库的构建和发布包含到应用程序的构建过程中变得更加容易。
    2005年1月27日  
 
快速入门:开发和运行 SQLJ 程序
学习如何快速开始使用 WebSphere Studio Application Developer 和 DB2 Universal Database,通过一个示例 servlet 应用程序,遵循这些非常详细的步骤来开发 SQLJ 应用程序。本教程还提供了关于这些 IBM 产品的基本信息和有关 SQLJ 的信息。
    2005年1月24日  
 
JNDI 在 J2EE 中的角色
掌握 J2EE 是件令人生畏的事,因为它包含的技术和缩略语在不断地增长。Java 命名和目录接口(Java Naming and Directory Interface,JNDI)从一开始就一直是 Java 2 平台企业版(JEE)的核心,但是 J2EE 开发新手经常用不好它。本文将消除 JNDI 在 J2EE 应用程序中所扮演角色的神秘性,并展示它如何帮助应用程序从部署细节中解脱出来。
    2005年1月24日  
 
快速入门:开发和运行 SQLJ 程序
学习如何快速开始使用 WebSphere Studio Application Developer 和 DB2 Universal Database,通过一个示例 servlet 应用程序,遵循这些非常详细的步骤来开发 SQLJ 应用程序。本教程还提供了关于这些 IBM 产品的基本信息和有关 SQLJ 的信息。
    2005年1月24日  
 
用 PMD 铲除 bug
PMD 是一个开源的静态分析工具,是一个值得您添加到捉虫工具箱中的工具。Elliotte Rusty Harold 将解释如何使用 PMD 内置的规则以及您自己定制的规则集来提高 Java 代码质量。
    2005年1月24日  
 
实战 Groovy: 用 Groovy 进行 JDBC 编程
这个月,随着 Andrew Glover 向您演示如何用 GroovySql 构建简单的数据报告应用程序,您对 Groovy 的实用知识会更进一步。GroovySql 结合利用闭包(closure)和迭代器(iterator),把资源管理的负担转移到 Groovy 框架本身,从而简化了 Java 数据库连通性(Java Database Connectivity,JDBC)的编程。
    2005年1月24日  
 
使用iReport制作报表模板
现在很多公司和个人都在使用iReport制作报表模板,我接触的时间也不长,在这里,我将我在实践过程中的一些经验以及碰到的一些问题和大家一起来探讨。
    2005年1月21日  
 
WebSphere Application Server V6 中的 JavaServer Pages -- 第 3 部分
文是本系列文章(分三部分)的结束部分,描述了 WebSphere Application Server V6 中 JSP 引擎的体系结构,经过较大程度地修改,它可以支持 JSP 2.0 规范的要求,并且提高了它的性能和可配置性。
    2005年1月20日  
 
自动化测试: 真的是银弹?
没有一种单纯的技术或管理上的进步,能够独立地承诺在10年内大幅度地提高软件的生产率、可靠性和简洁性。Brooks鼓励我们将技术和方法视作一种演进手段,而并非革命。将自动化技术引入测试工作时,我倾向于支持相同的观点。
    2005年1月17日  
 
使用 RAD 和 WAS 来加速基于 XML 的 SOA 的 JSF 开发――第 1 部分
本系列文章提出了加快基于 XML 的面向服务的体系结构(Service Oriented Architecture,SOA)的应用程序的表示开发的解决方案。这种解决方案包括 Eclipse 功能,可以生成静态类型的用于 XSD Schema 的服务对象数据(Service Data Object,SDO),并提供了在表示元素数据与 XML 数据相互转换中使用 SDO 的运行框架。
    2005年1月17日  
 
ClearCase迁移中的一些经验
本文的目的是介绍神州数码软件公司ITS解决方案中心在将软件资产从其他配置管理工具迁移到IBM Rational公司的ClearCase UCM配置管理解决方案的一些经验。
    2005年1月17日  
 
TestNG 使 Java 单元测试轻而易举
在本文中,Filippo Diotalevi 介绍了 TestNG,这是一个测试 Java 应用程序的新框架。TestNG 不仅确实强大、创新、可扩展、灵活,它还展示了 Java Annotations(JDK 5.0 中的重大新特性)的有趣应用。
    2005年1月17日  
 
以设计求质量
全面单元测试是保证软件开发过程质量的关键策略,但迄今为止并没有为人们广泛接受。本文考查了妨碍全面单元测试的"拦路石",并介绍了来自 IBM Rational 软件公司旨在克服这些拦路石的新技术。
    2005年1月17日  
 
初识IBM Rational RobotJ
Rational 公司邀请我看了看它们的新产品,Rational PobotJ。它们邀请我有两个原因。一个原因很明显,就是由于我长时间进行测试自动化的工作,了解大量的人们正确使用(以及误用)这些测试工具的方式。第二个原因就是由于我从来没有使用过Rational Robot或者该公司的Test Manager模型,所以凭借我的自动化背景可以清晰地洞察出他们是如何设计软件测试自动化解决方案的。
    2005年1月17日  
 
Hibernate配置文件在单元测试中的灵活运用
Hibernate 是一个流行的开源对象关系映射工具,单元测试和持续集成的重要性也得到了广泛的推广和认同,在采用了Hibernate的项目中如何保证测试的自动化和持续性呢?本文讨论了Hibernate加载其配置文件hibernate.properties和hibernate.cfg.xml的过程,以及怎么样将hibernate提供的配置文件的访问方法灵活运用到单元测试中。
    2005年1月17日  
 
使用 TXSeries Encina J2EE 连接器开发基于 Web 的应用程序
为了帮助 TXSeries Encina 用户利用 J2EE 环境,本文描述了如何使用 IBM WebSphere Application Server 及 TXSeries V5.1 中的 Encina J2EE 连接器来开发基于 Web 的应用程序。
    2005年1月17日  
 
利用 WebSphere Studio 通过 Web 服务实现 SOA,第 3 部分
介绍利用 WebSphere Studio Application Developer Integration Edition Version 5.1 发布 WSDL 和 UDDI。
    2005年1月10日  
 
用 continuation 开发复杂的 Web 应用程序
本文中作者将向您介绍一个基于 continuation 的备选方案,来减少您在 Web 应用程序开发上投入的精力。
    2005年1月10日  
 
专家提示:EJB 规范中最困扰的五个方面
EJB 技术具有很高的价值,但也存在一定的缺点。本文探讨了多种 bean 类型中存在的缺点和分歧,并就在这些方面如何改进 EJB 规范,提出了建议。
    2005年1月10日  
 
实战 Groovy: 用 Groovy 进行 Ant 脚本编程
Ant 和 Maven 两者在构建处理工具的世界中占统治地位。但是 XML 却凑巧是一种非常没有表现力的配置格式。在“实战 Groovy”这个新系列的第 2 期中,Andrew Glover 将介绍 Groovy 的生成器实用工具,这个工具能够极其容易地把 Groovy 与 Ant 和 Maven 结合在一起,形成更具表现力、更可控的构建。
    2005年1月10日  
 
使用 Rational Application Developer 中用于开发 WebSphere 软件的新 EJB 可视化编辑器
相比于 WebSphere Studio Application Developer 版本 5.1 中的开发工具,IBM 的 Rational Application Developer 中用于开发 WebSphere 软件版本 6.0 的 EJB 可视化编辑器开发工具技术已经相当成熟。本文着重讨论它的新特性, 以便于用户使用这种流行工具的高级和更直观的版本。
    2005年1月10日  
 
IBM Rational PurifyPlus for Windows 投资回报分析
IBM Rational PurifyPlus 赋予了开发人员强大的动力,使他们所交付的软件在可靠性、性能和质量方面能够满足用户的期望。PurifyPlus 通过将 Rational Purify 的 bug 查找功能,Rational Quantify 的性能调整作用和 Rational PureCoverage 的测试准确性这三者组合起来,从而提供了三重功效。组合后产品的效益体现在更优质的代码,更快的开发周期和更少的错误这几个方面。
    2005年1月10日  
 
使用 Eclipse 创建 Notes/Domino 插件
随同本文使用 Eclipse PDE 创建简单的 Notes/Domino 插件。该插件使用 Notes.jar 文件访问 Notes/Domino 后端 Java 类并显示 Personal Address Book 中的生日/周年纪念。
    2005年1月6日  
 
启动第二个虚拟机一起来运行程序――从打印自身程序谈起
本文介绍了如何将程序代码本身打印出来的方法。
    2005年1月4日  
 
State模式在客户端软件中的应用
在对一个J2EE项目的重构、增加新功能的过程中,对客户端GUI程序,我们使用了State模式。结果显示,该模式的使用,不但减少了客户端GUI程序的程序规模(LOC),而且,该部分的开发及单元测试时间大大减少,同时,在集成测试中发现的缺陷数量比使用该模式前平均减少了3倍。本文就该项目中使用State模式的方式进行介绍。
    2005年1月4日  
 
与 Apache Derby 一起使用 DB2 plug-ins for Eclipse,第 2 部分
IBM DB2 Universal Database (UDB) plug-ins for Eclipse 为 Cloudscape 10 和 Derby 用户提供了将 Cloudscape 数据库迁移到 DB2 UDB 数据库的能力。本文将介绍如何使用这个基于 Eclipse 的工具来迁移使用多产品配置的数据库,并解决迁移过程中碰到的所有问题。
    2005年1月4日  
 
IT 架构和应用程序的端到端测试
就在不久之前,工业标准测试实践(针对 C/S 架构的质量问题而发展起来的)仍聚焦于客户端的前端功能测试或者服务器端的后端可伸缩性测试与性能测试。这种"工作上的分离"主要是缘于传统的 C/S(客户端/服务器)架构比当前的多层架构和分布式环境相对简单的事实。在标准的 C/S 架构中,问题要么发生在客户端,要么就发生在服务器端。
    2005年1月4日  
 
在小型项目中使用 IBM Rational Unified Process: 极限编程剖析
IBM Rational Unified Process (或简称 RUP)是一个完善的软件开发过程框架,它具有若干种即装即用的实例。源自 RUP 的过程范围很广,从满足短周期的小型项目需要的轻量级 RUP,到满足大型的、可能是分布式的项目团队需要的更加完备的过程。各种类型和规模的项目都已成功地使用了 RUP。本白皮书说明了如何在小型项目中以轻量级的方式应用 RUP。我们将要讲解如何在一个完整项目的上下文范围内应用极限编程(XP)技术。
    2005年1月4日  
 
Hibernate 简化继承映射
Hibernate 是一个对象关系映射和持久性框架,它提供了许多高级特性,从内省到多态和继承映射。但是,把类的层次结构映射到关系数据库模型,可能会比较困难。本文将介绍三个策略,在日常的编程之中您可以用它们把复杂的对象模型容易地映射到关系数据库模型。
    2005年1月4日  
 
苹果 PowerPC 硬件平台上 Java 技术 IBM 开发工具包
本文展示了如何在用于 IBM POWER 和 IBM PowerPC 硬件的 Linux 发行版本和用于 Apple PowerPC 硬件上的 Linux 中使用全功能的而且得到产品检验的 IBM Java 开发工具。
    2004年12月30日  
 
使用 JSF 和 WebSphere Studio 的全球化 Web 应用程序
许多应用程序框架在按需(On Demand)业务环境下具备全球化特征。JavaServer Faces(JSF)是基于模型―视图―控制(Model-View-Controller,MVC)结构的 J2EE 应用程序的用户接口框架。它也具备全球化的特征。本文向您展示了如何使用 JSF 和 WebSphere Studio Application Developer V5.1.2 来开发全球化 Web 应用程序。
    2004年12月30日  
 
Enterprise Metadata Discovery
面向服务的架构(Service Oriented Architecture,SOA)是未来的发展趋势,但是必须容易与现有 IT 资产相互操作。这个提议的规范解决了在确保通过适配器与现有系统的连通性时遇到的一个关键拦路石。适配器伙伴和其他 ISV 都被邀请来与我们一起向市场交付一个强大的规范和实现。其他 SOA 平台供应商通过采纳这些规范也被邀请来加入这一跨行业的计划,从而允许无缝的互操作性。
    2004年12月27日  
 
Rational开发过程
本文对 Rational 软件开发过程(Rational Software Development Process)的原理和结构给出了高度的描述, 它具有足够的普遍性,可以在规模与应用领域方面,为各个软件产品和项目量身订做。
    2004年12月27日  
 
Java 理论与实践: 动态编译与性能测量
为动态编译的语言(例如 Java)编写和解释性能评测,要比为静态编译的语言(例如 C 或 C++)编写困难得多。在这期的 Java 理论与实践 中,Brian Goetz 介绍了动态编译使性能测试复杂的诸多原因中的一些。
    2004年12月27日  
 
alt.lang.jre: NetRexx 国王万岁!
NetRexx 是流行的 IBM 主机操作系统脚本语言 REXX 的扩展。在 alt.lang.jre 系列的第 6 期中,热心的 Barry Feigenbaum 将向您介绍 Java 平台的一个最稳定、最可靠的脚本选择。
    2004年12月27日  
 
在 WebSphere Studio V5.1.2 中使用代码片段进行 EJB 编程
EJB 为分布式计算和容器管理持久性提供了一个强有力的机制,但是其编程模型比较复杂。本文显示了如何使用 WebSphere Studio 通过生成客户端代码和降低复杂度使 EJB 编程自动化。按照这个思路,本文解释了代码是如何起作用并展示了简单便捷的最佳实践。
    2004年12月27日  
 
Domino 的业务域驱动 Java 类的层次结构
如果您正使用 Domino Java 类开发 Domino 应用程序,那么向您推荐一个实践,即在一个公共基类集合中封装技术性 Domino 数据库实现的细节,并构建业务域驱动 Java 类的层次结构。
    2004年12月23日  
 
用 DB2 Alphablox 和 DB2 Information Integrator 构建基于 Web 的分析应用程序
IBM DB2 Information Integrator 和 DB2 Alphablox 使得 Web 应用程序开发者能快速地构建组件,这些组件把各种各样资源中的数据集成到一个单一的报表或者图表中。作者 C.M. Saracco 将告诉我们如何去做。
    2004年12月23日  
 
介绍 JDK 5.0 中的泛型
JDK 5.0(也叫做 Java 5.0 或者 Tiger)给 Java 语言带来了一些较大的变化。其中最重要的变化就是引入了泛型 ―― 支持定义带有抽象类型参数的类,这些参数由您在实例化时指定。泛型为提高大型程序的类型安全和可维护性带来了很大的潜力。 本教程解释了在 Java 语言中引入泛型的动机,详细介绍了泛型的语法和语义,并讲述了如何在自己的类中使用泛型。
    2004年12月20日  
 
Java Servlet 技术简介
本教程的内容是为不熟悉,或者只是略微熟悉 servlet 的 Java 编程人员准备的。本教程假定您对于下载和安装软件以及 Java 语言(创建类、导入类等)有一般性的了解,但并不假定您已经了解 servlet。本教程包括一个说明 servlet 基本概念的简单例子,以及一个涉及更多内容的例子,它说明如何在小型的合同管理程序中更复杂地使用 servlet。
    2004年12月20日  
 
架起开发和运行之间的桥梁
软件应用程序的开发和部署变得日益复杂,步伐越来越快,并且对于业务成功也更加关键。公司现在需要在维护24×7运行的同时构建、测试和部署新应用程序的频率越来越快。通过将软件配置管理(SCM)与用于管理分布式部署的自动化解决方案集成,公司可以更有效地生产出新版本,并且降低了成本和风险,同时加快了实现价值的时间。
    2004年12月20日  
 
使用 WebSphere Studio 程序化控制长期运行的 BPEL 流程
对那些使用业务流程执行语言(Business Process Execution Language,BPEL)开发应用程序及流程的人来说,本文向您展示了如何使用 WebSphere Studio Application Developer Integration Edition V5.1.1 开发定制 BPEL 流程并创建 Web 应用程序,这些应用程序调用那些 BPEL 流程并与之交互。
    2004年12月20日  
 
开始使用 WebSphere Studio 中的 WebSphere Test Environment
WebSphere Studio 提供了几个测试环境,包含了用来测试、调试和概要分析 J2EE 应用程序的 J2EE 容器的不同配置。测试环境包含 BEA WebLogic、Apache Tomcat 和 WebSphere Application Server,并且他们大多数都提供了本地或远程测试 J2EE 应用程序的能力。
    2004年12月20日  
 
在 BPEL 流程内不使用 Java 代码来发送简单的 JMS 消息
本文向您展示了如何模拟 WebSphere Business Integration Server Foundation 内部的一个流程,来向队列发送 Java Message Service(JMS)消息,而并不用编写任何 Java 代码。
    2004年12月17日  
 
Java 对 Domino Objects 的访问,第 2 部分
本文是由两部分组成的系列文章的第 2 部分:本文将介绍使用 Domino Objects 开发 Java 应用程序中涉及的一些高级主题,其中包括 SSL 加密、servlet、连接池、单点登录、会话超时和回收,本文还给出了一些故障检修技术。
    2004年12月16日  
 
Java 编程介绍
本教程向您介绍利用 Java 语言进行面向对象编程(object-oriented programming,OOP)。Java 平台是一个广泛的主题,所以在本教程中无法全面涵盖,但是起码能够让您可以开始编程。下一期的教程将会提供 Java 编程过程中所需的更多信息和指导。
    2004年12月13日  
 
Java 理论与实践: 流行的原子
在 JDK 5.0 之前,如果不使用本机代码,就不能用 Java 语言编写无等待、无锁定的算法。在 java.util.concurrent 中添加原子变量类之后,这种情况发生了变化。请跟随并行专家 Brian Goetz 一起,了解这些新类如何使用 Java 语言开发高度可伸缩的无阻塞算法。您可以在本文的论坛中与作者或其他读者共享您对本文的看法。
    2004年12月13日  
 
可视化地分析你的应用程序
本教程描述如何使用IBM Rational Visual Trace ( IBM Rational PurifyPlus V2003.06.12的一部分)实现运行时分析。要理解本教程,你应该知道如何在 IBM WebSphere Studio Application Developer (WebSphere Studio) Version 5.1.1 中运行一个应用程序,以及对时序图有一些理解。
    2004年12月9日  
 
Java 专栏:Merlin 的魔力
欢迎阅读 Merlin 的魔力,一个半月刊的短篇系列,目的是为使用 Java 2 标准版,版本 1.4 编程提供帮助。在随后的几个月中,作者 John Zukowski 将提供一些技巧和诀窍来利用此发行版中许多新功能。
    2004年12月8日  
 
Java 专题: Robocode技巧精粹
欢迎来到 Robocode技巧精粹,这是 developerWorks Java 技术专区的一个新特色。在这个技术专栏中,Robocode的爱好者可以得到最新、最酷的编写Robocode战机的技巧。同时也希望广大的Robocode爱好者能够参与到这个技术专栏中,与大家分享的你成功经验。如果你有好的经验技巧,不妨写下来,IBM developerWorks将为大家提供最好的交流窗口。
    2004年12月8日  
 
JDK 5.0 中的并发
本教程将介绍 JDK 5.0 提供的用于并发的新实用程序类,并通过与现有并发原语(synchronized、wait() 和 notify())相比较,说明这些类如何提高了可伸缩性。
    2004年12月6日  
 
利用 WebSphere Studio 构建使用 Web 服务的 SOA,第 2 部分
学习如何创建一个提供 DVD 租赁的 Web 服务以及 Web 服务的客户端程序。教程向您演示如何利用 WebSphere Studio Application Developer Integration Edition 从一个 Java 类创建 Web 服务。
    2004年12月6日  
 
Java 对 Domino Objects 的访问,第 1 部分
本文将向 Java 编程人员介绍 Domino Objects,并讲述本地访问和远程访问的一些基本知识,然后将介绍访问控制。本文的重点是开发 Java 应用程序。
    2004年12月6日  
 
使用ClearQuest管理和执行ClearCase中的软件部署
IBM Rational ClearQuest虽然本身不是一个软件部署工具,但是通过协助记录日志并跟踪部署历史记录和工件,消除手工步骤,将项目协调和时间安排连接在一起,可以帮助使部署过程自动化,并管理发布的工作流。
    2004年12月6日  
 
IBM Rational ClearCase 部署指南
本文并没有涉及与 Rational ClearCase 管理有关的问题,也不涉及 Rational XDE 的其他版本。如果您对这些问题感兴趣,请参看本文最后的参考资料部分有关附加信息的出处。
    2004年12月6日  
 
用 One-JAR 简化应用程序交付
如果您曾经试图把 Java 应用程序交付为单一的 Java 档案文件(JAR 文件),那么您很有可能遇到过这样的需求:在构建最终档案文件之前,要展开支持 JAR 文件(supporting JAR file)。这不但是一个开发的难点,还有可能让您违反许可协议。在本文中,Tuffs 向您介绍了 One-JAR 这个工具,它使用定制的类装入器,动态地从可执行 JAR 文件内部的 JAR 文件中装入类。
    2004年12月6日  
 
用 for/in 在 Java 5.0 中增强循环
在本文中,您将学习这方面的许多内容,其中包括使用 for/in 在数组和集合中进行遍历,以及如何用它避免不必要(或者只是令人厌烦的)类型转换。您还将学习如何实现 for/in,了解新的 Iterable 接口的一些细节,甚至还将学习如何让您自己的定制对象用这个新的构造进行遍历。最后,您将学习 for/in 不能 做什么,以确保您能理解什么时候选择原来的 for 是正确的选择。
    2004年12月6日  
 
带有定制数据类型库的 RELAX NG
RELAX NG 基本上能够完成 W3C XML Schema 语言所能做的一切事情,包括验证文本内容的约束和使用 W3C XML Schema 简单类型规定的属性值。但是,有些约束只有图灵完整的(Turing-complete)语言才能表达,而 RELAX NG 不属于这种语言。所幸的是,您可以通过定制验证代码来动态扩展 RELAX NG,用 Java 编程语言编写代码来检查 RELAX NG 自身不能指定的约束。这样做需要实现三个接口:Datatype、DatatypeLibrary 和 DatatypeFactory。本文将通过检查一个数是否是素数来说明这些接口的实现。
    2004年12月1日  
 
驯服 Tiger: JDK 5.0 源代码许可
Sun 最近通过 Sun 社团源代码许可(Community Source License,SCSL)和 Java 研究许可(Java Research License,JRL)发布了 JDK 5.0 的源代码。这个月,Tiger 的专栏作家 John Zukowski 从新发布的细节中抽空出来,概述了许可的条款以及为开发人员提供了哪些源代码访问。他还简要介绍了一下 J2SE 6.0 发行版 Mustang 令人惊奇的早期访问。
    2004年11月30日  
 
不要忘记内存
尽管 Java 运行时能够解决大量的内存管理问题,但对程序的内存占用情况保持警惕仍然是优化机器性能、测定内存泄露的关键。Windows 上有很多工具可以监控内存的使用。但每种工具各有长短,都有特定的倾向性,常常没有明确地定义自己测量的是什么。作者将澄清关于内存使用的一些常见误解,介绍很多有用的工具,同时还将提供何时以及如何使用它们的指南。
    2004年11月29日  
 
在IBM Rational RequisitePro - RequisitePro 项目管理员中初学者的常见错误
作为IBM Rational RequisitePro入门指南的一部分,本FAQ给使用Rational RequisitePro的项目经理和管理员们提供最有用的指导。
    2004年11月29日  
 
实战 Groovy: 用 Groovy 更迅速地对 Java 代码进行单元测试
不久以前,developerWorks 的作者 Andrew Glover 撰写了一篇介绍 Groovy 的文章,该文章是alt.lang.jre 系列的一部分,而 Groovy 是一个新提议的用于 Java 平台的标准语言。读者对这篇文章的反应非常热烈,所以我们决定开办这个专栏,提供使用这项热门新技术的实用指导。本文是第一期,将介绍使用 Groovy 和 JUnit 对 Java 代码进行单元测试的一个简单策略。
    2004年11月29日  
 
使用具备可过期属性的 portlet 服务来改善 WebSphere Portal 应用程序的性能
本文描述和说明了如何使用 portlet 服务来扩展对门户应用程序开发人员来说可用的缓存选项。它包含 portlet 服务的源代码,以及一个示例应用程序用来说明如何使用它。
    2004年11月22日  
 
现在展示:您自己的在线 MPEG-4 影院
您认为通过网络向大量用户发布多媒体体验是不可能的吗?请再想想!宽带连接的广泛分布和随处可得的强大 PC,已经使得通过网络发送视频和多媒体内容成为现实。只要添加 IBM alphaWorks 的 MPEG-4 工具包,您现在就可以创建自己的 Web 影院。知名作者兼 Java 开发人员 Sing Li 将向您展示如何用 SDK 库对定制 Java MPEG-4 播放器进行编码,如何用 applet 创建随需下载(download-on-demand)的 MPEG-4 播放器,以及如何准备发布内容。
    2004年11月22日  
 
枚举类型入门
Tiger 中的一个重要新特性是枚举构造,它是一种新的类型,允许用常量来表示特定的数据片断,而且全部都以类型安全的形式来表示。Tiger 专家、developerWorks 的多产作者 Brett McLaughlin 将解释枚举的定义,介绍如何在应用程序中运用枚举,以及它为什么能够让您抛弃所有旧的 public static final 代码。
    2004年11月22日  
 
alt.lang.jre: 使用 Rhino
JavaScript 是一门众所周知的语言,它可以动态操作和访问 Web 页面的内容。采用 Rhino(JavaScript 的 100% 纯 Java 实现)之后,很多 Java 开发人员发现,JavaScript 也是一种快速构建和部署基于 GUI 的应用程序的优秀工具。本文是 alt.lang.jre 系列的第 5 部分,在文中,developerWorks 的撰稿人 Michael Squillace 将向您简要介绍 Rhino 的基础知识,它是 Java 平台上的一种基于原型的 Java 语言的可替代品。
    2004年11月22日  
 
特性、用例、需求
本文讲述了特性、用例和需求之间的关系和区别。
    2004年11月21日  
 
集成 COM 和 Java 组件
长时间以来,互操作性问题使得微软的组件对象模型(COM)和 Java 组件之间的集成成为一项令人畏惧的工作。IBM alphaWorks 提供的 Java-COM 桥开发工具简化了集成的工作,而且还为应用程序从 COM 迁移到 Java 平台提供了改良方法。IBM Rational 的 Cheng-Yee Lin、Thomas Houser 和 Peter Parapounsky 是桥接技术的三位缔造者,他们将解释桥接的一些基础知识,并将展示一个表现桥接功能的示例应用程序。
    2004年11月16日  
 
使用 WebSphere Business Integration Event Broker 和 WebSphere MQ 实时传输编写 JMS 发布/订阅应用程序
本文向您展示了如何使用 WebSphere Business Integration Event Broker 和 WebSphere MQ 实时传输来设置并运行一个简单的 JMS 发布/订阅应用程序。该信息为想编写更高级 JMS 应用程序的开发人员提供了一个良好的开端。
    2004年11月15日  
 
Java 理论与实践: JDK 5.0 中更灵活、更具可伸缩性的锁定机制
JDK 5.0 为开发人员开发高性能的并发应用程序提供了一些很有效的新选择。例如,java.util.concurrent.lock 中的类 ReentrantLock 被作为 Java 语言中 synchronized 功能的替代,它具有相同的内存语义、相同的锁定,但在争用条件下却有更好的性能,此外,它还有 synchronized 没有提供的其他特性。这是否意味着我们应当忘记 synchronized,转而只用 ReentrantLock 呢?并发性专家 Brian Goetz 刚从他的夏季休假中返回,他将为我们提供答案。
    2004年11月14日  
 
测试您的 DB2 数据库: 用 JMeter 测量性能
作者 Kulvir Singh Bhogal 介绍了一个叫作 JMeter 的开放源代码工具,该工具可以测量 DB2 Universal Database 的查询性能和吞吐量。
    2004年11月10日  
 
理解 JCA 事务
事务处理是大多数实际 J2EE 应用程序开发中至关重要的一部分。在本文中,IBM 解决方案架构师 Mikhail Genkin 将解释如何通过 J2ee 连接器架构,将不同的企业信息系统(EIS)运用到事务当中。并通过一个示例电子商务应用程序,演示了不同 EIS 和资源适配器提供的不同级别的事务支持,展示了这些因素是如何影响应用程序设计的。最后,文章概括了 Mikhail 的一些选择技巧,在进行企业开发的时候,可以用这些技巧选择正确的事务界定策略和 EJB 部署描述符设置。
    2004年11月10日  
 
通过 WebSphere Business Integration Server Foundation V5.1 在 CMP bean 中使用关系型存储过程
本文描述了在关系数据库中利用存储过程开发 CMP 实体 bean 方面的考虑和部署过程。
    2004年11月8日  
 
表达式计算:分析与设计
在我做过的一个针对网络设备和主机的数据采集系统中,某些采集到的数据需要经过一定的计算后才保存入库,而不是仅仅保存其原始值。为了提供给用户最大的灵活性,我设想提供一个用户界面,允许用户输入计算表达式(或者称为计算公式)。这样,除了需要遵从少量的规则,用户可以得到最大的灵活性。
    2004年11月7日  
 
Eclipse简介和插件开发
Eclipse 是一个很让人着迷的开发环境,它提供的核心框架和可扩展的插件机制给广大的程序员提供了无限的想象和创造空间。目前网上流传相当丰富且全面的开发工具方面的插件,但是Eclipse已经超越了开发环境的概念,可以想象Eclipse将成为未来的集成的桌面环境。目前的Eclipse本身就具备资源管理和外部程序的功能,加上无所不能的插件,将构成一个丰富多彩的工作环境而不仅仅是一个IDE。
    2004年11月7日  
 
专家提示:Wayne Beaton 的提示
模型(Model)- 视图(View)- 控制器(Controller)模式在应用程序中定义三个层。控制器层将视图层中用户的请求转换成模型层可以理解的消息,并且也将模型层提供的信息转换成视图层可以理解的一种形式。在一般的应用程序中所犯的一个普遍的错误就是将业务处理放置在了控制器当中。
    2004年11月6日  
 
用 XDoclet 减少代码膨胀
开放源代码的 XDoclet 代码生成引擎,是许多领先的 Java 框架不可缺少的组成部分,常常被用作面向属性的编程和持续集成的引擎。但是 XDoclet 还有一些不太惹人注目的地方:对初级开发人员来说,它太难掌握、太难精通。在这篇文章中,流行作者 Sing Li 以 XDoclet 为对象,揭示了其内部简单却优雅的设计,使您能够理解这项技术,并将它应用在实践当中。
    2004年11月5日  
 
利用 RAD 工具、IBM 扩展 JSF 组件和 WebSphere Studio V.5.1.2 开发 Web 应用程序
本文描述了集成到 WebSphere Studio V5.1.2 中的 IBM Extended JavaServer Faces 组件的 Fileupload/Download 特性。用户可以使用这些组件和附带的快速应用程序开发 RAD 工具来构建用于上传内容并显示的 Web 应用程序。
    2004年11月2日  
 
驯服 Tiger: 当 Ocean 和 Synth 遇上 Metal
    2004年11月1日  
 
服务数据对象简介
如果您认为 J2EE 编程模型和 API 迫使开发人员在特定于技术的配置、编程和调试上浪费了太多的时间,那么欢迎您阅读本文。很多 Java? 开发人员都怀疑如何能以统一的方式访问异构的数据,并对各种提出要解决这一问题的编程框架感到失望。在本文中,Java 开发人员 Bertrand Portier 和 Frank Budinsky 将介绍使用服务对象数据(SDO)的下一代数据编程。
    2004年10月25日  
 
alt.lang.jre: Nice 的双倍功能
Nice 是可兼容 JRE 的、面向对象的语言,为 Java 平台提供了极强的语言表达能力。Nice 还允许在任何 Java 虚拟机上实现许多 Java 5 中的裁边功能。
    2004年10月25日  
 
Trove 集合类
Trove 是一种开放源代码的 Java 集合包,提供了核心 Java 集合类的高效替代品,特别针对于实现其键或值是基本类型的集合。本期性能观察文章中,性能优化专家 Jack Shirazi 和 Kirk Pepperdine 考察了 Trove 类与传统的 Java 集合的区别,以及何时使用 Trove 类。
    2004年10月21日  
 
Cloudscape 与 Tomcat 的集成
Cloudscape 是用 Java 实现的数据库管理器。而 Tomcat 是用 Java 实现的 servlet 基准容器。本文是一指导性手册,提供了在三种常见场景中一步步将二者进行集成的秘诀,这三种场景是:原型集成、临时集成和企业集成。
    2004年10月21日  
 
用 HtmlUnit 和 WebSphere Studio 测试 Web 应用程序
开放源代码测试框架 JUnit 和它的一些扩展(如 HtmlUnit)为 Web 应用程序测试带来了许多好处,特别是在极限编程(extreme programming,XP)环境中,并且用 WebSphere Studio 可以将它们很好的集成。
    2004年10月18日  
 
通过JavaMail访问Hotmail邮箱
相信许多人都有MSN聊天工具的帐号,例如abc@hotmail.com ,这个账号其实也是一个邮件地址,可以进行正常的邮件收发功能,你可以通过网址 http://www.hotmail.com 来访问和操作这个邮箱进行邮件的收发。但是这个邮箱有一个限制就是它并不提供POP3或者SMTP服务,也就是说一般的邮件客户端工具无法使用这个邮箱,虽然现在有不少的邮件工具可以支持Hotmail邮箱,但是如果我们需要在我们的Java项目中增加对Hotmail邮箱的支持,那往往会不知从什么地方开始入手,因为SUN公司提供的JavaMail 本身并不提供对除了POP3/IMAP以及SMTP外其他协议的支持。
    2004年10月14日  
 
IBM 安全提供者:概述
迄今为止,IBM 的 Java 平台开发工具箱的 1.4.2 版,为 Java 2 平台提供了来自 IBM 的最全面的安全性。其中包括一些特定于 IBM 的安全提供者,这些安全提供者包含一些新特性和很多增强功能。IBM 安全专家 Yanni Zhang、Audrey Timkovich 和 John Peck 将介绍一些 IBM 安全提供者,评论它们的功能,阐明它们与 Sun 的提供者有何不同。
    2004年10月12日  
 
用 TableModel Free 框架简化 Swing 开发
本文将介绍 TableModel Free(TMF)框架,该框架利用 SWing JTable 消除了对 TableModel 的需要。通过将所有特定于表的数据移到编译好的代码之外,并将它们放在可配置的 XML 文件中,TMF 框架使 JTable 具备了更强的可配置性。框架开发人员和 Java UI 的热心支持者 Michael Abernethy 将带您遍历整个 TMF 框架,帮助您把 TableModel 从数百行代码减少到只有区区一行代码,把管理工作变成小菜一碟。
    2004年10月12日  
 
开放标准、开放源码和 Domino 6:通过 Python 和 Java 访问 Domino Directory
通过说明如何构建两个不同的应用程序来访问 Domino Directory,我们结束了关于 Lotus Domino 6 中的开放标准和开放源码的系列文章。第一个应用程序是使用 GIMP Toolkit (GTK) 创建的 Python 应用程序,第二个应用程序是使用 Standard Widget Toolkit (SWT) 创建的 Java 应用程序。
    2004年10月11日  
 
使用 Lotus Notes 和 Eclipse 管理和运行 Java 程序
利用 Eclipse IDE 为 Lotus Notes/Domino 开发 Java 代理。下载并安装 Eclipse,然后了解使用 Eclipse 创建项目、调试 Java、重构代理以及将代理导入 Domino Designer 是何等轻松。
    2004年10月11日  
 
走近 Jazzy
对于包含自然语言文本输入的应用程序,用户期望它具备拼写检查功能。因为从头开始构建一个拼写检查器不是一项简单的任务,所以这篇文章为您提供一个使用 Jazzy 的工作区。Jazzy 是一个开放源代码的 Java 拼写检查器 API。
    2004年10月11日  
 
JADT 入门,第 2 部分
在介绍 JADT 的第 1 篇文章中,介绍了来自 alphaWorks 的一套类库,用于在 Java 应用程序中访问语言特性。接下来,Rakesh Midha 在本文中给出了 JADT 体系结构和 API 的详细说明。他还通过剖析一个驱动程序的实现示例,向您展示了如何把这个 API 的实现作为驱动程序启动。
    2004年10月8日  
 
JADT 入门,第 1 部分
Java 字典和辞典 API(Dictionary and Thesaurus API for Java,JADT)是 Java 应用程序中访问语言特性的一个类库。本文是由两部分组成的系列文章的第 1 部分,在本文中,JADT 开发人员 Rakesh Midha 从用户的角度讨论了 JADT,并展示了如何在 Java 应用程序里使用 JADT。他讨论了 JADT 中涉及的各种不同的类和设计,以及 JADT 中可以使用的一些特性。第 2 部分则深入讨论体系结构和 API 的细节,为那些希望实现 JADT 驱动程序的用户提供指导。
    2004年10月8日  
 
驯服 Tiger: 访问环境变量和调用子进程
访问平台专有的信息并不是一件容易的事。虽然可以使用 Runtime.exec() 创建进程,但由于平台之间的差异,构造参数集常常令人头痛不已。此外,System 的 getenv() 方法从 Java 编程开始就遭到反对。在本文中,专栏作家 John Zukowski 将介绍新的 ProcessBuilder 类,它使得访问平台专有的信息更容易一些。请在本文的讨论论坛中与作者以及其他读者分享您对本文的看法。
    2004年9月30日  
 
关注性能:边缘剖析
调优的并不总是速度,有时候需要调整应用程序的其他方面,如果应用程序需要调优,要做的第一件事通常是使用剖析程序监控应用程序。但是,剖析并不总是可行的,有时候原因可能很可笑。关注性能的本期文章中, Jack 和 Kirk 讲述了他们最近经历的一件事:他们奉命剖析一个胖客户机,事实上它是如此庞大,根本没有为剖析程序留下空间。
    2004年9月27日  
 
DB2 Stored Procedure Builder 以及 DB2 Development Center for OS/390 and z/OS 所支持的 JDBC 驱动程序
本文将描述在 OS/390 和 z/OS 平台上使用 DB2 SPB 或 DB2 DC 创建 Java 存储过程时,可用的一些 JDBC 驱动程序选项。
    2004年9月27日  
 
迁移到 Eclipse:Eclipse 和 JBuilder 评估开发指南
很多程序员都正在转向 Eclipse 这个日益流行的开放源代码开发环境。本文是为那些熟悉 JBuilder 而又正在考虑迁移到 Eclipse 的程序员编写的。本文首先简要对 Eclipse 3.0 和免费的 JBuilder X Foundation 版本进行比较,然后展示了在 Eclipse 中如何实现基本的功能。
    2004年9月27日  
 
迁移到 Eclipse:评估 Eclipse 的开发指南
如果您当前的 IDE 是 Netbeans、IntelliJ IDEA 或 Borland JBuilder,则我们的开发指南将向您演示 Eclipse IDE 如何搭建、特性如何以及如何非常方便地使用。
    2004年9月27日  
 
迁移到 Eclipse:从 Netbeans 向 Eclipse 迁移开发指南
到目前为止,大多数 Java 编程人员都听说过 Eclipse,它是可扩展的开放源代码开发平台,而且正迅速成为最流行的用于 Java 的 IDE。本文将 Eclipse 介绍给目前正使用 Netbeans 以及正考虑转向 Eclipse 的编程人员。本文简单比较了这两种 IDE 中的特性、它们的易于使用性和稳定性,重点展示了 Eclipse 的一些主要特性,以及这些特性与 Netbeans 中的有什么不同。
    2004年9月27日  
 
利用动态代理的 Java 验证
Java 平台的 1.3 版本引入了动态代理工具。动态代理为 Java 开发人员提供了许多有意义的解决方案,包括可以把验证逻辑轻松地从应用程序的核心业务逻辑中去耦的验证方案。在这篇文章中,Java 开发人员 Eric Olson 向您展示动态代理如何让核心应用程序代码独立于验证例程,而只关注业务逻辑。
    2004年9月27日  
 
Java 认证成功之路,第 3 部分:SCBCD
Sun Certified Business Component Developer (SCBCD) for the Java 2 Platform, Enterprise Edition 1.3 考试面向所有使用 J2EE 技术开发封装应用程序业务逻辑的服务器端组件的开发人员。他们可以通过这项考试,证明自己对 Enterprise JavaBeans (EJB) 2.0 体系结构、技术特性和应用程序开发生命期的理解达到了专家级的水平。
    2004年9月23日  
 
在 DB2 Universal Database 中转换 UTC 时间戳
本文讨论一个 DB2 UDB 用户定义函数的 Java 实现,该函数带有两个输入参数,分别是一个 UTC 时间戳和一个地区名,并返回新地区中对应的时间戳。文中包含了示例代码。
    2004年9月20日  
 
使用 J2ME 设备访问 DB2 Everyplace:第 2 部分
本教程由两部分组成,向开发人员展示了如何使用 J2ME DB2 Everyplace MIDP ISync API 构建 DB2 Everyplace 移动应用程序。
    2004年9月16日  
 
DB2 Content Manager Web 应用程序: 性能调优和调试方法
对了解更多关于 J2EE 应用程序性能调优技术和调试方法方面的知识感兴趣吗?本文集中讨论在 IBM DB2 Content Manager V8.x 上开发的 J2EE 应用程序的高级体系结构。
    2004年9月16日  
 
Tiger 中的注释,第 1 部分: 向 Java 代码中添加元数据
注释,J2SE 5.0 (Tiger) 中的新功能,将非常需要的元数据工具引入核心 Java 语言。该系列文章分为两部分,在这第 1 部分中,作者 Brett McLaughlin 解释了元数据如此有用的原因,向您介绍了 Java 语言中的注释,并研究了 Tiger 的内置注释。
    2004年9月16日  
 
Tiger 中的注释,第 2 部分: 定制注释
本系列文章的 第 1 部分 介绍了注释 ―― J2SE 5.0 中新的元数据工具,并重点讨论了 Tiger 的基本内置注释。一个更强大的相关特性是支持编写自己的注释。本文中,Brett McLauglin 说明了如何创建定制注释,如何用自己的注释注解文档,并进一步定制代码。
    2004年9月16日  
 
IBM DB2 plug-ins for Eclipse, Version 1.0.1 Beta
IBM DB2 plug-ins for Eclipse,Version 1.0.1 Beta 是一款用于浏览和创建 Cloudscape Version 10.0(beta 版)数据库对象的工具。此外,还可以用它将 Cloudscape Version 10.0 数据库迁移到 DB2 UDB 数据库。
    2004年9月13日  
 
Cloudscape 常见问题概述
Cloudscape 是一种占用内存少、多用户、标准驱动的关系数据库系统,它完全用 Java 编写,适合嵌入到 Java 应用程序和服务器中。本文回答了关于 Cloudescape 的一些常见问题。
    2004年9月13日  
 
使用 J2ME 设备访问 DB2 Everyplace:第 1 部分
本教程由两部分组成,将帮助开发人员使用 J2ME API 开发 DB2 Everyplace 移动应用程序,以及使用 J2ME 工具箱在 J2ME Emulator 中部署该应用程序。第 1 部分将介绍移动应用程序的开发。
    2004年9月9日  
 
Faces Portlet开发框架:Faces Portlet 开发框架中数据的组织与处理 (下)
这是有关Faces Portlet开发的系列文章的第四部分,我们将继续有关Faces Portlet开发框架中数据的组织与处理的相关话题。
    2004年9月9日  
 
Faces Portlet开发框架:Faces Portlet 开发框架中数据的组织与处理 (上)
本文是Faces Portlet 开发系列文章的第三部分,介绍了如何对不同页面中的数据进行组织和处理
    2004年9月9日  
 
随需应变的运行环境
随需应变的运行环境(On Demand Operating Environment,ODOE)基于面向服务的体系结构(Service Oriented Architecture,SOA)的概念。SOA 将每一个应用程序或者资源视为实现了特定的、可标识的一组(业务)功能的服务。除了业务功能,随需应变环境中的服务可能还需要实现管理接口,以参与环境的边界配置、操作和监视。本文介绍了随需应变的运行环境。
    2004年9月8日  
 
提高灵活性,简化 IT
本文深入探讨了随需应变的运行环境,并回答了三个主要的问题:我如何才能在基础设施中实现业务的灵活性,以便根据业务的需求迅速推进 IT 的发展?我应该如何才能简化对 IT 基础设施的管理方式?以及我如何才能从小的项目开始,同时充分利用现有的 IT 资产?
    2004年9月8日  
 
在 WebSphere Portal V5 中处理虚拟门户 (续)
本文是对在WebSphere Portal V5 处理虚拟门户一文的补充,帮助读者实际完成在 WPS V5中的虚拟门户的实现。
    2004年9月6日  
 
与 Enterprise Information Integration 技术结合使用 Service Data Objects
将 Enterprise Information Integration (EII) 技术与 Service Data Objects (SDO) 合并可以帮助面向对象的编程人员方便地使用多种不同种类的数据源,减少集成异类数据的复杂性。在本文中,我们将说明合并的原因,描述一个示例体系结构,并提供基于 IBM WebSphere Studio 中早期 SDO 支持和 DB2 Information Integrator 中 EII 支持的编码示例。
    2004年9月6日  
 
为测试 Java 应用程序生成证书链
学习如何创建数字证书链以测试您的软件。IBM 软件工程师 Paul H. Abbott 通过展示如何使用可免费获得的 OpenSSL 工具箱创建任意长度的证书链,阐明了这个很少有文档说明的过程。他还描述了常见的证书属性,并展示了一些将证书读取到 Java keystore 中的示例 Java 代码。
    2004年9月2日  
 
用 IBM Holosofx 进行业务流程管理
业界分析人士预计公司 IT 预算的 40% 将花费在集成上,其中包括业务流程集成。在本文中,Natalie Walker Whitlock 分析了作为 IBM WebSphere 业务集成平台一部分,IBM Holosofx 业务流程建模和监视工具是如何帮助客户实现强大的业务集成解决方案的。
    2004年9月2日  
 
在 WebSphere Studio 中创建服务于 J2EE 应用程序的症状数据库
本文向您说明了如何跟踪和诊断运行于 WebSphere Application Server V5.1 上的用户应用程序的运行时问题。
    2004年8月27日  
 
驯服 Tiger: 线程中的默认异常处理
跟踪无法预期的运行时异常可能是一件又慢又费力的事情,只获得默认线程名称和堆栈跟踪通常是不够的。在驯服 Tiger 这一期专栏中,Java 开发人员 John Zukowski 向您展示了如何通过替代默认行为来定制输出。他还对比了通过细分 ThreadGroup 定制输出的老方法与通过提供自己的 UncaughtExceptionHandler 定制输出的新方法。
    2004年8月26日  
 
使用EclipseME开发J2ME程序
本文向您介绍了如何在 Eclipse IDE 中使用 EclipseMe 插件开发 J2ME 应用程序。本文首先对 EclipseMe 插件及其安装配置步骤进行了简介,并通过一个简单例子介绍了如何构建一个基本的 J2ME 应用程序。
    2004年8月23日  
 
利用 DB2 UDB 来使用 Java CachedRowSet 实现: 断开连接
高速缓存行集(Cached Row Set)是 Java 1.5 提供的一项新功能,源自 JSR114 的努力。这一新功能使您可以拥有一个可串行化的断开连接的对象。这意味着您可以连接到数据库,以结果集的形式取得数据,释放连接并在本地操纵这些数据,然后恢复连接以完成事务,这样可以大大减少对连接和服务器资源的使用。本文展示这一切是如何实现的,并包含示例代码。
    2004年8月16日  
 
关注性能: 确定更改的风险
在性能调优时,不可避免地会在应用程序中产生一些 bug,这些 bug 可能会让团队无法继续前进,而且可能显著地影响项目的进度。如果计划很紧(它们什么时候不紧呢?),那么性能调优工作很有可能会使项目落后、延期甚至取消。幸运的是,软件度量(software metrics)可以提供帮助。问题是:如何管理一个合理的时间框架,使系统摆脱已知的瓶颈?假定您理解改进性能需要的所有更改,那么该问题的答案取决于及时进行更改的能力。当代码中遇到未预料到的问题时,在工作过程中,必需进行的改变或者需要考虑的改变的数量常常会不断增加。您也许认为这是一项不太可能完成的任务,您是对的――精确地计划任何形式的代码重构实际上是不可能的,除非有某种可以对风险进行评估的方法。幸运的是,软件度量(software metrics)可以为您提供帮助。
    2004年8月16日  
 
Reflexive User Interface Builder 简介
IBM Reflexive User Interface Builder (RIB)是来自 alphaWorks 的一项新技术,是用来构建和提供 Java AWT/Swing 和 Eclipse SWT GUI 的应用程序和工具包。RIB 指定了一种灵活易用的 XML 标记语言来描述 Java GUI,并为创建这些 GUI 提供了引擎。可以使用 RIB 测试和评估基本的 GUI 布局和功能,或者为应用程序创建和提供 GUI。
    2004年8月16日  
 
alt.lang.jre: 感受 Groovy
虽然 Java 语言因其严密性和扩展性的承诺而在整整一代程序员中胜出,但是 Groovy 预示了 Java 平台上的一个编程新时代,这种语言是以方便性、适宜性和敏捷性为出发点定义的。在新的 alt.lang.jre 专栏的第二期文章中,Andrew Glover 对提议添加到 Java 平台的标准编程语言作了非正式的介绍。
    2004年8月12日  
 
Java 理论与实践: Web 层的状态复制
本月,专栏作家 Brian Goetz 分析了状态复制的一些选项以及如何最有效地使用 HttpSession 以提供好的伸缩性和性能。
    2004年8月12日  
 
将J2EE应用程序移植到WebSphere应用程序服务器 第三部分
本文详细解答了把开放源码 Cocoon 框架通过 WSAD 移植部署到 WebSphere 应用服务器5.0.2 的过程中遇到的常见问题.
    2004年8月5日  
 
将J2EE应用程序移植到WebSphere应用程序服务器 第一部分
本文介绍了将 J2EE 应用程序从不同平台移植到 WebSphere 应用服务器上的共同方法和常见的问题.
    2004年8月5日  
 
将J2EE应用程序移植到WebSphere应用程序服务器 第二部分
本文介绍了 ClassLoader 对移植的影响,讲解了 WebSphere 类加载器的结构与移植时应注意的事项.
    2004年8月5日  
 
整合不同的 IT 系统,第 4 部分: 用 WebSphere Studio Enterprise Developer 开发 CICS COBOL 应用程序
如果您刚接触 WebSphere Studio Enterprise Developer,并希望编写 CICS COBOL 大型机程序,那么本文就是为您写的。本文提供了基础知识,并假定您对所涉及的任何产品都不了解。Assembler 或 PL/I 程序员可以容易地将本文中的信息转化到他们自己的环境中。
    2004年8月5日  
 
使用 Element Construction Set 创建带有格式的日志
Jakarta Element Construction Set(ECS)是一个使用 Java 语言和面向对象方法创建标记语言文档的开放源代码项目。Java 开发人员 Amit Tuli 介绍了 ECS 并展示了如何用它一步一步地在日志文件中生成格式良好的状态报告。我们将创建一个示例应用程序来帮助您更好地理解 ECS 及其用法。还将介绍这个 API 的一些其他用法。
    2004年8月5日  
 
利用 Java 技术进行 XML 编程,第 3 部分
这是一篇高级教程,讨论了使用 Java 技术处理 XML 文档的一些更复杂的主题。作者向您展示了如何完成诸如生成 XML 数据结构、操作那些结构、实现 XML 解析器与非 XML 数据源的连接这样的任务。如您所料,所有的示例都是基于开放标准的。
    2004年8月2日  
 
为中小企业构建电子商务基础,第 3 部分: 在 tile 中使用框架来分离 WebSphere 应用程序中的静态和动态内容
在本系列的第 3 部分中,作者展示了他们如何设计 Swish Swash Windshield Wiper Company 的网站。他们的设计将 Web 布局与内容分离,并将静态 HTML 文件从应用服务器上转移到 Web 服务器上。作者还讨论了如何在 tile 中使用框架以将布局与内容分离。
    2004年8月2日  
 
Java 语言中的函数编程
如果您从事大型企业项目开发,您就会熟悉编写模块化代码的好处。良构的、模块化的代码更容易编写、调试、理解和重用。Java 开发人员的问题是,函数编程范型长期以来只是通过像 Haskell、Scheme、Erlang 和 Lisp 这样的特殊语言实现的。在本文中,作者 Abhijit Belapurkar 展示了,如何使用像闭包(closure)和 高阶函数(higher order function)这样的函数编程结构,在 Java 语言中编写良构的、模块化的代码。
    2004年7月29日  
 
利用 Java 技术进行 XML 编程,第 2 部分
这是一篇高级教程,讨论了使用 Java 技术处理 XML 文档的一些更复杂的主题。作者向您展示了如何完成诸如生成 XML 数据结构、验证 XML 文档、处理名称空间、实现 XML 解析器与非 XML 数据源的连接这样的任务。
    2004年7月26日  
 
使用 WS-AT 和 JTA 开发企业级应用程序,第 1 部分
本教程将通过实践让您理解 Web 服务原子事务(Web Services Atomic Transaction,WS-AT)技术,并循序渐进的指导您使用 WS-AT、Web 服务和 EJB组件来创建真正的企业级应用程序。
    2004年7月26日  
 
整合不同的 IT 系统,第 3 部分: 设计外部评估解决方案
在本文中,Andy Gibbs 描述了对整合后的索赔系统的一个扩展,它使现有的人工操作变为一个自动索赔过程。新的自动过程利用 Web 服务与外部事故评估人员交互,并引入了新的 WebSphere 技术用于过程管理。
    2004年7月26日  
 
概要分析 SQL 过程-SQL PL Profiler 介绍
使用 Stinger 及 这个 GUI 工具,分析存储过程和复杂应用程序中 SQL 语句的性能。
    2004年7月26日  
 
将 CSV 数据装载到 WebSphere Commerce Express Version 5.5 中
本教程展示了如何装载常用的逗号分隔的值(CSV)数据来填充 WebSphere Commerce 目录。所包含的样例文件展示了如何使用 WebSphere Commerce Loader 包中包含的命令行工具将 CSV 数据装载到 WebSphere Commerce - Express Version 5.5 数据库中。该示例使用了样例商店 Express。
    2004年7月22日  
 
使用 WebSphere Studio 将 CMP 实体 Bean 字段映射到 CLOB 列
本文向您展示如何使用 WebSphere Application Server 转换器来解决把字符型大型对象列映射到 EJB 容器管理持久性实体 Bean 字段时会出的问题,以及进行其他的转换或变形,比如更改在数据库和 Java 之间传递的字符串值的格式。
    2004年7月22日  
 
Lotus Domino 与 IBM WebSphere 的集成开发
很多客户已经在其环境中集成了 IBM Lotus Domino 和 IBM WebSphere。本文介绍了如何利用 Domino 和 WebSphere 各自的相对优势创建应用程序。
    2004年7月22日  
 
如何处理 WebSphere Studio 挂起
由于死循环、死锁或其他的问题,工具和应用程序有时会挂起(不会响应任何鼠标和键盘输入)。WebSphere Studio 也不例外。本文向您展示如何识别发生挂起的组件,并确认挂起是因为用户错误、设计错误,还是因为产品中的缺陷。
    2004年7月19日  
 
提高在 Java 平台上的生产率
本文中,作者介绍了 Jython 并展示了它如何提高 Java 平台上的生产率。
    2004年7月19日  
 
关注性能:调优垃圾收集
如果您是当前写网志(blogging)狂热者中的一员,则可能听说过 Blog-City,这是由苏格兰的一家小公司 Blog-City Ltd. 拥有和运营的网志站点。当一些意料之外的性能问题突然出现时,Java 性能专家 Jack Shirazi 和 Kirk Pepperdine 被邀请帮助进行 Blog-City 的技术调整。他们的检测工作因为受硬件约束和整个项目所使用的通信通道(IRC、ftp 和 偶尔的电子邮件)的限制而变得复杂。
    2004年7月16日  
 
使用实体 Bean、会话 Bean 处理 DB2 的事务
本教程帮助开发人员使用实体 Bean 和会话 Bean 来处理多个 DB2 Universal Database 的事务。
    2004年7月15日  
 
用 AOP 增强契约
    2004年7月15日  
 
Java 理论与实践: 消除 bug
本月,专栏作家 Brian Goetz 以 Chris Grandstaff 在前面发表的 FindBugs,第 1 部分: 提高代码质量 为基础,向您展示了这个静态分析工具如何帮助分析代码,以使其符合本栏目前面的文章中讨论过的设计原理,请在相应的讨论论坛中与作者及其他读者分享您有关本文的心得体会。
    2004年7月12日  
 
利用 DB2 访问异构数据,第 2 部分:将 EJB 发布到门户环境
本文是该系列教程中的第二篇,该教程展示了如何利用 EJB 组件通过 SQL 视图来访问异构数据,从而简化门户应用程序。该系列的第一篇教程展示了如何安装数据库和集成层,以及如何开发 EJB 组件。本教程中,您将利用第一篇教程中所构建的 EJB 组件,并将之部署到门户环境中,以便简化对底层数据的访问。
    2004年7月8日  
 
Faces Portlet开发框架:基于Faces Portlet开发框架构建Portlet表单应用
本文是有关Faces Portlet开发的系列文章的第二部分,这里我们会关注于如何构建Portlet表单应用。
    2004年7月8日  
 
Faces Portlet开发框架:Faces Portlet开发框架初体验
本文介绍了最新版WSAD 5.1.2上基于 JSF技术的Faces Portlet 框架的特色,从 MVC模式角度与基本的 portlet 进行了比较,并进一步深入分析了Faces portlet 开发过程中的关键类的具体含义与功能。
    2004年7月8日  
 
Jena 简介
RDF 越来越被认为是表示和处理半结构化数据的一种极好选择。本文中,Web 开发人员 Philip McCarthy 向您展示了如何使用 Jena Semantic Web Toolkit,以便在 Java 应用程序中使用 RDF 数据模型。
    2004年7月8日  
 
BlueSpace 墙壁显示项目
BlueSpace 墙壁显示(wall display)是关于 Java 平台上潜在的多媒体开发的一个令人兴奋的演示。该项目首先是由 IBM Worldwide Accessibility Center 在 2003 年开发的,并且在今年的 JavaOne 大会上进行了展示。在该项目中,将一个大尺寸的、高分辨率的可视化屏幕实现为一个投影的计算机显示网格。最终的显示在尺寸和形式上是可以无限延展的,并且具有许多多媒体和展示能力。定期的 developerWorks 撰稿者和 Worldwide Accessibility Center 工程师 Barry Feigenbaum 博士,总结了该项目背后的概念和实现细节,他是该项目开发团队的主管。
    2004年7月8日  
 
利用 DB2 访问异构数据,第 1 部分:创建用于操纵联邦数据的 EJB
访问异构数据的一种方式是使用 IBM DB2 Information Integrator,它与一个像 WebSphere Application Server 这样的 J2EE 应用程序服务器协同工作。在本教程中,您将了解到如何使用这些产品来为异构数据创建一个统一的集成层,以及构建可以访问和操纵这些数据的 Enterprise JavaBean 组件。
    2004年7月1日  
 
用 CodeRuler 征服中世纪王国
保卫您的城堡!占据您的领土!命令您的骑士英勇地战斗并击败他们的敌人。夺取敌人阵地并占领其土地,同时避开他们险恶的骑士。如果编写庞杂的 Java 代码让您感到沮丧,那么现在也许可以实现您的中世纪之梦了。在提高 Java 编程技能和掌握 Eclipse 开发环境的同时,可以管理您自己的王国。这都包括在超级 CodeRuler 中的难忘工作时光中了。模拟游戏爱好者 Sing Li 将您带入统治终极王国的快速通道。
    2004年7月1日  
 
驯服 Tiger: 并发集合
Doug Lea 最初编写的 util.concurrent 包变成了 JSR-166 ,然后又变成了 J2SE 平台的 Tiger 版本。这个新库提供的是并发程序中通常需要的一组实用程序。如果对于优化对集合的多线程访问有兴趣,那么您就找对地方了。
    2004年7月1日  
 
使用 WebSphere Studio 和 Ant 执行无人值守的日常构建――第 3 部分
本文说明了如何下载和安装一个 WebSphere Studio 插件来扩展 headless Ant 能力,以支持将项目导入工作区。本文还包括自动构建过程所需的一个可下载的 build.xml 文件及相关文件。
    2004年6月29日  
 
refactoring Patterns:第三部分
任何一种技术都可能有它自己的麻烦。但是往往在我们使用一种新技术的时候,可能还不能深入到发现它带来的问题,正如Martin Fowler所说: 在学习一种能够极大提高生产力的新技术时,你很难看到它不能应用的场合。
    2004年6月29日  
 
用Java构造Intranet范例查询系统
今天,以数据库为中心的网站已经远远超越了曾经统治Web的简单网页应用。特别地,随着人们越来越多地把原先在纸张上完成的任务转移到联机应用,Intranet的复杂性迅速增加。雇员信息、工作协调、产品信息、技术资料、客户关系管理――这只是常见Intranet应用的一小部分。一旦我们考虑这些系统构成的总体,即使是一个小型的企业Intranet也会拥有庞大的信息库。
    2004年6月29日  
 
Java 消息服务介绍(更新)
本教程提供了对 Java Message Service (JMS)的概述,并提供了用它开发程序的一些基础知识。JMS 是由 Sun Microsystems 开发的,它为 Java 程序员提供一种访问企业消息系统的方法,即 面向消息的中间件 (MOM)。MOM 通过中间媒介以间接方式在应用程序之间异步传送数据,用这种方法提供一种以松散耦合的灵活方式集成应用程序的机制。
    2004年6月28日  
 
学习如何用 Jython 编写 DB2 JDBC 工具
您希望降低用 DB2 UDB JDBC 编写的工具的开发和维护成本吗?在这篇文章中,Victor Yang 解释了如何借助 Jython 来做到这一点。
    2004年6月28日  
 
J2EE 与 IBM 对象-关系数据库
本文简要地介绍了 J2EE 环境,并讨论了 J2EE 开发中使用的面向对象方法(分析、设计、实现),以及一些与对象持久性相关的问题,因为对象持久性与对象-关系数据库管理系统(ORDBMS)的使用相关联。
    2004年6月24日  
 
开发 Web 应用程序的快捷途径
本文向 Java 开发人员介绍了 WebSphere Application Server - Express 开发 DB2 UDB Express 应用程序的基础知识。
    2004年6月21日  
 
Java 共享类
如今 Java 应用程序面临一个问题:它们惟一可用的容器是 Java 虚拟机(Java virtual machine,JVM)进程自身。需要多个 JVM 来彼此隔离 Java 应用程序,这会带来两个主要的负面影响。第一个是每次 JVM 调用所花费的启动时间,第二个是每个 JVM 所需的内存占用。考虑到这些开销以及不能在一个 JVM 中隔离应用程序,很显然需要进行一些基础性工作才能解决这些问题。答案就是共享类。在本文中,IBM Java Technology Center Development Team 成员 Lakshmi Shankar、Simon Burns 和 Roshan Nichani 讨论了 JVM 中共享类背后的概念、它们的工作原理以及用户如何利用这种技术。他们还讨论了这种技术的几种当前实现以及在将来会有什么样的应用。
    2004年6月21日  
 
标准窗口小部件工具箱的 Java 二维作图
大多数 Java 开发人员同意 Swing/AWT 只有一个方面强于 Eclipse 平台的标准窗口小部件工具箱(Standard Widget Toolkit),这就是 Java 2D。直到现在仍然没有容易的方法将 Java 2D 的快捷性能与 SWT 用户界面组件的更强的可移植性、功能和性能集成到一起,但是这一点就会改变了。在继他的颇受欢迎的介绍从 Swing 应用程序移植到 SWT 的教程之后的这篇文章中,Java 开发人员和 Eclipse 热衷者 Yannick Saillet,展示了在 SWT 组件和 Draw2D 图形中绘制二维图像有多容易。
    2004年6月21日  
 
在 Linux 上构建 LSID 中心 -- 基于 Java 的生命科学标识权威中心整合生物数据资源
我们将向您演示如何从头开始逐步构建一个基于 Java 的生命科学标识(Life Sciences Identifier,LSID)中心。我们将演示如何在 Linux 平台上分别针对一个极小数据集和从蛋白质序列数据库(protein sequence database)Swiss-Prot 下载的数据,构建 LSID 中心。
    2004年6月17日  
 
细胞自动机和音乐
利用计算机、数学和 Java Sound API,加入一些 Java 代码,就可以制作出一些独特迷人的音乐来。IBM 专职软件工程师 Paul Reiners 展示了如何用 Java 语言实现一些基本的算法作曲。他给出了代码示例和由 Automatous Monk 程序所生成的 MIDI 文件,这个程序使用了开放源代码 jMusic 框架,以一种名为细胞自动机的数学结构为基础进行作曲。
    2004年6月17日  
 
使用 IBM Lotus Workplace Web Content Management 导航组件来构建动态 Portal 菜单
Content Navigator Portlet 补充了 IBM Lotus Workplace Web Content Management Content Viewer Portlet 的功能。这个附加的 Portlet 将一个站点或站点区域的导航器组件显示为一组动态 Portlet 页面。当选择了每个页面时,将用符合站点范围的适当内容更新 Content Viewer Portlet。
    2004年6月17日  
 
使用 WebSphere Studio 和 Ant 执行无人值守的日常构建――第 2 部分
本文是三篇关于在 WebSphere Studio 中自动构建的文章中的第二篇,本文向您展示在使用 CVS 作为存储库的情况下如何进行自动构建。其中包括一个样本 WebSphere Studio 项目,以及 Ant 脚本和包装器代码,可以利用它们来从命令行运行构建。
    2004年6月14日  
 
使用 WebSphere Studio 和 Ant 执行无人值守的日常构建――第 1 部分
本文是三篇关于在 WebSphere Studio 中自动构建的文章中的第一篇,它为您介绍了如何运用 Ant 和特定的存储库在“干净”的环境中执行无人值守的集中日常构建。
    2004年6月14日  
 
整合不同的 IT 系统,第 2 部分: 理解索赔系统
在这个关于整合两家保险公司的不同 IT 系统的解决方案的系列文章中,我们主要关注的领域是索赔系统的整合和自动化,这导致一个公共前端。本文描述索赔系统,并给出整合后的索赔系统解决方案的体系结构和实现的概述。还包括对所使用的产品、平台和工具的说明。第 1 部分 概述了使用业务流程管理来创建集成的解决方案。
    2004年6月14日  
 
FindBugs,第 2 部分: 编写自定义检测器
FindBugs 是一种可以扩展和定制以满足自己团队独特要求的静态分析工具。在本系列的第 2 部分中,高级软件工程师 Chris Grindstaff 向您展示如何创建特定于应用程序的缺陷检测器。
    2004年6月14日  
 
用 IBM Rational XDE Developer for Java 为 DB2 UDB 数据库建模
本文向您展示了如何使用 IBM Rational XDE Developer for Java 为 DB2 UDB 数据库j进行 UML 建模的基础知识。
    2004年6月10日  
 
Java 理论与实践: 关于异常的争论
关于在 Java 语言中使用异常的大多数建议都认为,在确信异常可以被捕获的任何情况下,应该优先使用检查型异常。语言设计(编译器强制您在方法签名中列出可能被抛出的所有检查型异常)以及早期关于样式和用法的著作都支持该建议。最近,几位著名的作者已经开始认为非检查型异常在优秀的 Java 类设计中有着比以前所认为的更为重要的地位。在本文中,Brian Goetz 考察了关于使用非检查型异常的优缺点。
    2004年6月10日  
 
FindBugs,第 1 部分: 提高代码质量
静态分析工具承诺无需开发人员费劲就能找出代码中已有的缺陷。当然,如果有多年的编写经验,就会知道这些承诺并不是一定能兑现。尽管如此,好的静态分析工具仍然是工具箱中的无价之宝。在这个由两部分组成的系列文章的第一部分中,高级软件工程师 Chris Grindstaff 分析了 FindBugs 如何帮助提高代码质量以及排除隐含的缺陷。
    2004年6月7日  
 
WebSphere Studio V5.1.2:让 Java 开发变得更简单
最新版本的 WebSphere®>||CHR(59)||< Studio Site Developer 和 WebSphere Studio Application Developer 的发布对于各地的软件开发团体来说是一项重大的技术突破。
    2004年6月7日  
 
关注性能: 谈论垃圾
您的应用程序是否经常出现 out-of-memory 错误?用户是否感受到响应时间有些不稳定?应用程序是否在相当长的时间内变得没有响应?应用程序的性能是否显得迟缓了?如果对任何一个问题的回答是肯定的,那么您很可能遇到了垃圾收集的问题了。先别进行优化,且听听 JavaPerformanceTuning.com 的 Jack Shirazi 和 Kirk Pepperdine 来解释如何识别垃圾收集问题,并由此帮助您回答这个问题:您知道垃圾收集器在干什么吗?
    2004年6月7日  
 
Java 授权内幕
如果您是那种需要从里到外透彻了解一种技术的工作方式以有效地使用它的人,那么您一定会喜欢这篇对 Java 平台的授权体系结构的导游。听 Java 架构师 Abhijit Belapurkar 讲解两种不同(但相关)的授权模型的详细的、幕后的介绍:以代码为中心的 Java 2 平台安全体系结构和以用户为中心的 Java 认证和授权服务。
    2004年6月3日  
 
J2EE 应用程序中的数据管理和数据持久性
本文分析了在 Java 平台上可用的两个数据管理策略:Java 对象序列化和 Java 数据库连接(JDBC)。尽管本质上这两种数据管理策略并不存在孰优孰劣的问题,但在管理企业信息系统时,JDBC 轻而易举地得以胜出。在本文中,Java 开发人员 G.V.B. Subrahmanyam 和 Shankar Itchapurapu 对序列化和 JDBC都进行了介绍,并通过讨论和实例来向您展示了 JDBC 是您的最佳选择的原因。
    2004年6月2日  
 
Java 编程的动态性,第 8 部分: 用代码生成取代反射
从本系列前面的文章中,您了解到反射的性能比直接访问要慢许多倍,并了解了用 Javassist 和 Apache Byte Code Engineering Library (BCEL)进行classworking。Java 顾问 Dennis Sosnoski 通过演示如何使用运行时 classworking,来用全速前进的生成代码取代反射代码,从而结束他的 Java 编程的动态性 系列。
    2004年6月1日  
 
理解 IBM DB2 Records Manager 3.1 体系结构
通过 DB2 Records Manager(IRM)可将电子记录快速而容易地嵌入主机商业应用程序中,IRM 是用 J2EE 平台无关的语言重写的。本文描述了 IRM 的体系结构和设计。
    2004年5月31日  
 
使用WSAD V5.1.1开发基于WDO的Web应用
本文主要分为两个部分,第一部分将让读者先对WDO的基本概念,体系框架及其发展趋势有些了解;而第二部分则会先介绍WDO的功能,然后通过一个完整的范例来介绍如何使用WSAD V5.1.1开发基于WDO的Web应用。
    2004年5月31日  
 
用 Jython 构建 JUnit 测试包
开发人员有多种理由决定自动化单元测试。许多人甚至进一步发挥它,自动化这些测试的定位和执行。但是如果想要测试装具模块(test harness)像静态定义的那样运行呢?请跟随开发员 Michael Nadel,看看如何利用 Python 模拟静态定义的 JUnit TestSuite 类。
    2004年5月31日  
 
向 Java 应用程序伸出援助之手
即使是帮助系统设计师有时也可能需要帮助,有了 JavaHelp 2.0,终于可以提供帮助了。在本文中,将介绍如何使用 Java 平台特有的帮助系统 API 构建一个标准的、全功能的、容易使用的系统,以向 Java 应用程序用户展示在线信息。
    2004年5月31日  
 
现在你可以定义自己的语言!
JavaCC 是一个功能极其强大的‘编译器的编译器’工具,可用于编制上下文无关的语法。本文演示了如何将 JavaCC 用于支持终端用户对 DB2 UDB 数据库编制简单的布尔查询。
    2004年5月27日  
 
Java 认证成功之路,第 2 部分:SCWCD
Sun Certified Web Component Developer (SCWCD) 是 J2EE 领域最令人羡慕的证书之一。如果您想要获得 SCWCD 证书,需要知道不仅仅要学习 servlet 和 JSP 技术,还要深入了解考试目标中指定的主题。甚至对于有经验的程序员,在考试中的表现欠佳也是很正常的,因为他们可能没有精通目标所覆盖的内容。要想成功通过考试,遵循某种学习方法是很重要的,而该方法是在考试目标的指导下进行的。
    2004年5月24日  
 
用 DB2 Application Development 客户机开发 SQLJ 应用
本教程首先考察了 DB2 Application Development 客户机用于创建 SQLJ Java 过程的一些特性,然后展示如何使用 IBM Distributed Debugger 调试 Java 存储过程。
    2004年5月20日  
 
从瀑布型开发到迭代型开发的转变
本文来自 Rational Edge :一个理想的迭代开发方法模型在很多方面与理想的瀑布开发模型有着根本上的不同。但是,从实际来说,没有一个团队严格的应用了每一种开发方法模型。本文解释了为什么开发团队决定逐步的从类似瀑布型的开发方法转变成更加类似迭代开发的方法,同时也概述了能够帮助这种转变的步骤。
    2004年5月20日  
 
Java 理论与实践:让 J2EE 脱离容器
大多数项目不是属于 J2EE 应用程序就是属于 J2SE 应用程序。不过,有一些 J2EE 技术可以存在于 J2EE 容器之外,并且有些 J2SE 应用程序可以对它们加以利用。本月,Brian Goetz 分析如何在 J2SE 应用程序中使用某些 J2EE 服务。
    2004年5月20日  
 
介绍 Jython,第 2 部分:编程要素
这是介绍 Jython 脚本语言的两部分教程的第 2 部分。Jython 是一个与 Java 平台无缝地集成的 Python 实现。Python 是一种强大的、面向对象的脚本语言,主要用于 UNIX 环境。
在本教程的 第 1 部分 ,介绍了 Jython 的基本内容,包括安装和设置、访问选项和文件编译、语法和数据类型、程序结构、过程语句和函数。第 2 部分将介绍使用这种强大的脚本语言的更高级的内容,首先是用 Jython 进行面向对象编程。还将介绍用任何语言进行应用程序开发时都很重要的内容,包括调试、字符串处理和文件 I/O。
    2004年5月17日  
 
用 ANT 自动化 DB2 UDB 的安装过程
这里提供了一种使用 Apache ANT 的新实现来自动化 DB2 UDB 安装过程的极佳方式。
    2004年5月17日  
 
介绍 Jython,第 1 部分:轻轻松松编写 Java 程序
这个两部分的教程将介绍 Jython 脚本语言,并提供开始开发基于 Jython 的应用程序所需的足够知识。Jython 是 Python 的一种实现,已无缝集成到 Java 平台中。Python 主要在 UNIX 环境中使用,是一种强大的面向对象的脚本语言。
    2004年5月8日  
 
使用 Easy Struts for Eclipse 开发 Struts -- 如何使用 Easy Struts 插件
本文向您介绍了如何在 Eclipse IDE 中使用 Easy Struts 插件开发 Struts 应用程序。本文首先对 Easy Struts 及其安装配置步骤进行了简介,并通过一个循序渐进的例子介绍了如何构建一个基本的 Struts 应用程序。本文还介绍了增强 Struts 应用程序的各种方法,例如连接数据库,对应用程序进行模块化,内容的国际化和本地化,异常处理和创建自定义插件等等。最后,您将学习如何将自己的 Struts 应用程序部署到 Tomcat Web 服务器上。
    2004年5月8日  
 
双重检查锁定及单例模式
所有的编程语言都有一些共用的习语。了解和使用一些习语很有用,程序员们花费宝贵的时间来创建、学习和实现这些习语。问题是,稍后经过证明,一些习语并不完全如其所声称的那样,或者仅仅是与描述的功能不符。Java 编程语言也不例外,其中的双重检查锁定就是这样的一个绝不应该使用的习语。在本文中,Peter Haggar 介绍了双重检查锁定习语的渊源,开发它的原因和它失效的原因。
    2004年5月1日  
 
获得消息:J2EE 1.4 中的消息
随着越来越多的应用服务器符合 J2EE 规范,Java 开发人员必须要考虑如何以及是否移植他们的 J2EE 1.3 兼容的代码。在本文中,David Currie 对 J2EE 规范中一个特定领域的改变进行了分析:消息。您将明白哪些内容需要改变、哪些可保持原样,以及有哪些新的机会在等着您。
    2004年4月29日  
 
迭代开发需要一种不同的观点
本文来自 Rational Edge :RUP 的专家解释了被软件开发项目成员需要的职责和观点上的改变,并且介绍了成功的从传统的瀑布型方法向迭代方法转变的客户案例。
    2004年4月29日  
 
超越软件开发建模: 使用 IBM Rational Rose 和 IBM Rational Rose XDE Modeler/Developer 创建绘图法
本文来自于 Rational Edge :本文描述了一种建模的方法,这种方法可以被应用到技术的和非技术的系统中,并产生一种绘图法 ― 内部依赖的系统或者相互依赖的系统模型。
    2004年4月26日  
 
通过 WebSphere Studio 和 WebSphere Application Server 将 Web 服务实现为有状态会话 bean
本文描述了如何扩展 WebSphere Application Server V5.02 Web 服务运行时来支持实现为有状态会话 bean 的 Web 服务。其中包含了样本代码和详细说明,并用 WebSphere Studio Application Developer V5.1 来论证和测试它的新功能。
    2004年4月26日  
 
无需容器的对象关系映射
当您自以为已经了解了所有开发工具时,肯定又会冒出一个新的工具。在本文中,developerWorks 的固定撰稿人 Rick Hightower 用一个真实世界的例子向您介绍两个最激动人心的企业新技术。Hibernate 是一个对象关系映射工具,而 Spring 是一个 AOP 框架和 IOC 容器。Rick 介绍了如何结合这两者,为企业应用程序构建一个事务持久层。
    2004年4月26日  
 
用 Runtime Syp 调整 Eclipse 的启动性能,第 2 部分 -- 成功的骗局
Runtime Spy 是 Eclipse.org 提供的核心工具 (Core Tools) 之一,它是特别设计的一个透视图及一组视图,用于帮助您找到并诊断插件启动性能问题。本文介绍了如何发现可能会导致启动时间过长的常见设计错误,以及如何去纠正它们。其中的一个案例研究说明了 Runtime Spy 如何用于提高 IBM WebSphere Studio Application Developer 的启动性能。上一篇文章,也就是 第 1 部分,对 Runtime Spy 进行了介绍。
    2004年4月26日  
 
DB2 UDB V8.1 Family Application Development 认证准备教程,第 5 部分:Java 编程(共 7 部分)
在本教程中,您将学习编写与 DB2 Universal Database 接口的 Java 代码。本教程是一系列用于准备 DB2 UDB V8.1 Family Application Development Certification 考试 (Exam 703) 的七篇教程中的第五篇。
    2004年4月22日  
 
在线教程:创建基于 Web 的用户界面,使用 WebSphere Studio V5.1.1 来开发 JavaServer Faces 应用程序
本教程将向您演示如何在 WebSphere Studio V5.1.1 中使用 JavaServer Faces(JSF)技术。它将带您完成一个简单的应用程序示例,这个示例将使用 JavaServer Faces 来实现一个简单的消息传递中心。
    2004年4月22日  
 
为中小型企业建立电子商务基础,第 1 部分:不要让巨兽把您难倒
本文介绍了解决方案提供商如何帮助中小型企业电子商务。以一个虚构的公司为例,对中小型企业的以下活动进行了案例分析:扩展简单 Web 表示以使它可以进行商务、实时协作、伙伴转换和现场分析。解决方案使用了 IBM Express Portfolio 中的产品。
    2004年4月22日  
 
整合不同的 IT 系统,第 1 部分:用业务流程管理创建集成的解决方案
关于整合不同的 IT 系统的这一系列的第一篇文章围绕着合并和收购对典型行业集成方案进行了概述。它描述了一家保险公司在收购公司后,试图迅速整合和管理两个分散的和不同的 IT 基础结构时所面临的技术问题。它描述了收购所带来的业务和技术要求,以及保护已有遗留基础结构的要求为所有解决方案带来的约束。
    2004年4月19日  
 
关注性能:使用 NIO 来扩展 MegaJogos
在关注性能系列的本期文章中,Kirk Pepperdine 和 Jack Shirazi 将追随 Macros 的踪迹,发现 NIO 性能的一些出色优点。
    2004年4月14日  
 
Java 理论与实践:修复 Java 内存模型,第 2 部分
这个月,他介绍在新 JMM 中 volatile 和 final 的语义是如何变化的,这些改变使它们的语义符合大多数开发人员的直觉。其中一些改变已经在 JDK 1.4 中出现了,另一些改变则要等到 JDK 1.5。请您在本文的讨论论坛上与作者及其他读者交流您的想法。
    2004年4月12日  
 
用 IFrame 跟上潮流
IFrame 是一种应用程序窗口体系结构,它可以有自定义颜色、自定义边框、自定义形状、自定义组件、甚至透明性。有了 JFrame,就不需要在应用程序中总是使用乏味的、老的 JFram 了。在本文中,IT 专家 Michael Aberethy 介绍了 IFrame 类,并展示了如何用它将标准 JFrame 应用程序窗口立刻转换为先进的 IFrame。
    2004年4月12日  
 
在线教程:轻松愉快地创建 EJB
本教程将向您介绍 IBM WebSphere Application Developer 的最新版本中可用的 EJB 工具,其中包括许多有用的向导和 GUI 工具。您将看到如何以最少的编码来构建各种 EJB 组件。
    2004年4月8日  
 
多线程、多平台环境中的跟踪
大多数 Java 程序员都使用某种跟踪系统来跟踪开发中的代码的潜在错误和问题。然而,多线程和多平台环境可能产生大量莫名其妙的跟踪数据。在本文中,软件工程师 Daniel Would 提供了一些技巧,帮助您理解复杂应用程序中产生的跟踪数据。您将了解如何使用开放源代码的日志记录软件包 log4j 来生成包含丰富信息的日志文件。您还将看到如何使用标准 UNIX shell 命令来挖掘您需要的信息数据。
    2004年4月8日  
 
健壮、可维护的客户端解决方案
本教程完成了创建 J2SE 客户端来使用由 Application Server 提供的 Web 服务的过程。
    2004年4月5日  
 
掌握自定义 JSP 标签
如果发现自己在 JSP 应用程序中加入了大量 Java scriptlet,那么本教程就是为您准备的。 阅读本教程后,就会掌握将 Java 代码从 JSP 页面中清除出去所需要的信息。
    2004年4月5日  
 
快速但又完整的开发
本教程是由三部分教程组成的系列的第二部分。在本教程中你将看到应用开发的过程和紧密的与初始的模型结合将如何产生巨大的好处。Rational XDE 具有很多的特性可以使设计和实现的过程无缝的和紧密的集成。 开发人员现在可以轻松地拥有在代码和模型之间地双向工程、一系列的标准模式、辅助建模、逆向工程代码到模型(就像在第一篇教程中看到的那样)的支持,并也拥有许多其他的工具、向导和捷径。开发人员不但可以快速方面的拟建应用的模型,也可以将这些模型转换成实际的应用。其目的是对应用从概念的评估到开发到测试、部署和多个版本提供一个完整的过程。
    2004年4月5日  
 
Java 应用程序的部署考虑
本文描述了从 Java 应用程序访问 DB2 UDB 服务器一些经常会遇到的场景,并且为每种场景的设置提出了建议。
    2004年4月5日  
 
WebSphere Studio 使用外部 EAR 应用程序
本文描述了一种使用 WebSphere Studio Application Developer 来重用外部 EAR 应用程序中的代码的简单而优雅的方法。
    2004年4月5日  
 
使用 WSAD V5 和 Portal Toolkit V5 来实现 Portlet 消息传递
本文介绍了如何用 WSAD 和 Portal Tookit 插件开开发包括 Portlet 消息传递的 Portlet 应用程序,以及如何启用一个 Portlet 来发送一条消息到另一个 Portlet。
    2004年4月5日  
 
用 DbUnit 和 Anthill 控制测试环境
极限编程方法的兴起将测试驱动开发和持续集成带入了主流 Java 开发实践。如果没有采用正确的工具,在 Java 服务器端开发中使用这些技术很快会成为一场噩梦。在本文中,软件开发人员 Philippe Girolami 描述了如何处理持续集成,以及如何联合使用 DbUnit 和 JUnit,以便在每次测试之前通过设置数据库状态来端到端地控制测试环境。
    2004年4月1日  
 
驯服 Tiger: 格式化输出
Tiger 为 Java 编程世界带来了 printf 风格的格式化输出,这个月,专栏作家 John Zukowski 讨论以类似 C 的方式支持 printf 和格式化字符串的所有方面。请在讨论论坛上参与本文的讨论。
    2004年4月1日  
 
基于事件的NIO多线程服务器
JDK1.4提供的无阻塞I/O(NIO)有效解决了多线程服务器存在的线程开销问题,但在使用上略显得复杂一些。许多基于NIO的多线程服务器程序往往直接基于选择器(Selector)的Reactor模式实现。这种简单的事件机制对于较复杂的服务器应用,显然缺乏扩展性和可维护性, 而且缺乏直观清晰的结构层次。本文将通过一个基于事件回调的NIO多线程服务器的设计,试图提供一个简洁、直观、易于扩展的NIO多线程服务器模型。
    2004年4月1日  
 
Java 编程的动态性,第 7 部分: 用 BCEL 设计字节码
Apache Byte Code Engineering Library (BCEL)可以深入 Java 类的字节码。可以用它转换现有的类表示或者构建新的类,因为 BCEL 在单独的 JVM 指令级别上进行操作,所以可以让您对代码有最强大的控制。不过,这种能力的代价是复杂性。在本文中,Java 顾问 Dennis Sosnoski 介绍了 BCEL 的基本内容,并引导读者完成一个示例 BCEL 应用程序,这样您就可以自己决定是否值得以这种复杂性来换取这种能力。
    2004年4月1日  
 
使用 Rational XDE 和 WebSphere Studio 进行建模
在这个系列教程的第一篇中,你将看到 Rational 的各种建模、开发和其他的一些工具。Rational 工具中有许多新的功能,我们无法在一篇教程中完全覆盖到所有的功能,--甚至在三篇教程也很难-- 因此我们将快速的浏览一下这些功能,然后完成一些简单的任务以介绍这些可用的工具。
    2004年3月29日  
 
从HTML中攫取你所需的信息
本文介绍了使用 JAVA 语言如何简单快速的攫取 HTML 中包含的数据。我们会借助一些现有的成熟 API 来完成这件事,我们引入了一个开源的项目-- HTML Parser ,这是一个在 SourceForge.net 上比较活跃的项目之一,目前的最新版本是 1.4 发行版。
    2004年3月29日  
 
使用 AOP 来维护遗留 Java 应用程序
如果您曾经接管并且必须维护某个基于 Java 的应用程序,那么本文就是为您准备的。作者 Abhijit Belapurkar 将向您展示如何使用面向方面编程(aspect-oriented programming,AOP)来对即使最不透明的遗留应用程序获得前所未有的见解。
    2004年3月29日  
 
用 Kerberos 为 J2ME 应用程序上锁,第 3 部分: 建立与电子银行的安全通信
如果您已经学习了本系列的前两部分,那么现在可以开始第三部分,也就是最后一部分,您将设置一个 KDC 服务器,向它发送 Kerberos 票据请求并取得其响应。然后,您将学习处理 KDC 服务器的响应所需的低层 ASN1 处理方法,以便取得票据和会话密钥。取得了服务票据后,将向电子银行的业务逻辑服务器发送一个建立安全上下文的请求。最后,您将学会与电子银行业务逻辑服务器进行实际的安全通信。
    2004年3月27日  
 
使用 Apache 的 POI 和 HSSF 将 Excel 电子表格数据加载到 DB2
在本文中,您将学习如何使用 Apache 的 POI 和 HSSF 构建能将 Microsoft Excel 电子表格数据有效地传送给 DB2 UDB 数据库的应用程序。
    2004年3月25日  
 
设计具有本机性能的跨平台 Java UI
您能编写跨多种平台编译、同时执行速度仍然像本机代码一样快的 Java 代码吗?这是一个困扰 Java 开发人员的难题,对于具有复杂 UI 的应用程序来说尤为如此。在本文中,开发人员 Vladimir Silva 建议了一种针对这个难题的有趣解决方案。您将学习如何使用 JNI 来访问 SLIK,后者是一个跨平台的 C API,它同时在 Windows 和 UNIX 上提供本机性能。
    2004年3月25日  
 
用Eclipse集成GT3开发网格服务
Eclipse是一款优秀的开放源代码集成开发环境(IDE),随着其不断的成熟,越来越受到开发者的喜爱。在本文中,笔者用Eclipse集成了Globus Toolkit 3.0来开发了一个具体的网格服务,并重点介绍了用Eclipse的标准窗口小部件工具箱(SWT)开发网格服务的GUI界面程序。
    2004年3月23日  
 
使用 Eclipse 帮助系统为项目编制文档 -- 构建易于使用且可搜索的帮助文档
具有非常强大的 IDE 的 Eclipse 平台中有其自己的帮助系统,这个系统基于一个引用 HTML 文件的 XML 目录表。鲜为人知的是,您不必去编写 Eclipse 插件就可以使用它。任何项目都可以使用一个简化版的平台来提供专业的、易用的和可搜索的文档。这个文档系统已经成功地应用于许多 IBM 项目,包括像 WebSphere Application Server 那样大的项目。
    2004年3月22日  
 
Java 编程的动态性,第 6 部分: 利用 Javassist 进行面向方面的更改
Java 顾问 Dennis Sosnoski 在他的关于 Javassist 框架的三期文章中将精华部分留在了最后。这次他展现了 Javassist 对搜索-替换的支持是如何使对 Java 字节码的编辑变得像文本编辑器的“替换所有(Replace All )”命令一样容易的。想报告所有写入特定字段的内容或者对方法调用中参数的更改中的补丁吗?Javassist 使这变得很容易,Dennis 向您展示了其做法。
    2004年3月15日  
 
Java 编程的动态性,第 5 部分: 动态转换类
在经过一段时间的休息之后,Dennis Sosnoski 又回来推出了他的Java 编程的动态性 系列的第 5 部分。您已在前面的文章中看到了如何编写用于转换 Java 类文件以改变代码行为的程序。在本期中,Dennis将展示如何使用 Javassist 框架,把转换与实际的类加载过程结合起来,用以进行灵活的“即时”面向方面的特性处理。这种方法允许您决定想要在运行时改变的内容,并潜地在每次运行程序时做出不同的修改。在整个过程中,您还将更深入地了解向JVM 中加载类的一般问题。
    2004年3月13日  
 
Java 理论与实践:修复 Java 内存模型,第 1 部分
在这一期的 Java 理论与实践 中,Brian Goetz 展示了如何加强 volatile 和 final 的语义,以修复 JMM。这些更改有些已经集成在 JDK 1.4 中;而另一些将会包含在 JDK 1.5 中。
    2004年3月11日  
 
AOP 解决紧密耦合的难题
许多 Java 开发人员已经接受了面向方面编程(AOP)的非强制性风格和灵活性,特别是在用于建立高度松散和可扩展的企业系统时。在本文中,您将看到 AOP 的功能设计概念之一(静态横切)如何把可能是一大堆混乱的紧密耦合的代码转变成一个强大的、可扩展的企业应用程序。
    2004年3月8日  
 
使用 Rational XDE 加速 J2EE开发
Rational?XDE TM 为最流行的集成开发环境(IDE)提供了真正的无缝集成的可视化建模环境。Rational XDE 不但具有自动化生成代码和代码/模型的同步的功能,它还具有其他更多的特性来辅助软件的开发。为了能够更好的利用Rational XDE,你需要了解XDE所提供的强大的J2EE模式和代码模板的能力,你既可以在开发当中应用J2EE模式和代码模板,也可以自己来定义和创建他们。本文将向大家展示如何使用Rational XDE 所提供的能力完成一个简单的J2EE项目的开发。
    2004年3月5日  
 
驯服 Tiger: 从 XML 中装载属性
Properties 类已不是新东西了,它在 Java 编程的早期就有了,并且几乎没有什么变化。J2SE 的 Tiger 版本增强了这个类,不仅可以用它在单独一行中指定用等号分隔的多个键-值对,还可以用XML 文件装载和保存这些键-值对。在 驯服 Tiger的这一期文章中,John Zukowski 展示了如何驾驭这匹新一代的“役马”。请在本文对应的讨论论坛上与作者及其他读者分享您对本文的想法(您也可以单击文章顶部或底部的讨论来访问该论坛)。
    2004年3月5日  
 
为您的Web应用建立基于JMX的管理系统
本文中,作者讲述了如何 应用JMX 建立 Web 应用的管理系统。
    2004年3月4日  
 
走上开放之路: .NET 开发人员的 J2EE 基础
本文是 走上开放之路 这个由三部分组成的路标图系列中的第一部分,这个系列旨在帮助 .NET、Windows 客户机/服务器和 ASP 应用程序开发人员迅速转到 Java 平台。在这个 走上开放之路 系列中,作者将帮助您利用现有的开发知识,铺就您走上基于开放标准的编程之路。在本文中,资深企业架构师 David Carew 和 Jeff Wilson 将为希望把电子商务应用程序移植到 J2EE,或从头构建 J2EE 应用程序的 .NET开发人员提供一个高级指南。请在配套的讨论论坛中与作者和其他读者交流您关于本文的想法。
    2004年3月1日  
 
走上开放之路: ASP 开发人员的 J2EE 基础
本文是 走上开放之路 这个分为三部分的路标图系列中的最后一部分,本系列旨在帮助 .NET、Windows 客户机/服务器和 ASP 应用程序开发人员迅速转到 Java 平台。在这个 走上开放之路 系列中,作者将帮助您利用现有的开发知识,铺就您走上基于开放标准的编程之路。在本文中,资深企业架构师 David Carew 和 Jeff Wilson 将为希望把电子商务应用程序移植到 J2EE,或从头构建 J2EE 应用程序的 ASP 开发人员提供一个高级指南。
    2004年3月1日  
 
使用 Velocity 实现客户端和服务器端模板
Velocity 是一种通用的、开放源代码的模板解决方案,可以在报告生成/数据转换应用程序中独立使用,也可以在 MVC 模型框架中作为视图组件。本文中,Sing Li 介绍了 Velocity,并说明如何将其模板处理功能集成到客户端独立应用程序、服务器端 Web 应用程序或者 Web 服务中。
    2004年3月1日  
 
关注性能: 异常的异常
Java 性能狂热者 Jack Shirazi 和 Kirk Pepperdine 分别是 JavaPerformanceTuning.com 的董事和首席技术官,他们从事全球 Internet 上的性能问题讨论,关注开发者遇到的困难。这个月在JavaRanchh 上的访谈,通过深入分析故事背后的故事,他们反驳了关于异常的营火会故事(译者注:即 campfire stories,是 JavaRanchh 推出的一个专栏,专门以童话故事的形式讲授 Java 技术)。
    2004年3月1日  
 
Servlet API 和 NIO:最终组合在一起
在本文中,Java 开发人员 Taylor Cowan 向您展示了如何把生产者/消费者模型应用到消费者非阻塞 I/O,从而轻松地让 Servlet API 全新地兼容 NIO。在这个过程中,您将会看到采用了什么来创建实际的基于 Servlet 并实现了 NIO 的 Web 服务器;您也将发现在企业环境中,那个服务器是如何以标准的 Java I/O 服务器(Tomcat 5.0)为基础而创建的。
    2004年2月26日  
 
在二维动画中使用基于图像的路径
如果可以绘制需要的内容并让程序完成其余部分,为什么还要自己编写动画序列呢?在本文中,Barry Feigenbaum 和 Tom Brunet 展示了如何结合无损图像、Swing 技术和作者自己的基于 Java 的动画引擎在 2D 动画中生成固定对象的运动序列。
    2004年2月23日  
 
J2EE 探索者:使用 Java Servlets 2.4 来执行过滤
Servlet API 很久以前就已成为企业应用开发的基石,而 Servlet 过滤器则是对 J2EE 家族的相对较新的补充。在 J2EE 探索者 系列文章的最后一篇中,作者 Kyle Gabhart 将向您介绍 Servlet 过滤器体系结构,定义过滤器的许多应用,并指导您完成典型过滤器实现的三个步骤。他还会透露 bean 的一些激动人心的变化,预计刚发布的 Java Servlet 2.4 规范会引入这些变化。
    2004年2月23日  
 
J2ME 101,第 4 部分:通用连接框架
通用连接框架(Generic Connection Framework,GCF)为资源有限的设备提供了一个可扩展的、通用的I/O 框架。在 J2ME 101 系列文章的最后一期中,作者 John Muchow 介绍了 GCG 接口,展示了它们如何为开发提供帮助并在 MIDP 上支持不同类型的网络和文件 I/O。
    2004年2月19日  
 
Eclipse 和 HSQLDB:将关系数据库服务器嵌入到 Eclipse 中,第 2 部分 -- 如何编写将 HSQLDB 数据库服务器集成到 Eclipse Workbench 中的插件
本系列的第 1 部分介绍了用于嵌入式应用程序的 HSQLDB 引擎,它也可以作为以“大型”数据库为对象的项目的开发平台。我们创建了一个 Eclipse 插件,并在 Workbench 菜单中启动了已有的工具。在此第 2 部分,我们将考虑如何利用 Eclipse 的特性来克服在第 1 部分中开发的插件的一些局限性,例如允许多个同时活动的 HSQLDB 服务器实例,每个实例分别去监听不同 TCP 端口上的连接。
    2004年2月16日  
 
Java 编程中的 XML-RPC
XML-RPC 提供了一种非常简单的解决方案。该方法简洁、易于实现,且得到了大多数流行编程语言(例如 Java 语言和 C++)的开放源代码库的良好支持。在本文中,软件开发人员兼培训师 Roy Miller 谈论了 XML-RPC 是什么以及如何有效地使用它。
    2004年2月16日  
 
使用JMeter进行性能测试
JMeter 是 Apache 组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现,最新的版本是1.9.1。本文中作者将向大家介绍如何使用 JMeter 进行测试。
    2004年2月13日  
 
掌握 Tiles 框架
本教程讲述如何使用 Tiles 框架来创建可重用的表示组件。(在最初创建它时,Tiles 框架被命名为 Components。 后来改变了名称是因为“components(组件)”代表了太多不同的东西,不过原先的名称的精髓仍然得到了保留。) 然而,除了站点布局之外,使用 Tiles 还能做其他许多事情。例如,您可以划分表示层以更好地重用布局、HTML以及其他可视组件。
    2004年2月12日  
 
利用 Java 技术进行 XML 编程,第 1 部分
本教程涵盖了使用 Java 技术操作 XML 的基础知识,考察了常用的 XML API 并讨论如何解析、创建、操纵和转换 XML 文档。
    2004年2月9日  
 
Apache Ant 101:使 Java 项目生成易如反掌
不管您是经验丰富的 Apache Ant 用户,还是刚刚开始接触这个开放源代码的生成工具,本教程都会为您提供丰富的信息。在来自 IBM Java Technology Centre 的 Java 开发人员和 Ant 爱好者 Matt Chapman 的指导下,您将逐步完成为一个简单 Java 项目编写生成文件所涉及的步骤,然后考察 Ant 的一些其他功能,包括文件系统操作和模式匹配。最后将通过编写一个扩展 Ant 功能的自己的 Java 类来结束本教程。
    2004年2月9日  
 
用 WebSphere Studio Visual Editor for Java 编写事件逻辑
本文将向您展示如何用 Visual Editor for Java 来创建、分析和修改事件处理逻辑,并利用 WebSphere Studio V5.1 中新的事件处理逻辑特性的优势。
    2004年2月6日  
 
J2ME 101,第 2 部分:介绍 MIDP 的低层 UI
本文是对 Java 2 Micro Edition (J2ME) 和移动信息设备描述(Mobile Information Device Profile, MIDP)进行全面介绍的由四部分组成的系列文章的第二部分。这个系列包含两篇教程和两篇补充文章。在这第二篇教程中,介绍 MIDP 的低层界面的最重要组件。我们将完成创建和使用 Canvas 和 Graphics 类并构建 MIDlet 的基本过程。本教程将以简单介绍 MIDP 2.0 中引入的 Game API 作为结束。
    2004年2月2日  
 
J2ME 101,第 3 部分:深入记录管理系统
MIDP 不使用文件系统保存应用程序数据。相反,MIDP 使用一种名为记录管理系统(Record Management System,RMS)的存储系统把所有信息都保存在非易失性存储器中。本文是 J2ME 101 教程系列的补充系列的两篇文章中的第一篇,作者和开发者 John Muchow 在此本文介绍了 RMS 应用程序接口的基础知识,然后引导您完成几个展示了它的功能的开发实例。
    2004年2月2日  
 
走上开放之路: Windows 开发人员的 Java Web 支持基础
本文是走上开放之路系列文章的第二部分。这个系列一共包括三部分,目的是帮助 .NET、Windows 客户机-服务器以及 ASP 开发人员快速转换到 Java 平台上。在走上开放之路系列文章中,作者将帮助您充分利用现有的开发知识,简化您通往基于开放标准的编程之路。对于那些使用 Visual Basic 6 或 C++,而对 Java 语言或 J2EE 技术并不熟悉,但却对在基于 Java 和 J2EE 的 Web 应用程序中支持 Web 的 Windows 客户机-服务器的应用程序非常感兴趣的 Windows 开发人员来说,高级软件工程师 Mark Weber 和高级电子商务体系结构师 David Carew 为他们指出了一条道路,并帮助他们了解由 IBM 或其他地方提供的最有用的一些工具、技术以及在线资料。您可以在相应的论坛中与作者或其他读者分享您对这些文章的想法。(您也可以单击本文开头或末尾的 讨论 来访问论坛。)
    2004年2月1日  
 
驯服 Tiger: Tiger 预览版现已推出
Sun 悄悄地发布了 J2SE 1.5 的 alpha 版本,就是我们大家所熟知的“Tiger”,开发者 John Zukowski 已经做好准备开始他的驯虎行动。 这个新的专栏是 Merlin 的魔力 专栏的延续, 详细地讨论了有关平台的改变,并提供了一些例子作为快速参考。在第一篇文章中,John 向您展示了如何获得该软件的预览版和如何安装该软件。您可以在本文的讨论论坛中与作者和其他读者共享您的想法(您也可以点击文章顶部或者底部的 讨论 进入论坛 )。
    2004年2月1日  
 
J2ME 101,第 1 部分:介绍 MIDP 的高层 UI
本文是对 Java 2 Micro Edition (J2ME) 和移动信息设备描述(Mobile Information Device Profile,MIDP)进行全面介绍的由四部分组成的系列文章的第一部分。这个系列包含两篇教程和两篇补充文章。在这第一篇教程中,介绍了 J2ME 基本组件,重点放在 MIDP 上。侧重于 MIDP 的高层用户界面,并分步介绍了促进用户与设备显示屏之间进行主要交互的组件。
    2004年1月19日  
 
安全抵达!
开发人员编写代码。不幸的是,开发人员也编写缺陷,其中大多数缺陷是在最初的编码阶段加入的。修复这些缺陷成本最低的地方同样也是在开发的初始阶段。如果等到功能测试或者系统测试来捕获并修复缺陷,那么您的软件开发成本就会高得多。在本文中,作者 Scott Will、Ted Rivera 和 Adam Tate 讨论了一些基本的“防御性”编码和单元测试实践,让开发人员更容易找到缺陷 ―― 更重要的是,从一开始预防缺陷产生。
    2004年1月19日  
 
用 Kerberos 为 J2ME 应用程序上锁,第 2 部分:生成一个 Kerberos 票据请求
在本系列的上一篇文章中,您看到了对可以安全地连接到支持 Kerveros 的服务器的 J2ME 应用程序的描述,还可了解在字节水平上 Kerberos 加密的细节问题。本文则深入到应用程序自身内部。您将看到如何使用 J2ME 的工具程序以及一些开放源代码库完成异常强大的加密任务。
    2004年1月19日  
 
通过 WebSphere Application Server V5 中的 ClassLoader Viewer 来简化类加载器的复杂性
本文将向您展示如何使用 IBM WebSphere Application Server 附带的 ClassLoader Viewer(CLV)通过允许用户可视化类加载器的实时信息来简化类加载器的复杂性。
    2004年1月18日  
 
开发一个动态的 View Picker Portlet
本文描述了您可以如何开发一个动态的 View Picker portlet,它能够提供给新用户一个直观的视图来根据他们的兴趣选择 portal 页和 Portlet。
    2004年1月18日  
 
在多个 J2EE 平台中创建可移植 Web 服务
本教程阐述了如何使用 IBM WebSphere Studio Application Developer 5.1.1 Web 服务向导,创建可在多个 J2EE 环境之间移植的端到端 Web 服务。
    2004年1月17日  
 
编写自己的 secret Santa Web 应用程序,第 3 部分:视图
这第三篇文章侧重于应用程序的视图方面,以及使用 JSP 技术、JSTL 和 Jakarta Struts 来支持其开发。
    2004年1月12日  
 
编写自己的 secret Santa Web 应用程序,第 1 部分:bean
本文提供了对如何用一些最新的工具和框架从头开始建立 J2EE 应用程序的一个全面综述,并详细说明了如何让这些不同的技术共同工作以得到最终结果。
    2004年1月12日  
 
编写自己的 secret Santa Web 应用程序,第 2 部分:控制器
本文侧重于应用程序的控制器方面,以及使用 servlet、JavaMail 和 Jakarta Struts 来支持其开发。
    2004年1月12日  
 
协同使用 WebSphere Studio V5 与 Struts Framework――第二部分:使用 Struts 验证器
本文介绍了Struts 的验证器,如何做到同时支持客户端和服务器端验证,并且两种方法共享同一组验证规则
    2004年1月12日  
 
配置和开发使用 Person 标签的协作 Portlet
在本文中,您将了解如何配置使用 Person 标签的 Sametime Server、Domino Server 和 Webphere Portal Server.
    2004年1月8日  
 
在WebSphere Studio V5中使用Struts 框架 -- 第一部分: 通过Tiles 使用Struts
Tiles 框架增强了基于组件的 Web UI 开发的设计,它和 Struts 框架的组合工作得很好。您可以很容易的协同 WebShpere Studio 使用 Tiles 和 Struts 框架以显著降低您的 Web 开发工程的开发时间和维护代价。
    2004年1月8日  
 
通过 J2EE 应用程序使用 .NET Web 服务
本教程是教程“在 Windows 上创建 Web 服务来访问 DB2”的扩充,展示了如何使用 DB2 UDB v8 提供的 IBM Development Add-In 开发 .NET Web 服务,以访问带有 DB2 .NET 托管数据提供程序的 DB2 数据库,以及如何在 Java Web 应用程序中使用由 WORF 和 .NET 技术开发的 Web 服务。
    2004年1月5日  
 
Rational XDE介绍
本文首先向读者展示了软件开发人员所面临的挑战和压力,之后向大家介绍了Rational XDE,并讲述了Rational XDE在哪些方面和如何帮助开发人员来应对软件开发中的各种挑战。
    2004年1月5日  
 
利用Rational XDE中模式的能力来促进软件的重用-在XDE中应用模式
本文是将向大家介绍如何在XDE 中应用已经创建好的模式来促进软件的重用。
    2004年1月5日  
 
利用Rational XDE中模式的能力来促进软件的重用-在XDE中创建模式
在本文的前一篇文章 "在XDE中应用模式"中我们已经了解了如何在XDE中应用一个创建好的模式。如果你只是应用模式的开发人员,这已经足够了。但如果你是一名模式的设计人员,本文的内容对你来说是非常重要的。作为一个模式的设计人员,你必须对在创建模式过程中的每一个概念有透彻的理解。
    2004年1月5日  
 
Java 理论与实践:JVM 1.4.1 中的垃圾收集
在上月的 Java 理论与实践 中,专栏作家 Brian Goetz 回顾了垃圾收集的基本算法。本月,他进一步探讨 JVM 1.4.1 是如何实际处理垃圾收集的,包括一些针对多处理器系统的新垃圾收集选项。
    2003年12月31日  
 
J2EE 探索者: 用 JAAS 和 JSSE 实现Java 安全性
在 J2EE 探索者 的这期文章中,企业 Java 开发人员和教育家 Kyle Gabhart 介绍了 Java 认证和授权服务(Java Authentication and Authorization Service,JAAS)和 Java 安全套接字扩展(Java Secure Socket Extension,JSSE)。跟随作者去发现如何结合这两个 API 以提供 J2EE Web 应用程序安全框架的核心功能:认证、授权和传输层安全。
    2003年12月31日  
 
关注性能:宏性能基准测试
热衷于 Java 性能的 Jack Shirazi 和 Kirk Pepperdine ―― JavaPerformanceTuning.com 的董事和 CTO ―― 跟踪遍布 Internet 上的性能讨论,探究是什么在困扰着开发人员。在浏览 Usenet 新闻组 comp.lang.java 时,他们遇到了几个有意思的底层性能调整问题。在 关注性能 的这篇文章中,他们对字节码作了一些分析,检验并回答了其中的一些问题。
    2003年12月29日  
 
为 Web 服务构建 Struts 应用程序
本文向您展示了如何在模型-视图-控制器(MVC)设计模式的基础上来构建 Web 服务应用程序。
    2003年12月29日  
 
在 J2EE 组件中引用和查找 Web 服务
本文将讨论怎么在J2EE组件中引用Web服务、并且通过JNDI来查找Web服务。
    2003年12月24日  
 
使用Jakarta Commons Pool处理对象池化
恰当地使用对象池化技术,可以有效地减少对象生成和初始化时的消耗,提高系统的运行效率。Jakarta Commons Pool组件提供了一整套用于实现对象池化的框架,以及若干种各具特色的对象池实现,可以有效地减少处理对象池化时的工作量,为其它重要的工作留下更多的精力和时间。
    2003年12月24日  
 
Merlin 的魔力:不确定的进度条
开发人员用 JProgressBar 组件向用户显示一项任务的进度。针对非常长的任务或者难于精确确定完成进度的任务,Merlin 版本对 JProgressBar 增加了一个不确定模式。本月,专栏作者 John Zukowski 对 JProgressBar 的使用作了重新介绍,并讨论了它的新的不确定模式。
    2003年12月22日  
 
为 DB2 编写基于 Web 的表编辑器 GUI
作者扩展了他们基于 Swing 的表编辑器,令其使用基于浏览器的前端,允许用户可以通过 Web 编辑表数据。该应用程序是使用 DB2 Version 8.1 中的新 JDBC Type 4 驱动程序和 WebSphere Studio Application Developer 构建的。
    2003年12月22日  
 
用 Kerberos 为 J2ME 应用程序上锁,第 1 部分: Kerberos 数据格式介绍
用户需要确保所使用的无线应用程序不会损害他们的敏感信息。其中一种方法就是使用行业标准协议如 Kerberos 来提供安全性。在本系列中,Faheem Khan 将创建一个示例 J2ME MIDlet,它使用 Kerberos 来保护财务数据。本文是该系列的第一篇文章,他通过解释为他的应用程序的安全性提供骨架的 Kerberos 数据格式,介绍了一些基本知识。
    2003年12月18日  
 
例析JAX-RPC 1.1中的Java/XML数据类型映射
本文将讨论JAX-RPC1.1中JAVA编程语言的数据类型与XML Schema数据类型之间的映射,并且提供具体的映射实例。
    2003年12月18日  
 
用JAVA实现MSN Messenger的功能
本文介绍了一个用Java编写的可以访问MSN服务的开发包-JMsn,利用这个开发包你可以编写自己的具有MSN Messenger功能的客户端程序。
    2003年12月18日  
 
走出 JNDI 迷宫
从单机编程转向 EJB 技术和分布式计算这些更复杂领域的 Java 开发人员常常会陷入困境:编写成功地游历 JDNI 迷宫的代码会很困难,多计算机和配置也增加了出错的可能性。在本文中,EJB 开发人员 Daniel Would 解释了如何编写可以成功地找到在 JNDI 名称空间中发布的 EJB 组件的客户代码。他向您展示了使处理更容易的各种编程选项,并提供了一些可以在您自己的应用程序中作为实用工具类使用的代码。
    2003年12月18日  
 
TriActive JDO 实用简介
TriActive JDO (TJDO) 是 Sun Java Data Objects (JDO) 1.0 规范的一个轻型的、开放源代码的实现。通过它,开发人员可以将一种透明的持久性机制用于任何 JDBC 兼容的数据库和任何 Java 对象。在本文中,Java 开发人员 Jeff Gunther 通过一个例子介绍了 TJDO,这个例子示范了如何在 MySQL 数据库中持久存储域模型。除了说明 TJDO 的特定实现细节之外,本文还回顾了 JDO 规范的基本概念和组件。
    2003年12月15日  
 
JXTA 2: 具有高性能、海量伸缩性的 P2P 网络
JXTA 2 是开放源代码 P2P 网络的第二个主要版本,它利用流行的、基于 Java 的参考实现作为构建基础。在设计方面进行了重要的修改,以获得更高的性能、海量伸缩性和可维护的 P2P 网络。本文建立在 Sing Li 于两年前发表的 JXTA 系列文章 Makng P2P interoperable 的基础上,为您介绍了这个平台上最新的重要改变。
    2003年12月15日  
 
关注性能:压力负载
优化大师 Jack Shirazi 和 Kirk Pepperdine 分别是 JavaPerformanceTuning.com 的董事和首席技术官,他们从事全球 Internet 上的性能问题讨论。在 TheServerSide.com 留言板上最近提出了一些关于压力测试和负载测试的问题。Jack 和 Kirk 详细探讨了这一主题,并讨论了正确的工具如何导致结果产生巨大的差别。
    2003年12月11日  
 
用 Java 客户机调用 Web 服务
本文简要描述了 Web 服务调用过程和用于 Java 环境的 Web 服务标准,然后描述了两种 Java Web 服务客户机。
    2003年12月8日  
 
Java单例对象同步问题探讨
本文将探讨一下在多线程环境下,使用单例对象作配置信息管理时可能会带来的几个同步问题,并针对每个问题给出可选的解决办法。
    2003年12月8日  
 
Java 理论与实践:垃圾收集简史
Java 语言可能是使用最广泛的依赖于垃圾收集的编程语言,但是它并不是第一个。垃圾收集已经成为了包括 Lisp、Smalltalk、Eiffel、Haskell、ML、Scheme 和 Modula-3 在内的许多编程语言的一个集成部分,并且从 20 世纪 60 年代早期就开始使用了。在 Java 理论与实践 的本篇文章中,Brian Goetz 描述了垃圾收集最常用的技术。在以后的几个月,他将分析 1.4 JVM 所使用的垃圾收集策略、不同垃圾收集策略对性能的影响和如何才能(以及如何不能)帮助垃圾收集器取得更好的性能。
    2003年12月8日  
 
用 WSAD 5.0 从头开发一个实用的“网上书店”J2EE 应用程序,第二部分(下)
第二部分讲述基于EJB的网上书店客户端实现。在各个部分中随机讲述了一些行之有效的设计方法和小技巧。
    2003年12月4日  
 
JAX-RPC和Web服务会话状态的保持
本文首先讨论了Web服务会话状态的保持方法,然后结合JAX-RPC来介绍怎么在Web服务调用过程中保持客户端的会话状态,并且提供了服务端和不同类型客户端的调用实例。
    2003年12月4日  
 
使用 Access Bean 将 SQL EJB 包装器实现成模型助手
本文提供了前一篇文章"使用通用 SQL 实体 EJB 包装器来简化 EJB 开发" 中所描述的包装器的一个样本实现。此外,还对这种方式的性能问题进行了阐述。
    2003年12月4日  
 
使用通用 SQL 实体 EJB 包装器来简化 EJB 开发
本文描述了一种能够简化自下而上的 EJB 开发的编码技术,该技术允许端到端代码生成。本文提供的示例都基于 IBM DB2 UDB 和 WebSphere Studio。
    2003年12月4日  
 
Eclipse 和 HSQLDB: 将关系数据库服务器嵌入到 Eclipse 中,第 1 部分 -- 如何编写将 HSQLDB 数据库服务器集成到 Eclipse Workbench 中的插件
本文介绍如何开发将 HSQLDB 纯 Java 关系数据库服务器集成到 Eclipse Workbench 中的插件。尽管不如 DB2 功能强大,也不如 MySQL 流行,但 HSQLDB(超音速 SQL 数据库)可以满足很大范围内 Java 应用程序的需要,因为它具有可扩展性,而且对内存/处理器的要求不高。
    2003年12月4日  
 
软件体系架构模式在J2EE中的应用
本文介绍了软件体系架构模式的层模式,分析了它的结构,特点,实现,以及优缺点等. 然后介绍遵循层模式的Architectural cube理论,结合J2EE的体系架构特点,剖析层模式是怎样应用的.最后以PetStore为例, 简单阐述怎样应用该模式在实际的J2EE系统之中。
    2003年12月4日  
 
J2EE 探索者:用五个容易的步骤实现 JSP 自定义标记
JSP 自定义标记为在动态 Web 页中将表示与业务逻辑分离提供了一种标准化的机制,使页面设计者可以将注意力放到表示上,而应用程序开发人员编写后端的代码。在 J2EE 探索者 的这篇文章中,具有企业观念的开发者 Kyle Gabhart 介绍了 JSP 自定义标记的基本知识,并引导您完成将它们加入到 JSP 页面的五步过程。
    2003年12月4日  
 
WebSphere Studio 中的 J2EE 应用程序概要分析
本文向您展示了如何安装、配置和使用 Application Developer Profiler。本文将演示配置一个简单的应用程序所需的步骤,并且简要讨论 Profiler 所用的高层体系结构。
    2003年12月4日  
 
用 WSAD 5.0 从头开发一个实用的“网上书店”J2EE 应用程序,第二部分(中)
第二部分讲述基于EJB的网上书店客户端实现。在各个部分中随机讲述了一些行之有效的设计方法和小技巧。
    2003年12月1日  
 
动态 JNLP
本教程分析了 Java 网络加载协议 (Java Network Launch Protocol ,JNLP)的一个定制的、动态的实现,它将一些服务器处理负荷转移到了客户机上。老资格的开发人员 Claude Lacombe 利用自己的经验开发了一个工业大小的、需要对 JNLP 进行一些修改的应用程序的经验,并展示了他的劳动成果。提供了一个全功能的应用程序作为指导。
    2003年12月1日  
 
考虑大对象:利用 JAVA 操作 DB2 Universal Database 中的 LOB 数据
本文通过一个实际的例子,展示了如何能够在您的 Java 开发过程中使用 DB2 Universal Database 大型对象数据类型。
    2003年12月1日  
 
在 Java 应用程序中计划重复执行的任务
所有类型的 Java 应用程序一般都需要计划重复执行的任务。企业应用程序需要计划每日的日志或者晚间批处理过程。一个 J2SE 或者 J2ME 日历应用程序需要根据用户的约定计划闹铃时间。不过,标准的调度类 Timer 和 TimerTask 没有足够的灵活性,无法支持通常需要的计划任务类型。在本文中,Java 开发人员 Tom White 向您展示了如何构建一个简单通用的计划框架,以用于执行任意复杂的计划任务。
    2003年12月1日  
 
走出 JNDI 迷宫
从单机编程转向 EJB 技术和分布式计算这些更复杂领域的 Java 开发人员常常会陷入困境:编写成功地游历 JDNI 迷宫的代码会很困难,多计算机和配置也增加了出错的可能性。在本文中,EJB开发人员 Daniel Would 解释了如何编写可以成功地找到在 JNDI 名称空间中发布的 EJB 组件的客户代码。他向您展示了使处理更容易的各种编程选项,并提供了一些可以在您自己的应用程序中作为实用工具类使用的代码。
    2003年12月1日  
 
用 WSAD 5.0 从头开发一个实用的“网上书店”J2EE 应用程序,第二部分(上)
第二部分讲述基于EJB的网上书店客户端实现。在各个部分中随机讲述了一些行之有效的设计方法和小技巧。
    2003年11月27日  
 
用LSID构建生命科学协作网络 -- 通用协议提供了基础
如果能被广泛采用,"生命科学标识"(LSID, Life Sciences Identifier)协议将使得多个不同组织的科学家和研究员可以以一种从未被考虑过的方式进行数据的共享和协作。你可以用一组J2EE组件来构建实现LSID协议的服务,这些J2EE组件把协议对自身的操作抽象出去,只留下编写服务逻辑的必需内容。
    2003年11月27日  
 
运用类反射机制简化Struts应用程序的开发
本文讲述了如何利用Java的反射的机制来简化Structs应用程序的开发。
    2003年11月25日  
 
用 Preferences API 存储对象
Preferences API,一种在 JDK 1.4 中引入的轻型的、跨平台的持久性 API,是为存储少量数据(字符串、简单字节数组等)而设计的,它不是为了要成为传统数据库的一个接口。不过,如果您的数据可以表示为一个简单的对象,那么它可以成为一个高效的存储设备。本文介绍了这个 API,解释了对象是如何存储的,并展示了所进行的过程,提供了完成这些工作的代码库。
    2003年11月25日  
 
Java 认证成功之路,第 1 部分:SCJP
本教程是帮助您成为 Sun 认证的 Java 程序员的指导。其内容的组织与 Sun Certified Java Programmer (SCJP) 1.4 考试相同,并提供了对考试的所有主要目标的详细介绍。在本教程中,用一些简单的例子展示了考试中涉及的重要概念。
    2003年11月24日  
 
使用 WSDK V5.1 从无状态会话 Bean 创建 Web 服务
本教程首先简要地解释了与 Enterprise JavaBeans 组件有关的 JSR-109,然后讨论了使用 Eclipse IDE 的 WSDK 插件把现有的 EJB 组件转换成 Web 服务。
    2003年11月20日  
 
用 Java Certificate Services 管理网格中的 X.509 证书
您是否正在为管理开发网格中的用户证书或主机证书而努力呢?下面是一些好消息。一个非常受欢迎的作者 Vladimir Silva 创建了一套叫做 Java Certificate Services 的 Web 和命令行工具。您可以免费下载这套工具的源代码。他创建的这套工具有助于系统管理员完成管理开发网格中的用户证书和主机证书这项繁琐的工作。Java Certificate Services 特别用于与 Globus 和 Java GoG 工具包协同工作。本文的参考资料部分提供了这些工具的链接。
    2003年11月20日  
 
嵌入式数据库在Java中的应用
嵌入式数据库无需安装,体积小巧,速度又很快,在很多场合可以替代目前流行的MySQL, SQLServer等大中型数据库。本文介绍两种嵌入式数据库产品:Berkeley DB和SQLite,并着重讨论它们与Java之间的接口。
    2003年11月20日  
 
用 WSAD 5.0 从头开发一个实用的“网上书店”J2EE 应用程序,第一部分(下)
本文是这个系列教程的第一部分(下),本部分从"发现的问题"入手,一步步的教您如何用WSAD 5.0解决这些问题。
    2003年11月17日  
 
NIO 入门
在本教程中,我们将讨论 NIO 库的几乎所有方面,从高级的概念性内容到底层的编程细节。除了学习诸如缓冲区和通道这样的关键 I/O 元素外,您还有机会看到在更新后的库中标准 I/O 是如何工作的。您还会了解只能通过 NIO 来完成的工作,如异步 I/O 和直接缓冲区。
    2003年11月17日  
 
从 Java 类创建 Web 服务
本教程展示了如何编写 Web 服务实现、如何用 WSDK 构建和部署这些服务,以及如何创建客户机来调用这些服务。
    2003年11月17日  
 
JAR 文件揭密
大多数 Java 程序员都熟悉对 JAR 文件的基本操作。但是只有少数程序员了解 JAR 文件格式的强大功能。在本文中,作者探讨了JAR 格式的许多功能和优势,包括打包、可执行的 JAR 文件、安全性和索引。
    2003年11月15日  
 
在 WebSphere Studio 中使用 JavaMail
本文的重点是使用 JavaMail API 构建一个应用程序,然后用IBM WebSphere Studio Application Developer测试该程序。本文还提供了关于免费电子邮件服务器和 JavaMail 场景的信息。
    2003年11月14日  
 
Merlin 的魔力: 动态事件监听器代理
许多开发人员为事件处理创建匿名内部类。对于简单的事件处理,内部类可能成为真正的争论话题.幸运的是,Java 1.4 引入了 EventHandler 类,它依赖于监听器的动态生成以方便地处理手头的任务。尽管这个新功能通常是让 IDE 厂商使用的,但是在本文中,专栏作者 John Zukowski 还是为您展示了如何用它进行手工编码。
    2003年11月13日  
 
实现非阻塞套接字的一种简单方法
尽管 SSL 阻塞操作――当读写数据的时候套接字的访问被阻塞――与对应的非阻塞方式相比提供了更好的 I/O 错误通知,但是非阻塞操作允许调用的线程继续运行。本文中,作者同时就客户端和服务器端描述了如何使用 Java Secure Socket Extensions (JSSE) 和 Java NIO (新 I/O)库创建非阻塞的安全连接,并且介绍了创建非阻塞套接字的传统方法,以及使用 JSSE 和 NIO 的一种可选的(必需的)方法。
    2003年11月13日  
 
用 WSAD 5.0 从头开发一个实用的“网上书店”J2EE 应用程序,第一部分(上)
本系列教程主要面对初学者,本教程用一个具体的实例――网上书店,来帮助初学者使用 WSAD 5.0 从头构建一个实用的 J2EE 应用程序。本教程的目的就是想要给那些准备构建实用电子商务网站的初学者一个好的参考。
    2003年11月12日  
 
用 JavaServer Faces 进行 UI 开发
本教程提供关于 JavaServer Faces(JSF)的概述,介绍使用该技术进行 Web 应用程序开发的基础。在 Java 开发人员和顾问 Jackwind Li Guojie 的指导下,您将考察 JSF 生命周期、输入验证、事件处理、页面导航以及国际化--所有这一切都通过一个示例应用程序来说明。
    2003年11月10日  
 
一劳永逸的数据库编码解决方案
本文中,作者讲述了如何将编码处理的功能合理的封装在jdbc的接口中,以实现一劳永逸的数据库编码解决方案。
    2003年11月6日  
 
使用EJB2.1无状态会话Bean作为Web服务端点
本文介绍怎样在J2EE1.4平台下使用EJB2.1规范开发、打包、部署Web服务。
    2003年11月5日  
 
共享:Eclipse和WebSphere Studio新的项目交换功能
本文讲解关于存储库和非存储库代码共享的几种不同方法,并且说明每种方法的优点和缺点。本文还将介绍一种新的项目交换(Project Interchange)功能,这种功能提供了一个可选的方式,可以在不能使用存储库的情况下共享代码。
    2003年11月3日  
 
通过JAVA/CORBA访问Domino
本文旨在为开发人员提供一个全面的java/corba访问domino的技术解决方案,并通过例程指导开发人员掌握这一新技术。其中也有笔者在开发过程中的一些经验与教训,相信对广大开发人员一定会有相当大的帮助。
    2003年11月3日  
 
建立一个可供搜索的WebSphere Portal Web站点
本文描述了一种关于如何使WebSphere Portal站点可供搜索的方法。然而,在深入讨论使portal站点可供搜索的复杂技术之前,让我们回顾一下建立搜索索引的基础知识,并且解决究竟什么样的东西是可供搜索这一棘手的问题。
    2003年11月3日  
 
Java 理论与实践: 描绘线程安全性
7 月份我们的并发专家 Brian Goetz 将 Hashtable 和 Vector 类描述为“有条件线程安全的”。一个类难道不是线程安全就是线程不安全的吗?不幸的是,线程安全并不是一个非真即假的命题,它的定义出人意料的困难。但是,正如 Brian 在本月的 Java 理论与实践中解释的,尽量在 Javadoc 中对类的线程安全性进行归类是非常重要的。
    2003年11月3日  
 
在多个数据源的 J2EE 环境中的 DB2 Information Integrator 性能
本文是我们关于使用 DB2 Information Integrator 进行 J2EE 开发的三部分系列中的最后一篇文章,作者在文中比较了使用联邦技术的查询与使用直接访问的查询的性能结果。
    2003年10月30日  
 
在应用程序中嵌入数据库功能
本文中,作者向大家介绍了一种轻量级得关系数据库系统,它可以在建立应用系统的演示版时代替大型数据库系统的功能,使应用系统的演示版更加轻便。
    2003年10月30日  
 
软件体系架构模式在J2EE中的应用
本文介绍了软件体系架构产生的背景和架构模式的基本理论.重点介绍管道与过滤器体系架构模式的结构,实现,优缺点等,然后以J2EE的Servlet Filter为例进行剖析它是怎样应用该架构模式的,最后简单阐述了在其它J2ee应用中(Jboss和Axis)的实践.
    2003年10月27日  
 
高影响力的 Web 层群集, 第二部分:用 JavaSpaces 构建自适应的、可伸缩的解决方案
基于 PC 的商用服务器和网络连接硬件产品可以与开放源代码 Java 软件相结合,以实现对 Web 服务和应用程序部署的经济性扩展。在本高影响力的 Web 层群集系列文章的第二篇中,Sing Li 深入讨论了典型的群集系统设计方案,并说明了为什么没有一种适合所有情况的解决方案,而基于 JavaSpaces 和 Jini 技术的解决方案能够自适应地部署以满足不同的要求。
    2003年10月27日  
 
Java 编程的动态性, 第四部分: 用 Javassist 进行类转换
厌倦了只能按编写好源代码的方式执行的 Java 类了吗?那么打起精神吧,因为您就要发现如何将编译器编译好的类进行改造的方法了!在本文中,Java 顾问 Dennis Sosnoski 通过介绍字节码操作库 Javassist 将他的Java 编程的动态性 系列带入高潮,Javassist 是广泛使用的 JBoss 应用服务器中加入的面向方面的编程功能的基础。您会看到到用 Javassist 转换现有类的基本内容,并且了解到这种用框架源代码处理类的方法的威力和局限性。
    2003年10月25日  
 
集成 Struts、Tiles 和 JavaServer Faces
您是否想将 JavaServer Faces (JSF)的强大前端功能、Tiles 的内容格式编排优势和 Struts controller 层的灵活性都加入到您的 J2EE Web 应用程序中?企业级 Java 专家 Srikanth Shenoy 和 Nithin Mallya 为您展示了如何将这三者的功能集成到一起。本文演示了如何在 Struts-Faces 集成库中定制类以使得它们可以与 Tiles 和 JSF 一同使用,并用一个实际的例子解释了这个过程背后的基本原理以及如何使用新的一组类的细节。
    2003年10月23日  
 
使用 Hibernate 将 Java 对象持久保存到 IBM DB2 通用数据库中
Hibernate 是一个开放源码应用程序,提供了一种轻易地将 Java 对象持久保存到 DB2 通用数据库的方法。本文为您描述了其具体的使用过程。
    2003年10月23日  
 
扩展 Eclipse 的 Java 开发工具 -- 什么是可能的,从哪里开始以及如何继续
Eclipse 的 Java 开发环境的重构(refactor)能力是它提供的最有用的特性之一。本文将向您介绍创建您自己的重构(作为 Eclipse 的自然扩展)步骤。
    2003年10月23日  
 
使用 XDoclet 来生成 Web 服务支持文件
本教程演示了如何使用 XDoclet 来生成 Web 服务支持文件。
    2003年10月20日  
 
通用验证系统
本文较详尽地介绍了jakarta开源项目的子项目之一commons-validator(通用验证系统),版本是1.0.2。它使用了一个xml文件来定义针对用户输入的数据验证功能,整个验证体系提供了很强的扩展性,使得开发者可以开发自己的验证函数加入到这个验证体系中来。它对web应用程序提供了客户端javascript验证和服务端验证的两种选择,但是它只是一个验证体系,有些东西还需要自己开发特别是validatoraction的开发,不过有了项目源代码及其例子,还有struts这个优秀的开源项目的示范,使用好commons-validator验证体系应该是挺容易的。本文就这个验证体系作了些探讨,希望对大家有用!
    2003年10月20日  
 
在 Java 应用程序中访问 USB 设备
Java 平台一直都以其平台无关性自豪。虽然这种无关性有许多好处,但是它也使得编写与硬件交互的 Java 应用程序的过程变得相当复杂。在本文中,研究科学家蒋清野讨论了两个项目,它们通过提供使 Java 应用程序可以使用 USB 设备的 API 而使这个过程变得更容易。虽然这两个项目仍然处于萌芽状态,但是它们都显示了良好的前景,并已经成为一些实用应用程序的基础。
    2003年10月20日  
 
J2EE 1.4 平台和Web服务
本文介绍了J2EE1.4平台中Web服务的构架,以及Web服务的最新规范、技术和开发工具。
    2003年10月16日  
 
使用Hibernate来实现持久对象
对象、关系的映射(ORM)是一种耗时的工作,在Java环境下,有几种框架来表示持久数据,如实体Bean、OJB、JDO、Hibernate等。Hibernate是一种新的ORM映射工具,它不仅提供了从Java类到数据表的映射,也提供了数据查询和恢复等机制。本文介绍怎么在Web应用开发中配置Hibernate的环境,并且使用Hibernate来开发一个具体的实例。
    2003年10月16日  
 
高级 DAO 编程
J2EE 开发人员使用数据访问对象(Data Access Object DAO)设计模式,以便将低级别的数据访问逻辑与高级别的业务逻辑分离。实现 DAO 模式涉及比编写数据访问代码更多的内容。在本文中,Java 开发人员 Sean C. Sullivan 讨论了 DAO 编程中三个常常被忽略的方面:事务界定、异常处理和日志记录。
    2003年10月15日  
 
Merlin 的魔力: SpringLayout 管理器
当设计复杂的界面时,许多开发人员总是避免使用功能强大的 GridBagLayout 管理器。他们不去摆弄 GridBagConstraints,而是使用像 BorderLayout 这样的其他布局管理器来将面板嵌入到面板中。最新引入的 SpringLayout 管理器提供了一种可选方式,其中的组件可以相对于其他组件进行放置。在本文中, Merlin 行家 John Zukowski 向您展示了如何使用这种新的布局管理器。
    2003年10月13日  
 
JSP 最佳实践: 将自定义标记库打包
将标记库存放在本地文件系统中的确有利于内部(in-house)开发和测试,但是这并非永远都是好的解决方案。自定义标记库应该能够被广泛地访问,也就是说,必须以一种标准的和安全的方式来发布它们。Brett McLaughlin 解释了如何将您的自定义标记库打包到 JAR 文件,以便在任何 JSP 兼容的 Web 容器中更容易地维护、发布和安装它们。
    2003年10月13日  
 
在 Hibernate 中实现复杂的数据映射
在前一篇文章《使用Hibernate来操作持久对象》中,介绍了Hibernate的基本概念,然后用实例演示了怎么在Web应用中使用Hibernate来封装持久数据对象。然而在现实的项目中,我们往往需要操作多个数据表,并且多个表之间往往存在复杂的关系,在本文,将介绍怎么在Hibernate中描述多个表的映射关系,并且演示怎么操作关系复杂的持久对象。
    2003年10月13日  
 
关注性能: 引用对象
优化大师 Jack Shirazi 和 Kirk Pepperdine, 分别是 JavaPerformanceTuning.com 的董事和 CTO, 就他们本专栏中遇到的关于性能方面的问题,在 Internet 上进行广泛的探讨和研究。这个月,他们将目光投向 Java 游戏 Web 站点,去看看游戏开发者是怎样发现和解决垃圾收集过程中应用程序不能释放对象时出现的问题。
    2003年10月9日  
 
用 DB2、Visual Basic .NET 和 Java 构建 Web 服务
本教程中的样本程序围绕着一个为 JustPC.com Airlines 跟踪常旅客里程的 Web 服务应用。我们既可以从 VB .NET Web 服务访问 DB2 数据库,也可以基于 Java 的 Web 程序访问该 Web 服务来验证一位特定的客户是否已在常旅客计划中登记,并且还可以增加和扣除里程。
    2003年9月29日  
 
在线教程:简单、轻松愉快的在WebSphere Studio中开发EJB
为什么要用一个简单的文本编辑器和一个编译器来开发EJB呢?其实有一个非常简单的方法。本教程将使用WebSphere Studio Application Developer中的工具来创建和测试一些简单的EJB。任何人,从初学者到有经验的程序员,都可以通过这些步骤使用该IDE中的这些工具和向导开始构建他们的企业应用程序。
    2003年9月29日  
 
跨多个数据源的 J2EE 开发:细节探讨
本文是跨数据源进行J2EE开发系列文章的第二篇,作者回顾了他们的设计并向您展示了他们的代码的关键部分,以及他们在实现 servlet 时所面临的挑战。
    2003年9月29日  
 
J2EE 探索者:隐式对象的多种用法
接着上月对会话作用域的介绍,企业 Java 专家 Kyle Gabhart 深入研究了 JSP 隐式对象的多种用法。接下来,他将介绍 9 个隐式对象,解释每个对象的用途(或者多种用途),最后给出一些怎样在 JSP 编程中使用这些便利工具的最佳实践。
    2003年9月29日  
 
DB2 和 Java:总览图
本文简要介绍了 DB2 UDB 中的 Java 支持,为想用 Java 语言存取 DB2 数据的开发人员提供参考。
    2003年9月25日  
 
即时日志记录:使用 Jabber 增强 log4j 的功能
日志记录不仅是开发和测试周期中的一个重要元素――提供关键调试信息,而且对于系统已部署到生产环境之后调试错误也是很有用的――提供修复错误所需的准确上下文信息。在本文中,Orange Soft 公司(这是一家专业从事面向对象技术、服务器端Java 平台和 Web 可访问性的西班牙公司)的共同创办人 Ruth Zamorano 和 Rafael Luque 阐述了如何利用 log4j 的扩展能力,使得分布式 Java 应用程序能够通过即时消息传送(instant messaging,IM)来监视。
    2003年9月25日  
 
JSP 最佳实践:自定义标记中的错误处理
在自定义标记中引用更多交互性的同时,也会增加错误出现的可能性,尤其是以非法参数形式出现的错误。在本期的 JSP最佳实践 中,Brett McLaughlin 向您展示了如何在源代码中捕获和忽略 IllegalArgumentException 异常。
    2003年9月25日  
 
Java 编程的动态性,第3部分: 应用反射
命令行参数处理是一项令人厌烦的零碎工作,不管您过去已经处理过多少次了,它好像总能重新摆在您的面前。与其一遍又一遍地编写同一块代码的不同变种,为什么不利用反射来简化参数处理的工作呢?Java 顾问 Dennis Sosnoski 向您展示了如何做到这一点。在本文中,Dennis 简明扼要地介绍了一个开源库,这个库可以使得命令行参数实际上自己处理自己。
    2003年9月25日  
 
增强图形用户界面的可访问性
JFC/Swing 框架的一个主要特征是使用可插式look-and-feel(外观)设计的能力。同一个应用程序可以使用不同的look-and-feel设计来运行,而且无需做任何修改。在本文中,软件工程师YannickSaillet解释了在Metal look and feel背后的这种机制,Metal look and feel是J2SE平台提供的一种标准的look-and-feel设计,作者还演示了如何将Metallook-and-feel修改成一种通用的、可定制的look-and-feel,以适应特殊用户的需求,例如为弱视者提供高对比度或者大号字体。
    2003年9月25日  
 
WebSphere Business Component Composer中的 MVC 设计模式
本文是讲解运用IBM Branch Transformation Toolkit for WebSphere Studio(以前称为WebSphere Business Components Composer)进行业务应用程序设计的一系列文章(共四篇)中的第一篇。
    2003年9月25日  
 
在线教程:运用 WebSphere Studio 把 EJB 集成到 J2EE 应用中
在本教程中,我们将重点讲解EJB工具的使用。我们也将构建适应完整的J2EE应用并完全支持JSP、servlet和bean的组件。
    2003年9月22日  
 
维护 Eclipse 插件 -- 如何利用 Eclipse 工具来诊断客户问题
本文描述了可用于诊断客户报告的 Eclipse 插件问题的策略。这些策略最强大之处在于能够将一个调试会话从一个 Eclipse 实例附加到正在远程主机上运行的 Eclipse 实例上。本文中所描述的策略对于基于 Eclipse 2.x 的所有产品都有效,如 WebSphere Studio Application Developer 和 WebSphere Studio Site Developer。
    2003年9月22日  
 
关注性能:改进您的开发过程
性能是 Java 平台屡屡受到指责的一个方面。然而,Java 平台的巨大成功也使得对性能问题作一番严肃的调查研究颇有必要。在这个新专栏中,无畏的优化大师 Jack Shirazi 和 Kirk Pepperdine,分别是 JavaPerformanceTuning.com 的董事和 CTO,他们在整个 Internet 上推行性能大讨论,展开他们所碰到的问题并加以澄清。本月,他们来到 JavaRanch,讨论有关编译速度、异常以及堆长度调优等方面的话题。
    2003年9月22日  
 
Merlin 的魔力:格式化数值和货币
应用程序国际化要求将文本消息和所显示的数值格式化为用户所在地区的相应语言和样式。有了 J2SE 平台的 Merlin 版本,格式化整数变得简单 起来,现在您可以找出 ISO 4217 货币代码。在本月的“Merlin的魔力”中,John Zukowski 将向 您展示如何格式化数值,并介绍用于发现本地货币代码的新特性。
    2003年9月22日  
 
J2EE 探索者:创建和管理有状态 Web 应用程序
在本期的J2EE 探索者中,Java 开发者和顾问 Kyle Gabhart对用于有状态 Web 应用程序开发的 4 种会话作用域的适当处理给予了关注。
    2003年9月18日  
 
将 DB2 Information Integrator 用于 J2EE 开发:成本/收益分析
几位作者自己体验到了使用 DB2 Information Integrator 访问异构后端数据源(包括 Oracle、DB2 UDB 和 Microsoft Excel)时,代码将会是多么简单。这是由三部分组成的系列文章的第一部分。
    2003年9月18日  
 
JSP 最佳实践:为您的JSP标记创建自定义属性
Brett McLaughlin 继续他的JSP 最佳实践系列,这次他将用一个属性来扩展自定义的时间戳标记(lastModified),这个属性让页面作者可以选择他们自己的时间戳格式。
    2003年9月18日  
 
在线教程:重构
现在,一个开发者的工作大部分在于对现有的代码进行修改,而不是起草写新的代码。简单的修改可能包括对现有代码进行添加。然而,多样化的修改或扩展的改变会使软件内部结构开始恶化。重构改变软件的内部结构使得软件更容易理解并且在不需要改变其显著的行为的情况下使得修改的代价也更小。
    2003年9月15日  
 
使用 Java 在 DB2 UDB EEE 上的高性能插入
缓冲插入是由 DB2 提供的一种编程技术,它使得在分区环境中的插入操作密集型工作负载能达到最佳的性能。本文讨论如何在 Java 中利用此功能。
    2003年9月15日  
 
从开发Portal转到测试Portal
您刚刚使用IBM®>||CHR(59)||< WebSphere®>||CHR(59)||< Portal Version 4完成了开发portal的工作。您的portal包括个性化资源、凭证vault安全性和 客户主题。现在,您准备进入项目的测试阶段,并且需要将portal从开发环境移植到测试环境中。
    2003年9月15日  
 
JSP 最佳实践:taglib简介
Scriptlet对于快而杂( fast-and-dirty)的编码来说是一种不错的选择,但是从长远来看,您需要为您的JSP页面选择一种不那么杂乱的解决方案。在本期的JSP最佳实践中,Brett McLaughlin 向您展示了如何将scriptlet转化成JSP自定义标记,然后将其用于您的JSP开发中。
    2003年9月15日  
 
Java 理论与实践:并发集合类
Doug Lea的util.concurrent包除了包含许多其他有用的并发构造块之外,还包含了一些主要集合类型List和Map的高性能的、线程安全的实现。在本月的Java理论与实践中,Brian Goetz向您展示了用ConcurrentHashMap替换Hashtable或synchronizedMap,将有多少并发程序获益。
    2003年9月15日  
 
Merlin 的魔力:焦点,焦点,还是焦点
焦点(focus)是管理何种组件接收键盘输入以及何时接收的一门艺术。在J2SE过去的一些版本中,这一特性并不总是按照预期的那样工作。为了修正早期的焦点问题,Merlin作了许多更改,在本月的 Merlin的魔力中,John Zukowski探讨了其中的一项更改。
    2003年9月10日  
 
Web框架设计与实现(一):Maverick
在j2ee项目工程中合理的使用web框架能有效提高工作效率,增强程序的可维护型和可扩展性。目前比较流行的是基于mvc模式的struts结构,但在开源项目的宝库中,除了struts外,还有其他许多独具匠心、性能优异的框架结构,如Maverick WebWork SpringTapestryTurbine等,存在自有存在的理由和价值,只有了解了其他框架的设计思想和性能特色,才能在项目实践中根据客户需求灵活选择更合适的设计框架,本文主要介绍maverick框架的设计与实现。
    2003年9月10日  
 
使用 JFreeChart来创建基于web的图表
JFreeChart是开放源代码站点SourceForge.net上的一个JAVA项目,它主要用来各种各样的图表,本文介绍了如何使用JFreeChart来创建基于web的图表.
    2003年9月10日  
 
利用 Web 应用程序模型从 CICS 程序来构建基于 Struts 的 Web 应用程序 - 第 1 部分:生成服务代理和 Struts 中间层
这篇分两部分的文章将描述如何使用 Web 应用程序模型以及 WebSphere Studio Application Developer Integration Edition 或 WebSphere Studio Enterprise Developer 来开发基于 Struts 的 Web 应用程序
    2003年9月8日  
 
使用 Java Web Start 部署 SWT 应用程序 -- 开发非常漂亮的客户机端的 Java 应用程序
在 SWT 应用程序开发过程中的某一阶段 ― 通常是在基本原型运作之后 ― 开发人员开始关注部署过程。与传统的 Java 应用程序不同,SWT 应用程序需要在应用程序运行之前装入某些特定于操作系统的库。虽然正在进行的这些库的部署和维护似乎是件头痛的事,但是请放心,有一种方案可以解决这种问题,那就是 Sun 的 Java Web Start。SWT 与 Java Web Start 的结合给开发人员提供了功能强大的工具,用它们可以部署非常漂亮的客户机端 Java 应用程序。
    2003年9月8日  
 
了解 WebSphere Portal 如何显示门户页面 - 第 2 部分:描述 PlaceBarInclude.jsp 和 PageBarInclude.jsp
本文将讨论为 WebSphere Portal 4.2 中的缺省主题安装的 PlaceBarInclude.jsp 和 PageBarInclude.jsp 的内容。理解了这些 JSP 您就可以修改位置栏和页面栏。
    2003年9月8日