Sun Java System Web Server 7.0 管理员指南

第 11 章 使用 Java 和 Web 应用程序

本章介绍编辑虚拟服务器的 Java 设置的过程。您可以通过管理控制台或 wadm 命令行工具编辑 Java 设置。本章也介绍了可以在 Sun Java System Web Server 中配置的各种 Java 资源。

同时本章还介绍了如何在 Sun Java System Web Server 中部署 Java Web 应用程序。

配置 Java 以使用 Sun Java System Web Server

本节介绍如何为选定的配置启用 Java 并设置 Java 主目录变量。

Procedure为配置启用 Java

  1. 选择配置。

    从配置列表中选择相应的配置。单击“配置”选项卡以获取可用配置的列表。

  2. 单击 "Java" >“常规”选项卡。

  3. 单击“启用 Java”复选框。

    为配置启用/禁用 Java 支持。启用 Java 将使服务器可以处理 Java 应用程序。

  4. 设置 Java 主目录。

    指定 Java SE 的位置。指定绝对路径或相对于服务器的 config 目录的路径。

  5. 设置粘性附加。

    指定服务器是否将每个 HTTP 请求处理线程仅附加至 JVM 一次(否则,服务器会在每个请求上附加/拆离 HTTP 请求处理线程)。


    注 –

    使用 CLI

    要为配置启用 Java,请执行以下命令。


    wadm> enable-java --user=admin --password-file=admin.pwd --host=serverhost 
    --port=8989 --config=config1

    请参见 CLI 参考 enable-java(1)


设置 Java 类路径

本节介绍如何为选定的配置添加 JVM 类路径。

Procedure设置 Java 类路径

  1. 选择配置。

    从配置列表中选择相应的配置。单击“配置”选项卡以获取可用配置的列表。

  2. 单击 "Java" >“路径设置”选项卡。

    编辑以下参数:

    • 忽略环境类路径-默认情况下处于启用状态。

    • 类路径前缀-系统类路径的前缀。仅当要覆盖系统类(例如,XML 解析器类),才能在系统类路径前添加前缀。使用此参数时应谨慎

    • 服务器类路径-包含服务器类的类路径。只读列表。

    • 类路径后缀-附加到服务器类路径。

    • 本地库路径前缀-操作系统本地库路径的前缀。

    • 字节码预处理程序类-用于实现 com.sun.appserv.BytecodePreprocessor 的类的全限定名称。运行时类程序设备通常会通过预处理机制来执行,方法是在 JVM 加载分析和监视工具之前,使用类预处理程序在 Java 类中所需的位置插入程序设备代码。为此,应将类预处理程序与类加载器配合使用。

配置 JVM

要在管理界面中设置 JVM 命令行选项,请执行以下任务:

Procedure配置 JVM

  1. 选择配置。

    从配置列表中选择相应的配置。单击“配置”选项卡以获取列表。

  2. 单击 "Java" >“JVM 设置”选项卡。

    配置 JVM 的设置。

添加 JVM 选项

通过指定此处相应的值可以添加/删除命令行 JVM 选项。

单击“添加 JVM 选项”按钮以添加 JVM 选项。

JVM 选项的一些示例如下:-Djava.security.auth.login.config=login.conf, -Djava.util.logging.manager=com.iplanet.ias.server.logging. ServerLogManager and -Xms128m -Xmx256m


注 –

使用 CLI

要通过 CLI 添加 JVM 选项,请执行以下命令。


wadm> create-jvm-options --user=admin --password-file=admin.pwd --host=serverhost 
--port=8989 --config=config1 -Dhttp.proxyHost=proxyhost.com -Dhttp.proxyPort=8080

请参见 CLI 参考 create-jvm-options(1)


添加 JVM 事件探查器

JVM 事件探查器可帮助您诊断和解决 Java 应用程序中的性能问题、内存泄漏、多线程问题和系统资源使用问题,以确保您的应用程序获得最高级别的稳定性和可伸缩性。

Procedure添加 JVM 事件探查器

  1. 选择配置。

    从配置列表中选择相应的配置。单击“配置”选项卡以获取可用配置的列表。

  2. 单击 "Java" >“JVM 设置”选项卡。

  3. 单击“事件探查器”部分下的“新建”按钮。

  4. 提供以下参数的值:

    • 名称-提供新 JVM 事件探查器的简短名称。

    • 已启用-确定是否在运行时启用事件探查器。

    • 类路径-提供有效的事件探查器类路径。(可选)。

    • 本地库路径-提供有效的本地库路径。(可选)。

    • JVM 选项-您可以为 CLI 指定其他 JVM 选项。


    注 –

    使用 CLI

    要通过 CLI 添加 JVM 事件探查器,请执行以下命令:


    wadm> create-jvm-profiler --user=admin --password-file=admin.pwd 
    --host=serverhost --port=8989 --config=config1

    请参见 CLI 参考 create-jvm-profiler(1)


为服务器启用 Java 调试

JVM 可以在调试模式下启动,并可以附加 JPDA(Java Platform Debugger Architecture,Java 平台调试器体系结构)调试器。启用调试时,您可同时启用本地调试和远程调试。

Sun Java System Web Server 的调试功能以 JPDA 软件为基础。要启用调试,请执行以下步骤。

Procedure启用 JVM 调试

  1. 选择配置。

    从配置列表中选择相应的配置。单击“配置”选项卡以获取可用配置的列表。

  2. 单击 "Java" >“JVM 设置”选项卡。

  3. 选中“调试 Java 设置”下的“启用调试”复选框。

  4. 如有必要,可通过单击“新建”按钮来提供 JVM 选项。

    默认 JPDA 选项如下:


    -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7896

    如果您替换 suspend=y,则 JVM 将以暂停模式启动,并在调试器附加到其之前一直处于暂停状态。如果您希望 JVM 启动后立即启动调试,则该操作非常有用。要指定将 JVM 附加到调试器时要使用的端口,请指定 address=port_number。请查阅 JPDA 文档,以获得调试选项的列表。

部署 Java Web 应用程序

添加 Web 应用程序

可以将 Web 应用程序部署到任何现有虚拟服务器上。

Procedure部署 Web 应用程序

开始之前
Sun Java System Web Server 7.0

Web 应用程序可以通过 wadm、管理控制台和其他支持的 IDE 进行部署。

  1. 单击“服务器配置”下的虚拟服务器选项卡以部署 Web 应用程序。

  2. 选择需要在上面部署 Web 应用程序的虚拟服务器。

  3. 单击“Web 应用程序”>“新建”按钮。

  4. 指定 Web 应用程序软件包。

    如果需要上载 Web 应用程序归档文件,请单击“浏览”按钮并选择所需的归档文件。您也可以指定位于服务器中的 Web 应用程序归档文件(可选)。

  5. 指定 Web 应用程序的 URI。此 URI 将是应用程序的上下文根,它是相对于服务器主机的。

  6. 提供有关 Web 应用程序的简短说明。

  7. 启用/禁用 JSP 预编译。

    启用该指令将允许对 Web 应用程序中的所有 JSP 进行预编译,以提高性能。

  8. 启用应用程序。

    将某个 Web 应用程序的状态设置为“已禁用”时,该应用程序在请求时将不可用。但是,您可以随时切换此选项,而无需将该应用程序重新部署到实例上。

  9. 部署应用程序。

    单击“部署”按钮以部署 Web 应用程序。

    您可以使用指定的上下文根访问此应用程序。例如 http://<your-server>:<port>/<URI>


    注 –

    使用 CLI


    wadm> add-webapp --user=admin --password-file=admin.passwd --host=localhost 
     --port=8888 --config=config1 --vs=HOSTNAME --uri=/hello /home/test/hello.war

    请参见 CLI 参考 add-webapp(1)


部署 Web 应用程序目录

使用 –file-on-server 选项可以将管理服务器主机上的目录部署到配置中。执行以下命令:


wadm> add-webapp --user=admin-user --password-file=admin.passwd 
--port=8989 --vs=vs1 --config=config1 --file-on-server
--uri=/mywebapp /space/tmp/mywebapp

部署期间预编译 JSP

要在部署 Web 应用程序时预编译该应用程序中的 JSP,请执行带有 –precompilejsp 选项的命令,如下所示:


wadm> add-webapp --user=admin-user --password-file=admin.passwd 
--port=8989 --vs=vs1 --config=config1 --file-on-server --uri=/mywebapp
--precompilejsp mywebapp.war

配置 Servlet 容器

本节介绍配置 servlet 容器的过程。

Procedure设置 Servlet 容器

  1. 选择配置。

    从配置列表中选择相应的配置。单击“配置”选项卡以获取列表。

  2. 单击 "Java" >“Servlet 容器”。

Servlet 容器全局参数

下表介绍 servlet 容器页面中的可用参数。

表 11–1 Servlet 容器参数

参数

说明

日志级别

servlet 容器的日志详尽程度。值可以为 finest(最详尽)、finer、fine、info、warning、failure、config、security 或 catastrophe(最不详尽)。 

动态重新加载时间间隔

此参数定义了一个时间段,经过此时间段后,服务器就会检查已部署的 Web 应用程序是否发生了修改。值的范围从 1 至 60,或者如果禁用动态重新加载,则为 -1。 

匿名角色

分配给所有主体的默认角色或匿名角色的名称。默认角色为 ANYONE。 

Servlet 池大小

实例化每个 SingleThreadedServlet 的 servlet 实例数。值的范围从 1 至 4096。

分发程序最大深度

允许嵌套请求分发的 Servlet 容器的最大深度。值的范围可介于 0 至 2147.0483647.0 之间。默认值为 20。 

允许交叉上下文

是否允许请求分发程序向其他上下文分发。默认值为 false。 

编码 Cookie

servlet 容器是否对 cookie 值进行编码。默认值为 true。 

重复使用会话 ID

为该客户机创建新会话时是否重复使用任何现有会话 ID 编号。默认值为 false。 

安全会话 Cookie

Dynamic/True/False。此参数控制在什么条件下将 JSESSIONID cookie 标记为安全。仅当通过安全连接 (HTTPS) 收到请求时,才会使用 dynamic(默认设置)将 Cookie 标记为安全。 

选择 True 可始终将其标记为安全,选择 false 可从不将其标记为安全。 

配置服务器生命周期模块

Java Server 生命周期模块是用于侦听服务器生命周期事件的 Java 类,以便在发生服务器事件(如启动或停止)时执行特定任务。

服务器支持在 Web 服务器环境中运行短时间或长时间的基于 Java 的任务。这些任务在服务器启动时自动启动,并在服务器关闭时收到通知。因此,现在您可以立即得知诸如实例化 singleton 和 RMI 服务器等任务。

服务器生命周期的简短说明如下。

服务器生命周期介绍

Procedure添加生命周期模块

  1. 选择配置。

    从配置列表中选择相应的配置。要查看配置列表,请单击“配置”选项卡。

  2. 单击 "Java" >“生命周期模块”选项卡。

  3. 单击“新建”按钮。

    提供以下参数的值:

    • 名称-为新的生命周期模块提供一个有效的唯一名称。

    • 已启用-如果要启用该生命周期模块,请使用此选项。

    • 类名称-全限定 Java 类名称。该类应实现 com.sun.appserv.server.LifecycleListener 接口。有关使用此接口的更多信息,请参见开发者指南

    • 类路径-可选。您可以指定侦听器类的类路径。

    • 加载顺序-大于 100。加载生命周期事件侦听器的顺序(按照数值顺序)。建议选择一个大于或等于 100 的加载顺序,以避免与内部生命周期模块发生冲突。

    • 装入失败时-如果启用该选项,服务器将不会把侦听器类抛出的异常视为致命错误,因此可继续执行正常启动。默认情况下,禁用该选项。

    • 说明-提供有关生命周期模块的简短说明。

    • 属性-属性可用于将参数传送给 Java 生命周期模块。要添加新属性,请单击“添加属性”按钮并在名称、值和说明字段中输入相应的文本。


    注意 – 注意 –

    服务器生命周期侦听器类是从主服务器线程同步调用的,因此必须采取额外的预防措施以避免这些侦听器类阻塞服务器。如果合适,这些侦听器类可创建线程,但是必须在关闭/终止阶段时停止这些线程。


Procedure删除生命周期模块

  1. 选择配置。

    从配置列表中选择相应的配置。要查看配置列表,请单击“配置”选项卡。

  2. 单击 "Java" >“生命周期模块”选项卡。

  3. 选择生命周期模块,然后单击“删除生命周期模块”按钮。


    注 –

    使用 CLI

    以下示例说明了如何为由类 com.MyLifecycleModule 实现的配置 test 创建名为 myLifecycleModule 的 Java 生命周期模块。


    wadm> create-lifecycle-module --user=admin --password-file=admin.pwd 
    --host=serverhost --port=8989 --config=config1 
    --class=com.sun.webserver.tests.LifecycleClass LifecycleTest

    请参见 CLI 参考 create-lifecycle-module(1)

    要列出 Java 生命周期模块,请执行以下命令:


    wadm> list-lifecycle-modules --config=test

    请参见 CLI 参考 list-lifecycle-modules(1)

    要向 Java 生命周期模块中添加属性,请执行以下命令:


    wadm> create-lifecycle-module-userprop --user=admin --password-file=admin.pwd 
    --host=serverhost --port=8989 --config=config1 --module=LifecycleTest info=Testing

    请参见 CLI 参考 create-lifecycle-module-userprop(1)

    要修改 Java 生命周期模块属性,请执行以下命令:


    wadm> set-lifecycle-module-prop --user=admin --password-file=admin.pwd 
    --host=serverhost --port=8989 --config=config1 --module=LifecycleTest 
    class-path=/space 

    请参见 CLI 参考 set-lifecycle-module-prop(1)


配置 Java 资源

Web 应用程序可以访问多种资源,例如资源管理器、数据源(如 SQL 数据源)、邮件会话和 URL 连接工厂。Java EE 平台通过 Java 命名和目录接口 (Java Naming and Directory Interface, JNDI) 服务将这些资源提供给应用程序。

Sun Java System Web Server 允许您创建和管理以下 Java EE 资源:

配置 JDBC 资源

JDBC 数据源是一种 Java EE 资源,可以通过 Sun Java System Web Server 进行创建和管理。

JDBC API 是用于连接关系数据库系统的 API。JDBC API 包含两部分:

JDBC 数据源对象是用 Java 编程语言实现的数据源。从本质上讲,数据源是一种存储数据的工具。数据源可能像大型公司的综合数据库一样复杂,也可能像仅包含行和列的文件一样简单。JDBC 数据源是一种 Java EE 资源,可以使用 Sun Java System Web Server 进行创建和管理。

JDBC API 使用标准的 SQL 数据库访问接口为 Java 提供了一组类,可以确保对多种关系数据库的统一访问。

事实上,使用 JDBC 可以将 SQL 语句发送到任何数据库管理系统 (database management system, DBMS)。它可以用作关系 DBMS 和对象 DBMS 的接口。

添加 JDBC 资源

要通过 CLI 添加 JDBC 资源,请执行以下命令:


wadm> create-jdbc-resource --user=admin --password-file=admin.pwd --host=serverhost
--port=8989 --config=config1 --datasource-class=oracle.jdbc.pool.OracleDataSource jdbc

请参见 CLI 参考 create-jdbc-resource(1)

上述示例中,com.pointbase.jdbc.jdbcDataSource 表示 JDBC 驱动程序类。

有关支持的 JDBC 驱动程序列表,请参见Sun Java System Web Server 支持的 JDBC 驱动程序

Sun Java System Web Server 支持的 JDBC 驱动程序

下表提供了常用 JDBC 驱动程序及其在添加新 JDBC 资源时需要配置的属性。请参见添加新 JDBC 资源

表 11–2 常用和受支持的 JDBC 驱动程序列表

驱动程序

类名

属性

Oracle 驱动程序

oracle.jdbc.pool.OracleDataSource

  • url

  • user

  • password

Oracle SJS JDBC 驱动程序

com.sun.sql.jdbcx.oracle. OracleDataSource

  • serverName

  • portNumber

  • user

  • password

  • SID

DB2 IBM 驱动程序

com.ibm.db2.jdbc.DB2DataSource

  • serverName

  • databaseName

  • portNumber

  • user

  • password

  • driverType

DB2 SJS JDBC 驱动程序

com.sun.sql.jdbcx.db2. DB2DataSource

  • databaseName

  • locationName

  • packageName

  • password

  • portNumber

  • serverName

  • user

MS SQLServer 驱动程序

com.ddtek.jdbcx.sqlserver. SQLServerDataSource

  • databaseName

  • password

  • user

  • serverName

  • portNumber

MS SJS JDBC 驱动程序

com.sun.sql.jdbcx.sqlserver. SQLServerDataSource

  • databaseName

  • password

  • user

  • serverName

  • portNumber

Sybase 驱动程序

com.sybase.jdbcx.SybDataSource

  • databaseName

  • password

  • portNumber

  • serverName

  • user

Sybase SJS JDBC 驱动程序

com.sun.sql.jdbcx.sybase. SybaseDataSource

  • databaseName

  • password

  • user

  • portNumber

  • serverName

MySQL MM 驱动程序

org.gjt.mm.mysql.jdbc2.optional. MysqlDataSource

  • serverName

  • port

  • databaseName

  • user

  • password

Informix 驱动程序

com.informix.jdbcx.IfxDataSource

  • portNumber

  • databaseName

  • IfxIFXHOST(运行 Informix 数据库的计算机的 IP 地址或主机名)

  • serverName

  • user

  • password

Informix SJS JDBC 驱动程序

com.sun.sql.jdbcx.informix. InformixDataSource

  • databaseName

  • informixServer(要连接的 Informix 数据库服务器的名称)

  • password

  • portNumber

  • severName

PostgreSQL 驱动程序

org.postgresql.ds. PGSimpleDataSource

  • serverName

  • databaseName

  • portNumber

  • user

  • password

Apache Derby 驱动程序

org.apache.derby.jdbc. EmbeddedDataSource

  • databaseName

  • user

  • password

管理 JDBC 资源

Procedure添加新 JDBC 资源

  1. 选择配置。

    从配置列表中选择相应的配置。单击“配置”选项卡以获取列表。

  2. 单击 "Java" >“资源”选项卡。

  3. 单击“JDBC 资源”部分中的“新建”按钮。

  4. 选择驱动程序提供商。

    为 JNDI 名称指定一个唯一的值并从可用列表中选择 JDBC 驱动程序供应商。

  5. 提供 JDBC 资源属性。

    根据上一步中选择的 JDBC 驱动程序供应商,系统将会自动填充驱动程序的类名称和 JDBC 资源属性。

  6. 检查。

    查看摘要并单击“完成”以创建新 JDBC 资源。

管理 JDBC 连接池

配置 JDBC 连接池

在 Sun Java System Web Server 7.0 中,JDBC 连接池是通过 jdbc-resource 元素进行配置的。按照以下所列步骤进行操作可以配置最简单的连接池。在以下示例中,连接池将使用 Oracle JDBC 驱动程序。

Procedure创建 JDBC 连接池

  1. 启动 wadm。

  2. 创建 JDBC 资源。

    使用基本配置创建一个 JDBC 资源。其他属性可用于微调连接池。有关更多属性和示例的信息,请参阅手册页。


    wadm> create-jdbc-resource --config=test 
    --datasourceclass=oracle.jdbc.pool.OracleDataSource jdbc/MyPool
  3. 配置特定于供应商的属性。

    使用相应的属性配置特定于驱动程序供应商的属性。在以下示例中,属性 urluserpassword 被添加到 JDBC 资源中。


    wadm> add-jdbc-resource-userprop --config=test --jndi-name=jdbc/MyPool 
    url=jdbc:oracle:thin:@hostname:1521:MYSID user=myuser password=mypassword
  4. 启用连接验证。

    可以对连接池启用连接验证。如果使用此选项,则连接在传递到应用程序之前将被验证。这样,如果由于网络出现故障或数据库服务器崩溃造成数据库不可用,Web 服务器将自动重新建立数据库连接。连接验证将引起额外开销,并且会导致性能稍有下降。


    wadm> set-jdbc-resource-prop --config=test --jndi-name=jdbc/MyPool 
    connection-validation-table-name=test connection-validation=table
  5. 更改默认池设置。

    在以下实例中,将更改最大连接数。


    wadm> set-jdbc-resource-prop --config=test --jndi-name=jdbc/MyPool 
    max-connections=100
  6. 部署配置。


    wadm> deploy-config test
  7. 提供包含 JDBC 驱动程序的 Jar 文件。

    需要将实现该驱动程序的类提供给服务器。可以通过两种方法执行该操作:

    • 将驱动程序的 jar 文件复制到服务器实例 lib 目录中。这是最简单的方法,因为实例 lib 目录中包括的 jar 文件将会自动加载并对服务器可用。

    • 修改 JVM 的类路径后缀以包含 JDBC 驱动程序的 jar 文件。


      wadm> set-jvm-prop  --config=test class-path-suffix=/export/home/lib/classes12.jar
  8. 在 Web 应用程序中使用。

    • 修改 WEB-INF/web.xml


      <web-app>
      ...
        <resource-ref>
          <description>JDBC Connection Pool</description>
          <res-ref-name>jdbc/myJdbc</res-ref-name>
          <res-type>javax.sql.DataSource</res-type>
          <res-auth>Container</res-auth>
        </resource-ref>
      ...
      </web-app>
    • 修改 WEB-INF/sun-web.xml


      <sun-web-app>
      ...
        <resource-ref>
          <res-ref-name>jdbc/myJdbc</res-ref-name>
          <jndi-name>jdbc/MyPool</jndi-name>
        </resource-ref>
      ...
      </sun-web-app>
    • 使用连接池。


      Context initContext = new InitialContext();
          Context webContext = (Context)context.lookup("java:/comp/env");
      
          DataSource ds = (DataSource) webContext.lookup("jdbc/myJdbc");
          Connection dbCon = ds.getConnection();

注册自定义资源

您可以通过执行以下任务在实例中注册自定义资源。

Procedure添加自定义资源。

  1. 选择配置。

    从配置列表中选择相应的配置。单击“配置”选项卡以获取列表。

  2. 单击 "Java" >“资源”选项卡。

  3. 单击“自定义资源”部分中的“新建”按钮。

自定义资源的属性

下表介绍了用于创建自定义资源的可用属性。

表 11–3 自定义资源的属性

属性

说明

JNDI 名称

为自定义资源提供一个唯一的 JNDI 名称。 

已启用

确定是否在运行时启用 JDBC 资源。 

资源类型

该资源的全限定类型。 

工厂类

实例化此类资源的类。用户编写的工厂类(用于实现 javax.naming.spi.ObjectFactory)的全限定名称。

说明

提供自定义资源的简短说明。 

属性

通过单击“添加属性”按钮可以有选择地提供 CLI 属性。 


注 –

使用 CLI

要通过 CLI 创建自定义资源,请执行以下命令:


wadm> create-custom-resource --user=admin --password-file=admin.pwd --host=serverhost 
--port=8989 --config=config1 --res-type=samples.jndi.customResource.MyBean 
--factory-class=samples.jndi.customResource.MyCustomConnectionFactory custom

请参见 CLI 参考 create-custom-resource(1)


使用外部 JNDI 资源

创建外部 JNDI 资源

使用该选项可以创建外部 Java 命名和目录接口 (Java Naming and Directory Interface, JNDI) 资源。您需要一个外部 JNDI 资源以访问存储在内部 JNDI 系统信息库中的资源。

Procedure添加外部 JNDI 资源

  1. 选择配置。

    从配置列表中选择相应的配置。单击“配置”选项卡以获取列表。

  2. 单击 "Java" >“资源”选项卡。

  3. 单击“外部 JNDI”部分中的“新建”按钮。

外部 JNDI 资源的属性

下表介绍了添加新外部 JNDI 资源时的可用属性。

表 11–4 外部 JNDI 资源的属性

属性

说明

JNDI 名称

提供新的外部 JNDI 资源的唯一名称。 

已启用

确定是否在运行时启用外部 JNDI 资源。 

外部 JNDI 名称

外部 JNDI 资源的名称。 

资源类型

该资源的全限定类型。 

工厂类

实例化此类资源的类。 

说明

提供自定义资源的简短说明。 

属性

通过单击“添加属性”按钮可以有选择地提供 CLI 属性。 


注 –

使用 CLI

要通过 CLI 创建外部 JNDI 资源,请执行以下命令:


wadm> create-external-jndi-resource --user=admin 
--password-file=admin.pwd --host=serverhost --port=8989 --config=config1 
--res-type=org.apache.naming.resources.Resource 
--factory-class=samples.jndi.externalResource.MyExternalConnectionFactory 
--jndilookupname=index.html external-jndi

请参见 CLI 参考 create-external-jndi-resource(1)


配置邮件资源

JMS 目标是 Java EE 资源,可以通过 Sun Java System Web Server 进行创建和管理。

许多 Internet 应用程序都需要具有发送电子邮件通知的能力,因此,Java EE 平台提供了 JavaMail API 以及一个使应用程序组件可以发送 Internet 邮件的 JavaMail 服务提供商。

Procedure添加邮件资源

  1. 选择配置。

    从配置列表中选择相应的配置。单击“配置”选项卡以获取列表。

  2. 单击 "Java" >“资源”选项卡。

  3. 单击“邮件资源”部分中的“新建”按钮。

邮件资源的属性

下表介绍了添加新邮件资源时的可用属性。

表 11–5 邮件资源的属性

属性

说明

JNDI 名称

为新的邮件资源提供一个唯一的名称。 

已启用

确定是否在运行时启用该邮件资源。 

用户

在邮件服务器中注册的有效用户名。 

发件人

服务器发送邮件的电子邮件地址。 

主机

邮件服务器的主机名/IP 地址。 

存储协议

用于检索邮件的协议。 

存储协议类

实现存储协议的存储服务提供商。实现存储协议的类的全限定类名。默认类为 com.sun.mail.imap.IMAPStore

传输协议

用于发送邮件的协议。 

传输协议类

实现传输协议的传输服务提供商。实现传输协议的类的全限定类名。默认类为 com.sun.mail.smtp.SMTPTransport


注 –

使用 CLI

要创建邮件资源,请执行以下命令:


wadm> create-mail-resource --config=test --server-host=localhost 
--mail-user=nobody --from=xyz@foo.com mail/Session

请参见 CLI 参考 create-mail-resource(1)


配置 SOAP 验证提供商

容器规范的 Java 验证服务提供商接口定义了一种标准的服务提供商接口,通过该接口可将验证机制提供商与容器进行集成。您可以使用管理控制台添加新的 SOAP 验证提供商。

Procedure添加 SOAP 验证提供商

  1. 选择配置。

    从配置列表中选择相应的配置。单击“配置”选项卡以获取列表。

  2. 单击 "Java" >“Web 服务”选项卡。

  3. 单击“SOAP 验证提供商”部分中的“新建”按钮。

SOAP 验证提供商参数

下表介绍了新建 SOAP 验证提供商页面中的可用参数。

表 11–6 SOAP 验证提供商参数

参数

说明

名称

输入新的 SOAP 验证提供商的简短名称。 

类名

实现此提供商的类。实现 javax.security.auth.XXX 的类的全限定类名。

请求验证源

该属性定义邮件层的发件人验证(例如用户名/密码)或内容验证(例如应用于请求邮件的数字签名)要求。该值(验证策略)可为 sender 或 content。如果没有指定此参数,则不需要对请求进行源验证。 

请求验证收件人

该属性定义在邮件层向邮件发件人验证邮件收件人的要求,例如,通过 XML 加密。值可以为 before-content 或 after-content。 

响应验证源

该属性定义邮件层的发件人验证(例如用户名/密码)或内容验证(例如应用于响应邮件的数字签名)要求。该值(验证策略)可为 sender 或 content。如果没有指定此参数,则不需要对响应进行源验证。 

响应验证收件人

该属性定义在邮件层向邮件发件人验证响应邮件收件人的要求,例如,通过 XML 加密。 

属性

通过单击“添加属性”按钮可以提供其他 CLI 属性。 


注 –

使用 CLI

要使用 CLI 添加 SOAP 验证提供商,请执行以下命令:


wadm> create-soap-auth-provider --user=admin --password-file=admin.pwd 
--host=serverhost --port=8989 --config=config1 
--class-name=javax.security.auth.soapauthprovider soap-auth

请参见 CLI 参考 create-soap-auth-provider(1)


配置会话复制

Sun Java System Web Server 7.0 支持为 Web 应用程序提供高可用性的会话复制功能。会话复制通过将 HTTP 会话从一个实例复制到同一群集中的另一服务器实例来实现这一目的。因此,每个 HTTP 会话在远程实例上均有一个备份副本。如果发生故障,致使群集中的某个实例不可用,则群集仍可保持会话的持续性。

Sun Java System Web Server 7.0Sun Java System Web Server 7.0

上图所示为设置了一个反向代理的四个节点之间发生会话复制的典型方案。请注意,Web Server C 脱机时,会话数据将从 Web Server B 复制到 Web Server D。

设置会话复制

本节介绍为选定的配置设置会话复制属性的步骤。

Procedure设置会话复制

  1. 选择配置。

    从配置列表中选择相应的配置。单击“配置”选项卡以获取列表。

  2. 单击 "Java" >“会话复制”。

修改会话复制参数

下表介绍了会话复制页面中的可用参数。

表 11–7 会话复制参数

参数

说明

端口

Administration Server 侦听的端口号。默认端口为 8888。 

已启用

为选定配置启用会话复制。 

加密

复制之前是否加密会话数据。默认值为 false。 

密码

群集成员用于复制会话数据的加密套件(算法、模式、填充)。 

Getatrribute 触发复制

HttpSession.getAttribute 方法的调用是否应导致对会话进行备份。默认值为 true。

副本搜索最大实例数

尝试查找会话备份时应联系的最大实例数。值的范围介于 1 至 2147.0483647 之间,没有限制时为 -1。 

启动搜索超时

实例尝试联系其指定的备份实例所花费的最长时间(以秒为单位)。值的范围从 0.001 至 3600。 

Cookie 名称

输入跟踪哪个实例拥有会话的 cookie 名称。 

管理验证领域

基于 Java EE 的安全模型提供了可识别和验证用户的安全领域。

验证进程通过 Java 领域验证用户。领域包括一组用户、可选的组映射以及可用来对验证请求进行验证的验证逻辑。验证请求通过已配置的领域验证并建立安全性上下文后,便可将该身份应用于所有后续的授权决策。


注 –

Java 领域与 auth-db(验证数据库)类似,不同的是, auth-db 由 ACL 引擎(基于您的 ACL 文件的规则)使用,而 Java 领域由 Java Servlet 访问控制规则(在每个 Web 应用程序的 web.xml 文件中指定的)使用。


服务器实例可能具有多种配置领域。server.xml 文件的 auth-realm 元素中提供了配置信息。

下表定义了 Sun Java System Web Server 7.0 支持的不同领域类型。

表 11–8 领域类型

领域

说明

File

file 领域是首次安装 Sun Java System Web Server 时的默认领域。该领域的设置非常简便,为开发者提供了很大方便。

file 领域使用存储在文本文件中的用户数据来验证用户。Java 领域与 auth-db(验证数据库)类似,不同的是, auth-db 由 ACL 引擎(基于您的 ACL 文件的规则)使用,而 Java 领域由 Java Servlet 访问控制规则(在每个 Web 应用程序的 web.xml 中指定的)使用。

LDAP

ldap 领域使您可以使用 LDAP 数据库获取用户安全性信息。LDAP 目录服务是带有唯一标识符的属性的集合。ldap 领域非常适合部署到生产系统中。

要使用 ldap 领域验证用户,必须在 LDAP 目录中创建所需的用户。您可以通过 Administration Server 的“用户和组”选项卡来执行此操作。此外,还可以通过 LDAP 目录产品的用户管理控制台来执行此操作。

PAM

PAM(也称为 Solaris)领域将验证委派给 Solaris PAM 堆栈。与 PAM auth-db 一样,该领域仅在 Solaris 9 和 Solaris 10 上受支持,并且必须以超级用户身份运行服务器实例。 

Certificate

certificate 领域支持 SSL 验证。Certificate 领域在 Sun Java System Web Server 的安全性上下文中设置用户身份,并将客户机证书的用户数据填入其中。然后,Java EE 容器将基于证书中每个用户的 DN 处理授权进程。此领域会通过 X.509 证书,以 SSL 或 TLS 客户机验证来验证用户。

Native

native 领域是一个特殊的领域,它为基于 ACL 的核心验证模型和 Java EE/Servlet 验证模型提供了联系桥梁。通过将 Native 领域用于 Java Web 应用程序,可以让 ACL 子系统执行验证(而不是让 Java Web 容器执行),并且使此身份可以用于 Java Web 应用程序。

调用验证操作时,Native 领域会将此验证委派给核心验证子系统。从用户的角度来看,这实际上相当于 LDAP 领域将验证委派给已配置的 LDAP 服务器。当 Native 领域处理组成员关系查询时,它们同时也被委派给核心验证子系统。对于 Java Web 模块和开发者而言,Native 领域与其他任何可用于 Web 模块的 Java 领域没有任何区别。 

自定义

您可以通过可插接式 JAAS 登录模块和领域实现为其他数据库(如 Oracle)建立领域,以满足您的特定需要。 

下节介绍添加新验证领域所包含的步骤。

Procedure添加验证领域

  1. 选择配置。

    选择需要添加新验证领域的配置。单击“配置”选项卡并选择相应的配置。

  2. 单击 "Java" >“安全性”选项卡。

  3. 单击“新建验证”按钮。

  4. 提供领域详细信息。

    • 名称-输入领域的简短名称。该名称用于从文件(例如,web.xml)中引用领域。

    • -如果您要配置自定义领域,则输入完整的 Java 类名称可以实现自定义领域。无需输入任何内置领域的类。

    • 类型-选择领域的类型。请参见前面讨论 Java 领域类型的部分。

    • 属性-添加特定于领域的属性。例如,property name="file" value="instance_dir/config/keyfile" 和 property name="jaas-context" value="fileRealm


    注 –

    使用 CLI

    要通过 CLI 添加验证领域,请执行以下命令。


    wadm> create-auth-realm --user=admin --password-file=admin.pwd --host=serverhost 
    --port=8989 --config=config1 basic

    请参见 CLI 参考 create-auth-realm(1)

    指定内置验证领域类型的名称。类型可以为 fileldappamnativecertificate