级别: 中级 Ashish Jain (ashish.jain@in.ibm.com), 软件工程师, IBM
2007 年 10 月 15 日 研究 IBM® WebSphere® Application Server Community Edition V2.0 中可用的新特性和新功能,包括新的部署计划、同时运行多个服务器实例的能力、最新改进的 Web 控制台、依赖关系注入、JAX-WS 支持,另外还有对 Java™ EE 5 全面支持的所有优点。了解这个主要发行版如何使得 WebSphere Application Server Community Edition 成为可供使用的、功能最强大的、免费的应用服务器。
引言
IBM WebSphere Application Server Community Edition V2.0
(以下称为 Community Edition)是一种 Java Platform, Enterprise Edition 5 (Java EE 5) 认证的应用服务器,它包含用于数据库 (Apache Derby)、消息传递服务 (Active MQ) 和目录服务器 (LDAP) 的集成组件。它是在 GBeans 体系结构的基础上进行的开发,核心是 Apache Geronimo 2.0,可伸缩性、模块性、可移植性和自定义能力等等特性使得 Community Edition 成为了可供使用的、功能最强大的应用服务器之一。
作为 WebSphere 系列产品中的一部分,Community Edition 可以与其他 IBM 产品(如 IBM Rational® Application Developer 和 WebSphere MQ)进行集成,并提供了向其他 WebSphere Application Server 产品迁移的路径。
Community Edition 与下面的产品进行了捆绑:
- IBM SDK, Java 2 Technology Edition
- 用于 Apache Derby 和 IBM DB2®的 JDBC 驱动程序
- 支持 Apache Derby、IBM DB2、Oracle®、Microsoft® SQL Server、MySql 的数据库连接器
- 支持 Apache Directory Server、IBM Tivoli® Directory Server、MS Active Directory、OpenLDAP Server 和 Sun™ ONE Directory Server 的目录
新的内容
WebSphere Application Server Community Edition 的最新版本经过了 Java EE 5 的认证,并且包含对 Java EE 5 的全面支持。此外,这个发行版还包括许多新的特性和重要的增强功能,具体包括:
-
增强的 Web 控制台
-
配置替换属性
-
一台服务器,多个存储库
-
多个服务器实例
-
多个服务器实例,每个都有它自己的存储库
-
简化的部署
-
注释
-
Eclipse 插件和 Eclipse V3.3
-
JAX-WS 工具
-
经过更新的示例应用程序
在接下来的几个部分中,将对这些特性进行描述。
所支持的规范
为了供您参考,下面的表格列出了 Community Edition V2.0 所支持的各种规范:
|
表 1. Web 应用程序技术
|
| 规范 | 版本 | JSR 编号 | 对 J2EE 1.4 所做的更改 |
|---|
| Servlet | Servlet 2.5 | JSR 154 | 对 Servlet 2.4 所做的维护更新 | | Java Server Pages | JSP 2.1 | JSR 245 | 对 JSP 2.0 进行的更新 | | JSP Debug | JSP Debug 1.0 | JSR 45 | Java EE 5.0 中的新特性 | | Java Server Faces | JSF 1.2 | JSR 252 | Java EE 5.0 中的新特性 | | Java Server Pages 标准标记库 | JSTL 1.2 | JSR 52 | Java EE 5.0 中的新特性 |
|
表 2. 企业应用程序技术
|
| 规范 | 版本 | JSR 编号 | 对 J2EE 1.4 所做的更改 |
|---|
| JavaBeans Activation Framework | JAF 1.1 | JSR 925 | 对 JAF 1.0 所做的维护更新 | | JavaMail | JavaMail 1.4 | JSR 919 | 对 JavaMail 1.3 所做的维护更新 | | Java Persistence API | JPA 1.0 | JSR 220 | Java EE 5.0 中的新特性 | | Java Transactions API | JTA 1.1 | JSR 907 | 对 JTA 1.0 所做的维护更新 | | Java Authorization Contract for Containers | JACC 1.1 | JSR 115 | 对 JACC 1.0 所做的维护更新 | | Common Annotations for the Java Platform | Annotations 1.0 | JSR 250 | Java EE 5.0 中的新特性 | | Enterprise JavaBeans | EJB 3.0 | JSR 220 | 对 EJB 2.1 进行的更新 |
|
表 3. 管理规范
|
| 规范 | 版本 | JSR 编号 | 对 J2EE 1.4 所做的更改 |
|---|
| Java EE Management | Java EE Mgmt 1.1 | JSR 77 | 对 Mgmt 1.0 所做的维护更新 | | Java EE Application Deployment | App Deploy 1.2 | JSR 88 | 对 App Deploy 1.1 所做的维护更新 |
|
表 4. Web 服务 - Axis2
|
| 规范 | 版本 | JSR 编号 | 对 J2EE 1.4 所做的更改 |
|---|
| Implementing Web Services | WSEE 1.2 | JSR 109 | 对 WSEE 1.1 所做的维护更新 | | Java API for XML-Based Web Services | JAX-WS 2.0 | JSR 224 | Java EE 5.0 中的新特性 | | Java Architecture for XML Binding | JAXB 2.0 | JSR 222 | Java EE 5.0 中的新特性 | | Web Service Metadata for the Java platform | WS Metadata 2.0 | JSR 181 | Java EE 5.0 中的新特性 | | SOAP with Attachments API | SAAJ 1.3 | JSR 67 | 对 SAAJ 1.2 所做的维护更新 | | Streaming API for XML | STAX 1.0 | JSR 173 | Java EE 5.0 中的新特性 |
|
表 5. Web 服务 - CXF
|
| 规范 | 版本 | JSR 编号 | 对 J2EE 1.4 所做的更改 |
|---|
| Implementing Web Services | WSEE 1.2 | JSR 109 | 对 WSEE 1.1 所做的维护更新 | | Java API for XML-Based Web Services | JAX-WS 2.0 | JSR 224 | Java EE 5.0 中的新特性 | | Java Architecture for XML Binding | JAXB 2.0 | JSR 222 | Java EE 5.0 中的新特性 | | Web Service Metadata for the Java platform | WS Metadata 2.0 | JSR 181 | Java EE 5.0 中的新特性 | | SOAP with Attachments API | SAAJ 1.3 | JSR 67 | 对 SAAJ 1.2 所做的维护更新 | | Streaming API for XML | STAX 1.0 | JSR 173 | Java EE 5.0 中的新特性 |
增强的 Web 控制台
为了简化故障诊断工作,Community Edition Web 控制台中新的 Debug Views Portlet 提供了各种视图,以便显示关于系统模块和用户定义模块的信息。其中包括用于 JMX、LDAP、ClassLoader、JNDI 和依赖关系的特定查看器,如图 1 所示。
图 1. 管理控制台中的 Debug View Portlet
下面将对这些独特的查看器进行相应的描述,它们分别显示了一个 DB2 数据库池(使用管理控制台部署到服务器上)的示例:
-
JMX Viewer
JMX Viewer 采用树型表示法显示了不同类型的 MBean。每个 MBean 使用对象名称表示法来表示一个树节点。JMX Viewer 可以显示下列内容:
- 所有的 MBean
- 由 J2EE™ 管理的对象
- Geronimo MBean
- ServiceModule MBean
- 统计信息提供者 MBean
- 搜索 MBean
展开这些种类中的任何一个都将显示一个对象列表,选择一个对象将显示其属性、统计信息,以及可以在该对象上执行的操作。该 Portlet 还提供了搜索的特性,它接受对象名称模式 (Object Name Pattern) 作为键。下面提供了一些键的示例:
-
geronimo:* 显示所有以“Geronimo:”开头的 MBean
-
geronimo.config:* 显示所有以“geronimo.config:”开头的 MBean
-
*:j2eeType=StatelessSessionBean,* 显示所有类型为 StatelessSessionBean 的 MBean
要使用 JMX Viewer(可以考虑前面的数据库池示例)查看相关的诊断信息,需要执行以下操作:
- 从管理控制台启动 JMX Viewer。
- 展开 J2EE Managed Objects => JCAManagedConnectionFactory。
- 选择数据库池示例的条目。
- 右边的面板显示了对象的Attributes、Info、Stats,以及可以对该对象执行的Operations,如相应的选项卡中所列出的内容(图 2)。
图 2. 数据库池示例的 JMX Viewer
-
LDAP Viewer
应用服务器在基于文件、数据库或者轻量级目录访问协议(Lightweight Directory Access Protocol,LDAP)的存储库中存储有关用户的信息。LDAP 存储了企业中所有应用程序都可以访问的信息。LDAP Viewer 可以帮助您连接到任何 LDAP 服务器,并浏览它的内容(用于只读访问)。Community Edition 与 IBM Tivoli Directory Server、Microsoft Active Directory 2000、OpenLDAP Server 和 Sun ONE Directory Server 都是兼容的。在启动应用服务器之前,请确保您的目录服务器正常运行。
要使用 LDAP Viewer,需要执行以下操作:
- 从管理控制台启动 LDAP Viewer。
- 该查看器有两个面板:其中一个面板包含 ou(组织单元)的树型视图,另一个面板包含Attributes、Search 和 Connect Info 选项卡。展开树 ou=system,该树表示了完整的组织范围(图 3)。
- 选择 uid=admin。右边面板中的 Attributes 选项卡显示了用户 admin 的相关属性。
- 选择 Search 选项卡,并如图 4 所示填写其中的表格。
-
Connect Info 选项卡显示了 LDAP 服务器的连接信息。
图 3. 管理控制台中的 LDAP Viewer
图 4. 在 LDAP Viewer 中进行搜索
-
ClassLoader Viewer
ClassLoader 是基于 Java 的系统(在运行时发现并加载 Java 类的系统)中的一个组件。ClassLoader Viewer 显示了已经定义的类加载器、它们之间的关系,以及分别加载的类。该查看器具有两个选项:Search 和 Invert Tree。
在缺省情况下,ClassLoader Viewer 采用父-子的形式显示 ClassLoader。父类加载器是 sun.misc.Launcher$ExtClassLoader@6fbc6fbc。选择 Invert Tree,可以将该视图更改为子-父的形式。扩展类加载器 sun.misc.Launcher$ExtClassLoader@6fbc6fbc 是引导类加载器 (bootstrap classloader) 的子类加载器。
要使用 ClassLoader Viewer(可以考虑前面的数据库池示例),需要执行以下操作:
- 从管理控制台启动 ClassLoader Viewer。
- 选择 Invert Tree。
- 选择数据库池示例的条目,并展开所有的树节点。该查看器显示了为数据库池示例加载的所有类。
图 5. 数据库池示例的 ClassLoader Viewer
-
JNDI Viewer
JNDI (Java Naming and Directory Interface) 是一个用于按名称查找数据和对象(如数据源、EJB 组件等等)的目录接口 API。JNDI Viewer 建立于相同的功能之上,为各种模块显示 JNDI 上下文。
要使用 JNDI Viewer,需要执行以下操作:
- 部署一个应用程序,如 geronimo-jsp-examples-2.0.war。
- 从管理控制台启动 JNDI Viewer。
- 展开 WebModule,然后是 org.apache.geronimo.applications.examples.geronimo-examples/geronimo-jsp-examples/2.0/war 文件。该查看器显示了各种模块的 JNDI 上下文。
图 6. JNDI Viewer
-
Dependency Viewer
对于应用程序来说,与外部库(以 JAR 或者压缩的存档文件的形式)存在依赖关系是很常见的。通常,在服务器上运行的每个模块还将引用库或者其他模块。Dependency Viewer 显示所有已安装的、并正在该服务器中运行的模块的依赖关系视图。对于发现和解析重复的依赖关系、发现任何缺少的依赖关系来说,这些信息是非常有帮助的。
要使用 Dependency Viewer(可以考虑前面的数据库池示例),需要执行以下操作:
- 从管理控制台启动 Dependency Viewer Portlet。
- 展开 Resource Adapter Module 树。
- 展开数据库池sample 的树。该查看器显示了 DB2 数据库池示例对 DB2 JAR 和系统模块的依赖关系。
图 7. 数据库池示例的依赖关系视图

 |

|
配置替换属性
在 Community Edition V2.0 出现之前,要运行应用服务器的多个实例有些麻烦,因为需要对端口配置进行手工更改,以避免出现端口冲突。现在,运行多个服务器实例只需要执行一个步骤即可。在 Community Edition V2.0 中,config.xml 使用 $(a+b) 形式的表达式为各个模块计算端口编号。例如:
清单 1. 摘自 config.xml
<gbean name="RMIRegistry">
<attribute name="port">${NamingPort + PortOffset}</attribute>
</gbean> |
当在启动时对 config.xml 进行处理的时候,从 config-substitutions.properties 文件中获得 NamingPort 和 PortOffset 变量。可以在 <WASCE_HOME>/var/config/config-substitutions.properties 中找到这个文件。
清单 2. 摘自 config-substitutions.properties 文件
PortOffset=0
PlanServerHostname=0.0.0.0
PlanNamingPort=1099 |
RMIRegistry 将使用端口 1099 启动,因为在缺省情况下,portOffset=0。将其更改为 portOffset=10,RMIRegistry 将使用端口 1109 启动。类似地,其他模块都将使用端口号偏移量 10 来进行启动。
可以使用下面的命令改变 config-substitutions.properties 文件的文件名:
Dorg.apache.geronimo.config.substitutions.file=var/config/myconfig-file.properties
环境变量和系统属性将覆盖 config-substitutions.properties 文件中的值。
一台服务器,多个存储库
Community Edition V2.0 支持每个服务器实例使用多个存储库。当需要对数据进行物理分离时,这个特性就会非常方便。例如,运行大型应用程序的企业将发现这个特性非常有用,它们应该利用这个特性来更改存储库,而不会影响整个生产环境。
要创建多个存储库,需要执行以下操作:
- 创建一个计划 newrepo.xml。例如:
清单 3. newrepo.xml 示例
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="http://geronimo.apache.org/xml/ns/deployment-1.2">
<environment>
<moduleId>
<groupId>org.example.configs</groupId>
<artifactId>samplerepository</artifactId>
<version>2.0.1</version>
<type>car</type>
</moduleId>
<dependencies>
<dependency>
<groupId>org.apache.geronimo.configs</groupId>
<artifactId>j2ee-system</artifactId>
<version>2.0.1</version>
<type>car</type>
</dependency>
</dependencies>
<hidden-classes/>
<non-overridable-classes/>
</environment>
<!--Repository-->
<gbean name="newRepo" class="org.apache.geronimo.system.repository.Maven2Repository">
<attribute name="resolveToServer">true</attribute>
<reference name="ServerInfo">
<name>ServerInfo</name>
</reference>
</gbean>
<!--Configuration Store service-->
<gbean name="Local2" class="org.apache.geronimo.system.configuration.
RepositoryConfigurationStore">
<reference name="Repository">
<name>newRepo</name>
</reference>
</gbean>
</module> |
resolveToServer 属性是一个布尔类型的值;如果为真,它会将新的存储库解析为服务器基础目录,反之如果为假,它会将新的存储库解析为服务器基础存储库。
- 为新的存储库 <WASCE_HOME>/newrepo 创建一个目录。这个目录必须与 Maven2Repository gbean 中的 root 属性所引用的内容相同。路径 newrepo/ 是相对于 Community Edition 的安装目录的。
- 通过运行这个命令来部署 newrepo.xml:
deploy deploy newrepo.xml
该部署命令是脚本 <WASCE_HOME>/bin/deploy.bat(或者 deploy.sh,这取决于具体的操作系统)。可以从 <WASCE_HOME>/bin 目录中或者将该目录放到系统路径中,然后通过键入 deploy 调用它。这将完成该服务器的第二个存储库的创建。
要使用新的存储库,需要执行以下操作:
- 打开命令提示符(在 Windows 中)或者 Shell 提示符 (UNIX)。
- 运行下面的命令:
deploy list-targets
- 显示该服务器中可用存储库的列表。
清单 4. 可用的目标
org.example.configs/samplerepository/2.0.1/car? ServiceModule=
org.example.configs/samplerepository/2.0.1/car,j2eeType=ConfigurationStore,name=Local2
org.apache.geronimo.configs/j2ee-system/2.0.1/car?ServiceModule=
org.apache.geronimo.configs/j2ee-system/2.0.1/car,j2eeType=Configuration Store,name=Local |
- 要将一个应用程序部署到新的存储库,可以使用这个命令:
deploy deploy --targets %NEWREPO% mysample.war
- 要从新的存储库取消一个应用程序的部署,可以使用这个命令:
deploy undeploy "%NEWREPO%|default/mysample/2.0.1/war"
请记住,仅支持通过命令行将一个应用程序部署到服务器的第二存储库。另外,如果在部署命令中没用使用 –target 属性,那么该应用程序将部署到所有存储库。
多个服务器实例
Community Edition V2.0 允许您运行来自一个安装目录的服务器的多个实例。从一个目录中运行多个实例具有以下几方面好处:
- 这种方式的成本效率很高;而在多台计算机中维护多个服务器,可能需要多种昂贵的硬件和软件配置。
- 对其中一个实例进行配置不会影响其他实例。
- 您只需要安装一个服务器,就可以获得集群和负载平衡的优点,从而在某个实例崩溃或者挂起的情况下,改善可伸缩性,并确保高可用性。
- 通过在服务器的多个实例之间明确地划分服务器资源,可以减少开销。
要从一个安装中创建服务器的多个实例,需要执行以下操作:
- 创建一个目录 <WASCE_HOME>/myserver(其中 myserver 是该服务器的第二实例)。
- 将 <WASCE_HOME>/var/* 复制到 <WASCE_HOME>/myserver/var。
- 编辑 myserver/var/config-substitution.properties,取消
portOffset 的注释,并将它的值改为 10。
- 启动服务器。您可以使用下列三种方式的其中之一来完成这个任务:
- 打开命令提示符或者 Shell 提示符,然后按如下进行设置:
GERONIMO_OPTS=-Dorg.apache.geronimo.server.name=myserver
并运行:对于 Windows: <WASCE_HOME>/bin/startup.bat
对于 UNIX: startup.sh
- 在 <WASCE_HOME>/bin/setenv.bat 中,将:
@if "%JAVA_OPTS%" == "" set JAVA_OPTS=-Xms32m -Xmx256m
更改为:
if "%JAVA_OPTS%" == "" set JAVA_OPTS=-Xms32m -Xmx256m -Dorg.apache.geronimo.server.name=myserver
并运行:对于 Windows: <WASCE_HOME>/bin/startup.bat
对于 UNIX: startup.sh
- 将 -Dorg.apache.geronimo.server.name=myserver 传递到服务器的命令行调用。从 <WASCE_HOME>/bin 中,运行这个命令:
java java -Dorg.apache.geronimo.server.name=myserver -Djava.endorsed.dirs=lib
/endorsed -javaagent:bin/jpa.jar -jar bin/server.jar
- 在浏览器中启动管理控制台:
http://localhost:8090/console
多个服务器实例,每个都有它自己的存储库
可以对 Community Edition V2.0 进行配置,以使得每个服务器实例都有它自己的存储库:
- 创建一个目录 <WASCE_HOME>/myserver,其中 myserver 是该服务器的第二实例。
- 将 <WASCE_HOME>/var/* 复制到 <WASCE_HOME>/myserver/var。
- 创建一个目录 <WASCE_HOME>/myserver/newrepo,其中 newrepo 是实例 myserver 的存储库。
- 在 newrepo.xml 中,将:
<attribute name="root">newrepo/</attribute>
更改为:
<attribute name="root">myserver/newrepo/</attribute>.
- 编辑 myserver/var/config-substitution.properties 文件。取消
portOffset 行的注释,并将它的值更改为 10。
- 启动服务器。
- 部署 newrepo.xml 运行这个命令:
deploy --port 1109 deploy newrepo.xml。
这个命令会在服务器的当前实例中部署 newrepo.xml 文件,并将新的存储库绑定到服务器的新实例。在该服务器的缺省实例中,以及该服务器的新实例中,都将出现新存储库的空间占用,但是它仅在新实例中运行。
要在服务器的新实例中部署一个应用程序,需要执行以下操作:
- 在浏览器中启动管理控制台。
- 选择 Deploy New,并部署一个示例应用程序,例如:mysample.war。该应用程序将部署到这两个实例中,但它仅在新实例中运行。
- 还可以使用下面的行命令部署应用程序:
deploy deploy --targets %NEWREPO% mysample.war
使用这个方法部署的应用程序将仅在新的存储库中存在空间占用。
- 要取消应用程序的部署,需要运行命令:
deploy undeploy "%NEWREPO%|default/mysample/2.0.1/war"
简化的部署
Enterprise JavaBeans™ (EJB) 是用于开发企业应用程序的服务器端组件。随着不断发布的 EJB 规范,EJB 组件的开发变得越来越复杂,但是对于发行版 EJB 3.0,情况却发生了很大的变化。Community Edition V2.0 支持 EJB 3.0,而 EJB 3.0 使用元数据注释作为部署描述符的替代方法。
在 EJB 3.0 中,所有的 EJB 都是带有注释的传统 Java 对象(Plain Old Java Objects,POJO)。当使用 EJB 3.0 编写企业应用程序时,Community Edition 容器将在运行时自动地生成部署描述符。这消除了对 ejb-jar.xml 或者 open-ejb-jar.xml 文件的需要。(这并不意味着完全不需要使用 XML。如果您同时定义了注释和部署描述符,那么将会覆盖注释。)
图 8. 使用 Community Edition EJB 容器生成部署文件
清单 5. Community Edition V2.0 之前的 EJB 应用程序
|- SampleApplication.ear
|- META-INF
|- application.xml
|- geronimo-application.xml
|- SampleApplication.jar
|- ejb-jar.xml
|- SampleApplication.war |
清单 6. Community Edition V2.0 中的 EJB 应用程序
|- SampleApplication.ear
|- META-INF
|- application.xml
|- geronimo-application.xml
|- SampleApplication.jar
|- SampleApplication.war
|
注释
注释是作为 JSR-175 中的一部分而提供的一种新的语言特性。它是一种用于 Java 编程语言 (JPL) 的元数据工具,您可以采用某种方式在您的代码中进行注释,它将根据元数据信息改变 Web 容器的行为。以下是一个简单示例:
清单 7. 注释示例
@webService
public Class HelloWorld
{
@webMethod
public String hellowworld()
{
return “Hello” ;
}
} |
在这个示例中,@webService 注释类型将这个类标记为 Web 服务,而 @webMethod 将 hellowworld 方法标记为 webMethod。这意味着,使用注释,就可以不再需要标准的 web.xml 文件。Servlet 2.5 规范中声明,可以在某些 Web 组件(如 Servlet、筛选器、侦听器和标记处理程序)中定义注释。注释用于声明对外部资源的依赖关系。Web 容器将在这些组件中检测相关的注释,然后在开始组件的生命周期之前注入所需的依赖关系。注释可以作为要求容器执行某些 Servlet 任务的请求,否则它将自己执行。这也称为依赖关系注入。
可以与 Web 应用程序一起使用的其他注释包括 @Resource、@PostConstruct、@PreDestroy 和 @EJB。
使用这些注释的好处包括:
- 部署描述符是可选的。
- 您可以将更多注意力集中于业务逻辑。
- 因为可以将对容器的请求放入到代码中,所以使得对部署描述符与代码进行同步的开销减到最小。例如,可以将一个类公开为 Web 服务。
- 开发时间显著地减少。
Eclipse 插件和 Eclipse 3.3
Eclipse 插件提供了 Community Edition 和 Eclipse Web Tools Project (WTP) 之间的集成。您可以使用插件在 Eclipse 的 Community Edition 中开发、测试和调试应用程序。(即将推出的 Community Edition V2.0 的 Eclipse 插件将同样支持 Community Edition V1.1.0.x。)
JAX-WS 工具
当您使用 jaxws-tool 时,可以更容易地生成 Web 服务部署和调用所需的构件,jaxws-tool 的脚本可以在如下目录中找到:
- Windows:<WASCE_HOME>/bin/jaxws-tool.bat
- UNIX:<WASCE_HOME>/bin/jaxws-tool.sh
要生成在 JAX-WS Web 服务(请参见参考资料)中使用的 JAX-WS 构件,可以在启动或者停止服务器的时候调用这个命令:
jaxws-tools wsgen
如果没有使用 WSDL 部署服务,那么服务器将为项目的部署自动生成 WSDL,这意味着,不需要运行 wsgen 工具。
要从 WSDL URI 生成 JAX-WS 可移植的构件,可以使用这个命令:
jaxws-tools wsimport
经过更新的示例
新的和经过更新的示例应用程序(请参见参考资料)可以用于展示 Community Edition 的一些新的增强功能和 Java EE 5 特性,包括 Apache Geronimo 2.0 提供的一些应用程序和 Community Edition 特有的一些应用程序。每个示例都包括源代码和预先构建的可安装文件,以及一个 README.txt 文件(在每个示例的子目录中),并提供了相应的指令以帮助您使用它们。
示例分发版中的应用程序包括:
-
calculator-stateless-pojo:展示了 OpenEJB 3.0.0 在服务器中提供的 EJB 3.0 支持。该应用程序包括一个无状态会话 Bean,由一个简单的 Web 客户端使用。
-
cviewer:Web 应用程序由一个调用 Servlet 的 JSP 文件组成。它为用户提供一个表单,让其输入完全限定的类名称。表单提交后,该 Servlet 将检查该类名称并将结果返回给用户。
-
daytrader:模拟股票交易的实际情况,允许您查看您的投资组合、获得报价以及买卖股票。部署工作通过 EAR 文件实现。
-
dbdemo1:在 Derby 数据库中访问 Community Edition_USERS 表的 Web 应用程序。
-
EMPdemo:显示如何访问 Derby 数据库,以及如何配置对外部(Oracle 或者 MicroSoft SQL)数据库的访问。部署工作通过 WAR 文件实现。
-
file-realm-demo:展示如何使用用户和组的平面文件设置安全约束。
-
geronimo-jsp-examples:Apache Tomcat 提供的 JSP 示例应用程序。
-
geronimo-Servlet-examples:Apache Tomcat 提供的 Servlet 示例应用程序。
-
hello:简单的“hello”JSP Web 应用程序。
-
jaxws-calculator:展示如何在服务器中使用 Axis2 1.3 提供的 JAX-WS 支持。
-
jpa:展示如何在服务器中使用 OpenJPA 1.0.0 提供的 Java Persistence API (JPA) 支持。该应用程序包含一个 JPA Entity Bean,由一个简单的 Web 客户端使用它。
-
jsf:展示如何在服务器中使用 MyFaces 1.2 提供的 JavaServer Faces (JSF) 支持。
-
ldap-realm:为 ldap-realm-demo 提供服务器范围的 LDAP 域配置计划。(这个示例提供了预构建文件,但是您必须对其进行自定义,以便使用您的 LDAP 服务器。)
-
ldap-realm-demo:使用 ldap-realm 示例以展示如何使用服务器提供的 LDAPLoginModule 配置您的应用程序。
-
magicGball:使用 CORBA 在 J2EE 应用程序客户端和 EJB 之间进行通信。(为安全和非安全的传输提供了单独的计划。)
-
mdb:展示如何通过 OpenEJB 使用消息驱动的 Bean,以便通过 Web 应用程序或者独立的 Java 应用程序使用 ActiveMQ 来更新客户数据库。
-
PlantsByWebSphere:联机存储各种专用于种植和园艺的工具。客户可以打开帐号,浏览要购买的产品,查看产品详细信息、并下订单。
-
tomcat-cluster:嵌入式 Apache Tomcat Web 容器的 Web 层集群、负载平衡和故障转移示例。(这个示例需要两个物理服务器和一个 Internet 连接,以便下载 Apache HTTP 服务器和 mod-jk 文件。)
-
welcome:WebSphere Application Server Community Edition 提供的缺省 Welcome 应用程序。

 |

|
结束语
IBM WebSphere Application Server Community Edition V2 在许多技术领域中提供了新的特性和增强功能,以帮助改进和加速您的应用程序开发和部署。希望本文有助于提供对 Community Edition 最新版本的概述。下面的参考资料将帮助您更深入地了解和探索 Community Edition V2.0 中提供的更多内容。
致谢
感谢 Donald Woods 对本文进行了审阅,并提供了一些宝贵意见。
参考资料 学习
获得产品和技术
讨论
关于作者  | 
|  |
Ashish Jain 是 IBM WebSphere Application Server Community Edition 的 Level 2 Technical Support 的一位软件工程师。他获得了 NITK Surathkal 的计算机科学工程学士学位,并于 2005 年作为 ELTP 加入 IBM。 |
对本文的评价
|