Sun Java System Web Server 7.0 管理员指南

配置 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)