 |
 |
 |
 |
 |
 |
使用 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日 |
|
| |