Web 應用程式可以存取多種資源,例如資源管理員、資料來源 (如 SQL 資料來源)、郵件階段作業以及 URL 連線工廠。Java EE 平台透過 Java Naming and Directory Interface (JNDI) 服務向應用程式展示此類資源。
Sun Java System Web Server 允許建立與管理以下 Java EE 資源:
JDBC 資料來源。
JDBC 連線池。
Java 郵件階段作業。
自訂資源。
外部 JNDI 資源。
JDBC 資料來源是一種 Java EE 資源,可以使用 Sun Java System Web Server 建立與管理。
JDBC API 是用於連線關聯式資料庫系統的 API。JDBC API 具有兩個組件﹕
應用程式元件用於存取資料庫的應用程式層級介面。
將 JDBC 驅動程式連結到 Java EE 平台的服務提供者介面。
JDBC 資料來源物件是採用 Java 程式設計語言的資料來源實作。從基本上來看,資料來源是儲存資料的設備。可以如大公司複雜的資料庫一樣複雜,也可以如具有列和欄的檔案一樣簡單。JDBC 資料來源是 Java EE 資源,可以透過 Sun Java System Web Server 建立與管理。
JDBC API 提供具有標準 SQL 資料庫存取介面的 Java 類別集,以確保對廣泛關聯式資料庫的統一存取權限。
透過使用 JDBC,可以將 SQL 描述傳送至任何虛擬資料庫管理系統 (DBMS)。它同時作為關聯式 DBMS 與物件 DBMS 的介面。
若要透過 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 驅動程式。
下表將提供在增加新的 JDBC 資源時,需要配置的一般 JDBC 驅動程式及其特性清單。請參閱增加新的 JDBC 資源。
表 11–2 一般與受支援的 JDBC 驅動程式清單
選取配置。
從配置清單選取配置。按一下 [配置] 標籤以取得清單。
按一下 [Java] > [資源] 標籤。
按一下 [JDBC 資源] 區段下的 [新增] 按鈕。
選取驅動程式供應商。
指定唯一 JNDI 名稱值,並從可用清單中選取 JDBC 驅動程式供應商。
提供 JDBC 資源特性。
根據上一步選取的 JDBC 驅動程式供應商,自動寫入驅動程式的類別名稱和 JDBC 資源特性。
查閱。
檢視摘要,然後按一下 [完成] 以建立新的 JDBC 資源。
在 Sun Java System Web Server 7.0 中,要透過 jdbc-resource 元素配置 JDBC 連線池。下面列出的步驟,可以配置最簡單的連線池。在此例中,連線池使用 Oracle JDBC 驅動程式。
啟動 wadm。
建立 JDBC 資源。
使用基本配置建立 JDBC 資源。其他屬性可用於微調連線池。請參閱線上手冊以瞭解更多屬性和範例。
wadm> create-jdbc-resource --config=test --datasourceclass=oracle.jdbc.pool.OracleDataSource jdbc/MyPool |
配置供應商特有特性。
此特性用於配置驅動程式的供應商特有特性。以下範例中的 url、user 與 password 特性將增加至 JDBC 資源。
wadm> add-jdbc-resource-userprop --config=test --jndi-name=jdbc/MyPool url=jdbc:oracle:thin:@hostname:1521:MYSID user=myuser password=mypassword |
啟用連線驗證。
您可為連線池啟用連線驗證。如果使用此選項,連線在傳遞至應用程序之前會經過驗證。這可讓 Web 伺服器自動重新建立資料庫連接 (由於網路故障或資料庫伺服器當機,資料庫不可用時)。對連接進行驗證會耗用額外的時間,並且會略微降低效能。
wadm> set-jdbc-resource-prop --config=test --jndi-name=jdbc/MyPool connection-validation-table-name=test connection-validation=table |
變更預設池設定。
在此例中,讓我們變更連線的最大數目。
wadm> set-jdbc-resource-prop --config=test --jndi-name=jdbc/MyPool max-connections=100 |
部署配置。
wadm> deploy-config test |
提供包含 JDBC 驅動程式的 JAR 檔案。
您需要為伺服器提供可實作驅動程式的類別。可使用的方法有兩種:
將驅動程式的 JAR 檔案複製到伺服器實例程式庫目錄。這是最簡單的方法,因為實例程式庫目錄中的 JAR 檔案會自動載入並提供給伺服器。
修改 JVM 的 class-path-suffix 以包含 JDBC 驅動程式的 JAR 檔案。
wadm> set-jvm-prop --config=test class-path-suffix=/export/home/lib/classes12.jar |
在 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(); |
可以按照此工作來註冊包含實例的自訂資源。
下表說明了可用於建立自訂資源的特性。
表 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)。
此選項可讓您建立外部 Java Naming and Directory Interface (JNDI) 資源。您需要外部 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 建立與管理。
許多網際網路應用程式都需要傳送電子郵件通知的功能。因此,Java EE 平台包括 JavaMail API 以及 JavaMail 服務提供者,可讓應用程式元件傳送網際網路郵件。
下表說明了在增加新的郵件資源時可以使用的特性。
表 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)。