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 中的新特性 |
为了简化故障诊断工作,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
- 打开命令提示符或者 Shell 提示符,然后按如下进行设置:
- 在浏览器中启动管理控制台:
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 插件提供了 Community Edition 和 Eclipse Web Tools Project (WTP) 之间的集成。您可以使用插件在 Eclipse 的 Community Edition 中开发、测试和调试应用程序。(即将推出的 Community Edition V2.0 的 Eclipse 插件将同样支持 Community Edition V1.1.0.x。)
当您使用 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 对本文进行了审阅,并提供了一些宝贵意见。
学习
- 您可以参阅本文在 developerWorks 全球站点上的 英文原文 。
-
developerWorks 应用开发源动力:快速启动开发
-
开源 J2EE 应用服务器 WAS CE 专栏
-
WebSphere Application Server Community Edition 产品文档
-
Apache Geronimo
-
WebSphere Application Server Community Edition V2.0 的变化
-
Configure Web application security in WebSphere Application Server Community Edition V2.0
-
Develop and deploy JAX-WS Web services on WebSphere Community Edition V2.0
-
WebSphere Application Server Community Edition 参考资料
-
WebSphere Application Server Community Edition 技术支持产品
-
IBM developerWorks
-
IBM developerWorks Open source 专区
-
了解 Java EE 5
-
Apache Geronimo 文档
-
Apache Geronimo Java EE 5 汇报卡
获得产品和技术
-
下载 IBM WebSphere Application Server Community Edition
-
WebSphere Application Server Community Edition V2.0 服务器插件
-
Apache Geronimo 示例
-
ActiveMQ
-
Apache Tomcat
-
OpenEJB
讨论
