• 検索結果がありません。

PowerPoint プレゼンテーション

N/A
N/A
Protected

Academic year: 2021

シェア "PowerPoint プレゼンテーション"

Copied!
47
0
0

読み込み中.... (全文を見る)

全文

(1)

Copyright © Oracle Corporation, 2005. All rights reserved.

Oracle Application Server 10g (10.1.2)

への移行

技術情報

(2)

OC4J Standalone/J2EE & Web Cache

Oracle Application Server10g(10.1.2)へ移行する

上での一般的考慮点

y

設定

データソース : data-sources.xml

デプロイメントディスクリプタ

y WARファイル(Webアプリケーション) : orion-web.xml

y JARファイル(Enterprise JavaBeans) : orion-ejb-jar.xml

y EARファイル(エンタープライズアプリケーション) : orion-application.xml

y RARファイル(JCAリソースアダプタ) : oc4j-ra.xml

JMS(Java Message Service)

y OJMS or OracleAS JMSの選択

y OJMS利用の場合 : AQの設定、リソースプロバイダ設定

y OracleAS JMS利用の場合 : jms.xml

クラスローディング

y どのクラスローダにクラスを登録する

y

プログラム

各種リソースを取得するJNDI名

他社アプリケーションサーバに依存したAPI

y 例:WebLogicの場合 : weblogic.*パッケージの利用

Webサービス

(3)

Copyright © Oracle Corporation, 2005. All rights reserved.

(4)

OC4J Standalone/J2EE & Web Cache

OC4Jディレクトリ構造

ORACLE_HOME

j2ee

application-deployments

applications

config

connectors

default-web-app

demo

jazn

jsp

lib

persistence

ステートフルセッションBeanリポジトリ

Oracle以外が提供するライブラリ *

JSPタグライブラリ *

JAZN(JAAS)設定・デモ *

各種デモ **

デフォルトWebアプリケーション *

JCAリソースアダプタ置き場

OC4Jインスタンス全体の設定

EAR・WARファイル置き場

EAR・WAR展開場所

y

ORACLE_HOME配下のディレクトリ構造

OC4Jインスタンス名

applib

共通ライブラリ置き場

J2EE_HOME

OC4J StandaloneとJ2EE & Web

Cacheでインストールしたときのデ

フォルトOC4Jインスタンスhomeと

新規に作成したOC4J

インスタンス ディレクトリ

構成は多少異なります。

log

ログ

tldcahe

タグリブディレクティブキャッシュ

(OC4Jインスタンスhomeの例)

(5)

Copyright © Oracle Corporation, 2005. All rights reserved.

5

OC4J Standalone/J2EE & Web Cache

OC4J関連主な設定ファイル

y

J2EE_HOME/config配下の主要な設定ファイル

OC4Jインスタンス全体の各種設定

config

J2EE_HOME

* J2EE & Web Cacheでインストールした場合のRMI、JMSのポート番号の設定はORACLE_HOME/opmn/conf/opmn.xml で行います。(OC4J Standaloneの場合にはrmi.xml,jms.xmlで行います)

oc4j-connectors.xml

単体JCAリソースアダプタの設定

application.xml

グローバルアプリケーション設定

data-sources.xml

データソース設定

グローバルWebアプリケーション設定

global-web-application.xml

Webサイトの設定(HTTP)

http-web-site.xml

Webサイトの設定(AJP)

default-web-site.xml

OC4J全体の設定

server.xml

RMIの設定 *

rmi.xml

jms.xml

OracleAS JMSの設定 *

(6)

パッケージ構造と

(7)

Copyright © Oracle Corporation, 2005. All rights reserved.

7

OC4J Standalone/J2EE & Web Cache

OC4JにデプロイするEARパッケージ構造

y

OC4JのEARファイル内のデプロイメントディスクリプタ(DD)とパッケージ構造

OC4J固有のDDを含まない場合、デプロイ時に雛形が生成される

EAR ファイル   META-INF MANIFEST.INF web.xml orion-web.xml WEB-INF classes lib MANIFEST.INF ejb.xml META-INF   MANIFEST.INF ra.xml META-INF JAR MENIFEST.INF application.xml META-INF   MANIFEST.INF application-client.xml META-INF JAR WAR ファイル EJB-JAR ファイル CLIENT-JAR ファイル RAR ファイル orion-application.xml data-sources.xml orion-ejb.xml orion-application-client.xml oc4j-ra.xml J2EE汎用 OC4J固有

(8)

OC4J Standalone/J2EE & Web Cache

デプロイメントディスクリプタ

の生成方法

y

OC4J固有のデプロイメントディスクリプタの生成方法は3種類

1.

OC4Jによる自動生成

OC4J固有のデプロイメントディスクリプタ(orion-web.xml、orion-ejb-jar.xml等)

を含まないEARファイルをそのままデプロイするとデプロイメントディスクリプ

タの雛形が生成

→雛形生成後編集 → EARファイルに格納

2.

手動による作成

テキストエディタ等、手動によりOC4J固有のデプロイメントディスクリプタを作

成しEARファイルに格納しデプロイ

3.

JDeveloperによる生成(個人的におすすめ)

JDeveloperを用いOC4J固有のデプロイメントディスクリプタを作成しEARファ

イルに格納。ウィザード形式で生成されるので一番容易に作成することが可

(9)

Copyright © Oracle Corporation, 2005. All rights reserved.

9

OC4J Standalone/J2EE & Web Cache

移行が必要な主なデプロイメントディスクリプタ

・設定ファイル(WebLogicの場合)

y

各APサーバ固有のデプロイメントディスクリプタの比較

WebLogicからOC4Jにアプリケーションを移行する際に変換(作成)・設定が必要な、

デプロイメントディスクリプタ・設定ファイル

weblogic-ra.xml

oc4j-ra.xml

RARファイル内(JCA)

weblogic-ejb-jar.xml

weblogic-cmp.xml(任意)

orion-ejb-jar.xml

JARファイル内(EJB)

config.xml

server.xml

data-sources.xml

rmi.xml

jms.xml

application.xml

全体

weblogic-applicatin.xml

orion-application.xml

EARファイル内

weblogic.xml

orion-web.xml

WARファイル内

(Webアプリケーション)

WebLogic

OC4J

(10)

OC4J Standalone/J2EE & Web Cache

設定ファイル・デプロイメントディスクリプタ

y

OC4Jの設定ファイルとデプロイメントディスクリプタの関係

J2EE_HOME/config配下とEARファイル内の設定ファイルの関連は以下の様に

なる

注意)同様の設定がされていた場合、EARファイル内の設定が優先される

application.xml

data-sources.xml

global-web-application.xml

J2EE_HOME/config配下

orion-application.xml

data-sources.xml

orion-web.xml

EARファイル内

(11)

Copyright © Oracle Corporation, 2005. All rights reserved.

クラスローディング

(12)

OC4J Standalone/J2EE & Web Cache

クラスローディング関連の例外

y

J2EEアプリケーションで、以下の様なクラスローディング関連の例外が発生した場合、ク

ラスの整理(重複・バージョン等)やOC4Jでのクラスローダの設定を見直す必要がある

見えない

y java.lang.ClassNotFoundException: クラスローダが動的にロードするときにクラスが見つか

らない

y java.lang.NoClassDefFoundException: コンパイル時点では、クラスがあったが実行時には

見つからない

見えすぎ

y java.lang.ClassCastException: 複数のクラスが見えていてキャストで異なるクラスにキャスト

しようとしている

管理

y java.lang.IncompatibleClassChangeError: サブクラスもしくはインタフェースが変更された

y java.lang.ClassCircularityError: クラスの初期化時にループしている

y java.lang.UnsupportedClassVersionError

y java.lang.VerifyError: JVMの制約(セキュリティ等)をベリファイヤが検出したとき

y java.lang.ClassFormatError: クラスフォーマットが正しくない、もしくは壊れている

(13)

Copyright © Oracle Corporation, 2005. All rights reserved.

13

OC4J Standalone/J2EE & Web Cache

典型的なOC4Jクラスローダの階層

y

OC4Jのクラスローダは以下の様な階層を持ち、考慮点は以下

CLASSPATHは上位のクラスローダから継承(正確には委譲関係)

重複したクラスがある場合、上位のクラスローダが優先

Global-Application

EJB/Librarys

Web-App

Web-App

Connectors

EJB/Librarys

Web-App1

Web-App2

J2SE

OC4J

EAR1

EAR2

EAR3

Global-Connectors

BootStrap

Extension

System

(14)

OC4J Standalone/J2EE & Web Cache

クラスローダと設定

y

OC4Jのクラスローディングに関係する設定

J2EE JRE RARファイル内の全てのJARファイル META-INF/manifest.inf (JARファイル内) Connector OC4J server.xmlの<parent>タグ “cross application” OC4J JRE application.xmlの<library>タグ META-INF/manifest.inf (JARファイル内) Global-Applications JRE JRE JRE JRE JRE コマンドライン: -classpath コマンドライン: -cp コマンドライン: -jar システムプロパティ: java.class.path META-INF/manifest.inf (JARファイル内) System JRE JRE システムプロパティ: java.ext.dir (デフォルト: JAVA_HOME/jre/lib/ext) META-INF/manifest.inf (JARファイル内) Extentions JVM JVM JRE コマンドライン: -bootclasspath (Sun JVMのみ) システムプロパティ: sun.boot.class.path (Sun JVMのみ) META-INF/manifest.inf (JARファイル内) BootStrap タイプ 設定 クラスローダ

(15)

Copyright © Oracle Corporation, 2005. All rights reserved.

15

OC4J Standalone/J2EE & Web Cache

クラスローダと設定(続き)

y

OC4Jのクラスローディングに関係する設定

J2EE J2EE J2EE OC4J OC4J JRE WARファイルのMETA-INF/manifest.mf WARファイルのMETA-INF/classes WARファイルのMETA-INF/lib orionweb-xmlの<classpath>タグ global-web-application.xmlの<library>タグ JARファイル内のMETA-INF/manifest.inf Web-Application J2EE OC4J JRE application.xmlの<ejb>タグ Orion-application.xmlの<library>タグ META-INF/manifest.inf (JARファイル内) EJB/Library タイプ 設定 クラスローダ

(16)

クラスローダに関わるコード

y

クラスローダに依存するコードを記述する場合、パッケージ構造によっては、カレント

スレッドが実行されているコンテキストから取得したClassLoaderを利用する必要があり

ます。

クラスローダに依存するメソッド例

1) java.lang.Class#forName()

2) java.lang.ClassLoader#getResourceAsStream()

カレントスレッドから取得したClassLoaderからクラスを初期化する例

Class.forName( "sample.SampleClass", true, Thread.currentThread().getContextClassLoader());

(17)

Copyright © Oracle Corporation, 2005. All rights reserved.

データソース

(18)

OC4J Standalone/J2EE & Web Cache

データソースの種類

y

OC4Jでは、トランザクションスコープの構成に応じ2種類のデータソースを用意

1.

エミュレートされたデータソース

y

XAをサポートしないJTAトランザクション

y

2フェースコミットサポートなし

y

内部的に1DB物理接続で処理されるため高速

y

com.evermind.sql.DriverMangerDataSourceクラス使用

y

Oracle Database 1インスタンスのシステムで利用

2.

エミュレートされていないデータソース

y

XAをサポートしたJTAトランザクション

y

Oracle Database間の2フェーズコミットサポート

y

com.evermind.sql.OrionCMTDataSourceクラス使用

y

Oracle Database 2インスタンス以上のシステム、1インスタンスでもデータソ

ースを分けたい場合に利用

(19)

Copyright © Oracle Corporation, 2005. All rights reserved.

19

OC4J Standalone/J2EE & Web Cache

データソースの設定

y

データソースの設定方法は3種類の方法があります

1.

AS Controlを利用する方法

y

J2EE_HOME/config/data-sources.xmlの間接的な編集やEARファイル内に

予め格納されたdata-sources.xmlをデプロイ後に間接的に編集可能

1)AS Controlによる編集

2)OC4Jインスタンスの再起動

2.

J2EE_HOME/conf/data-sources.xmlを直接編集

1)ファイル編集

2)dcmctl updataConfigを必ず実行

3)OC4Jインスタンスの再起動

3.

EARファイル内に予めdata-sources.xmlを格納

1)data-source.xml作成(手動もしくはJDeveloper)

2)EARファイル作成

3)デプロイ

(20)

OC4J Standalone/J2EE & Web Cache

データソースの設定(AS Contorl)

y

データソースの設定

J2EE_HOME/config/data-sources.xmlの間接的な編集やEARファイル内に予め

格納されたdata-sources.xmlをデプロイ後に間接的に編集可能

エミュレートされたデータソース、エミュレートとされていないデータソースの設定

が可能

[OracleASインスタンス]

> [OC4Jインスタンス]

> データ・ソース

(21)

Copyright © Oracle Corporation, 2005. All rights reserved.

21

OC4J Standalone/J2EE & Web Cache

エミュレートされたデータソース設定(Manual)

y

J2EE_HOME/config/data-sources.xml

DriverManagerDataSourceクラスを使用

ejb-location属性のJNDI名でルックアップ

<data-sources> … <data-source class="com.evermind.sql.DriverManagerDataSource" name="OracleDS" location="jdbc/OracleCoreDS" xa-location="jdbc/xa/OracleXADS" ejb-location="jdbc/OracleDS" connection-driver="oracle.jdbc.driver.OracleDriver" username=“dbuser" password=“dbuserpassword" url="jdbc:oracle:thin:@<hostname>:<port>:<sid> " inactivity-timeout="30" /> … </data-sources>

注意)location,xa-location,ejb-locationは、必ず異なる名前を指定しなければならない

(22)

OC4J Standalone/J2EE & Web Cache

データソースの属性

データソースオブジェクトのJNDI論理名。エミュレートされたデータソースのJNDIルックア ップでサポートされるのはejb-location属性のみです location 60秒 接続プールがmax-connectionsに達した時に開放するまでの待ち時間(秒) wait-timeout 3回 接続再試行回数 max-connect-attempts N/A 2フェーズコミット時のデータベースリンクの指定に利用 property N/A 接続プールの最大数 max-connections 1秒 失敗した接続を再試行するまでの待ち時間(秒) connection-retry-interval 0 接続プールの最小数。Datasource.getConnection()を呼び出すまで接続をオープンしない min-connections 60秒 未使用の接続をクローズする時間(秒) inactivity-timeout N/A DB接続するユーザのパスワード password N/A JDBC URL URL N/A DB接続するユーザ名 username N/A データソースのJDBCドライバ・クラス名 connection-driver N/A EJBデータソースの論理名。エミュレートされたデータソースの場合に利用。JNDIルックア ップでサポートされるのはejb-locationのみ ejb-location N/A XAデータソースの論理名(非推奨) xa-location デフォルト値 意味 属性名

(23)

Copyright © Oracle Corporation, 2005. All rights reserved.

23

OC4J Standalone/J2EE & Web Cache

データソースの設定(Manual:EARファイル内)

y

EARファイル内に予めdata-sources.xmlを格納

EARファイ内のみ有効なデータソースを定義

J2EE_HOME/config/data-sources.xmlとJNDIが重複していた場合EARファイル内

のdata-source.xmlが優先

EARファイル内のルート配下のMETA-INFにorion-application.xmlに以下の記述

<orion-application> … <data-sources path="./data-sources.xml"/> … </orion-application>

EARファイル内のルートは以下のMETA-INFdata-sources.xmlを配置

<data-sources> … <data-source class="com.evermind.sql.DriverManagerDataSource" … </data-sources>

(24)

OC4J Standalone/J2EE & Web Cache

データソースの取得(J2EE標準)

y

データソースの呼び出し(データソースのルックアップ)

データソースを取得するときJ2EE汎用的なネーミングコンテキストである論理的

なデータソース名java:comp/env/jdbc/…でルックアップ

データソースの呼び出し例

Context ic = new InitialContext();

DataSource ds = (DataSource) ic.lookup(

“java:comp/env/jdbc/OracleMappedDS”);

補足)data-sources.xml内で定義したJNDI名で呼び出すことも可能

-エミュレートされたデータソースの場合:data-sources.xmlのejb-location属性

-エミュレートされていないデータソースの場合:data-sources.xmlのlocaltion属性

(25)

Copyright © Oracle Corporation, 2005. All rights reserved.

25

OC4J Standalone/J2EE & Web Cache

データソースの取得(J2EE標準)

y

データソースの論理的なJNDI名定義

Webモジュール:web.xml

EJBモジュール:ejb-jar.xml

<web-app> … <resource-ref> <res-ref-name>jdbc/OracleMappedDS</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Application</res-auth> </resource-ref> </web-app>

web.xmlの例

<enterprise-beans> <entity> … <resource-ref> <res-ref-name>jdbc/OracleMappedDS</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Application</res-auth> </resource-ref> </entity> </enterprise-beans>

ejb-jar.xmlの例

(26)

<orion-web-app servlet-webdir="/servlet/"> <resource-ref-mapping name="jdbc/OracleMappedDS" location=“jdbc/OracleDS” /> </orion-web-app>

y

データソースの論理なJNDI名と実際のJNDI名*のマッピング

Webモジュール: orion-web.xml

EJBモジュール: orion-ejb-jar.xml

<orion-ejb-jar> <enterprise-beans> <entity-deployment name="EmployeeBean" location="bmpapp/EmployeeBean" table="EMP"> <resource-ref-mapping name="jdbc/OracleMappedDS" location=“jdbc/OracleDS” /> </entity-deployment> </enterprise-beans> </orion-ejb-jar>

orion-web.xml

の例

orion-ejb-jar.xml

の例

OC4J Standalone/J2EE & Web Cache

データソースの取得(OC4J固有)

(27)

Copyright © Oracle Corporation, 2005. All rights reserved.

EJB(Enterprise JavaBeans)

(28)

EJB Homeオブジェクト取得とDD

y

EJBの呼び出しとプロパティファイル/デプロイメントディスクリプタの設定に関する関連

は以下の様になります。

リモートEJBの呼び出し

ローカルEJBの呼び出し

①EJBクライアント

③web.xml/ejb-jar.xml

④orion-web.xml/orion-ejb-jar.xml

②jndi.properties(Option)

①EJBクライアント

②web.xml/ejb-jar.xml

③orion-web.xml/orion-ejb-jar.xml

EJB

クライアント側

⑤orion-ejb-jar.xml

⑥ejb-jar.xml

④orion-web.xml/orion-ejb-jar.xml

⑤ejb-jar.xml

EJB側

(29)

Copyright © Oracle Corporation, 2005. All rights reserved.

29

OC4J Standalone/J2EE & Web Cache

EJBクライアント側

リモートEJBの呼び出し(J2EE標準)

y

リモートEJB呼び出し

EJBのホームオブジェクトを取得するときJ2EE汎用的なネーミングコンテキストで

ある論理的なデータソースのJNDI名java:comp/env/ejb/…でルックアップ

EJB呼び出しの例

Context context = new InitialContext(); Object homeObject = context.lookup("java:comp/env/ejb/EmployeeMappedBean"); EmployeeHome home = (EmployeeHome) PortableRemoteObject.narrow( homeObject, EmployeeHome.class);

補足)orion-ejb-jar.xml内のlocation属性で定義した実際のJNDI名で直接呼び出すことも可能

(30)

java.naming.factory.initial= com.evermind.server.rmi.RMIInitialContextFactory java.naming.provider.url=ormi://<hostname>:<rmi_port>/stateless java.naming.security.principal=<user_name> java.naming.security.credentials=<password>

y

JNDI初期コンテキストの設定

InitialContext生成時のプロパティはjndi.propertiesで設定

WARとJARが同一のEARに含まれる場合特に必要なし

y InitialContext生成時、ローカルのJNDIツリーから取得するた

CLASSPATHに含まれる必要有り

y WARファイル内のMETA-INF/classes等

jndi.propertiesの例

初期コンテキストファクトリとして指定可能なクラス

 − com.evermind.server.rmi.RMIInitialContextFactory

 − com.evermind.server.ApplicationClientInitialContextFactory

OC4J Standalone/J2EE & Web Cache

EJBクライアント側

(31)

Copyright © Oracle Corporation, 2005. All rights reserved.

31

OC4J Standalone/J2EE & Web Cache

EJBクライアント側

リモートEJBの呼び出し(J2EE標準)

y

EJBの論理的なJNDI名定義

Webモジュール:web.xml

EJBモジュール:ejb-jar.xml

<web-app> <ejb-ref> <ejb-ref-name>ejb/EmployeeMappledBean</ejb-ref-name> <ejb-ref-type>Session</ejb-ref-type> <home>employee.EmployeeHome</home> <remote>employee.Employee</remote> <!-- <ejb-link>test.jar# EmployeeMappledBean</ejb-link> --> </ejb-ref> <web-app>

web.xml

の例

<enterprise-beans>   <session> <!-- or <entity> --> <ejb-ref> <ejb-ref-name>ejb/EmployeeMappledBean</ejb-ref-name> <ejb-ref-type>Session</ejb-ref-type> <home>employee.EmployeeHome</home> <remote>employee.Employee</remote> <!-- <ejb-link>test.jar# EmployeeMappledBean</ejb-link> --> </ejb-ref>   <session> <!-- or </entity> --> </enterprise-beans>

ejb-jar.xml

の例

(32)

OC4J Standalone/J2EE & Web Cache

EJB側

リモートEJBの呼び出し(OC4J固有)

y

EJBの論理なJNDI名と実際のJNDI名のマッピング

Webモジュール: orion-web.xml

EJBモジュール: orion-ejb-jar.xml

orion-web.xml

の例

<orion-web-app> ... <ejb-ref-mapping name="ejb/EmployeeMappledBean" location="employee/EmployeeBean" /> ... </orion-web-app>

orion-ejb-jar.xml

の例

<orion-ejb-jar>... <ejb-ref-mapping name="ejb/EmployeeMappledBean" location="employee/EmployeeBean" /> ... </orion-ejb-jar>

(33)

Copyright © Oracle Corporation, 2005. All rights reserved.

33

OC4J Standalone/J2EE & Web Cache

EJB側

リモートEJBの呼び出し(OC4J固有)

y

実際のJNDI名の定義

orion-ejb-jar.xml

ejb-jar.xmlのejb-name属性と実際のJNDI名のマッピング

orion-ejb-jar.xmlの例

<orion-ejb-jar> ... <enterprise-beans>

<session-deployment name=" EmployeeBean "

location="employee/EmployeeBean" /> </enterprise-beans>

...

(34)

OC4J Standalone/J2EE & Web Cache

EJB側

リモートEJBの呼び出し(J2EE標準)

y

Enterprise Beanの基本的な定義

ejb-jar.xml

ejb-name要素により、Enterprise Beanを一意に識別

ejb-jar.xmlの例

<enterprise-beans> <session> <description>Comment</description> <display-name>EmployeeBean</display-name> <ejb-name>EmployeeBean</ejb-name> <home>employee.EmployeeHome</home> <remote>employee.Employee</remote> <ejb-class>employee.EmployeeBean</ejb-class> <session-type>Stateless</session-type> <transaction-type>Container</transaction-type> </session> </enterprise-beans>

(35)

Copyright © Oracle Corporation, 2005. All rights reserved.

35

OC4J Standalone/J2EE & Web Cache

EJBクライアント側

ローカルEJBの呼び出し(J2EE標準)

y

ローカルEJB呼び出し

EJBのホームオブジェクトを取得するときJ2EE汎用的なネーミングコンテキストで

ある論理的なデータソースのJNDI名java:comp/env/ejb/…でルックアップ

EJB呼び出しの例

Context context = new InitialContext();

Object localHomeObject = context.lookup("java:comp/env/ejb/EmployeeLocalMappedBean"); EmployeeLocalHome home = (EmployeeLocalHome)localHomeObject;

(36)

OC4J Standalone/J2EE & Web Cache

EJBクライアント側

ローカルEJBの呼び出し(J2EE標準)

y

EJBの論理的なJNDI名定義

Webモジュール:web.xml

EJBモジュール:ejb-jar.xml

web.xml

の例

<web-app> <ejb-local-ref> <ejb-ref-name>ejb/EmployeeMappledBean</ejb-ref-name> <ejb-ref-type>Session</ejb-ref-type> <local-home>employee.EmployeeLocalHome</local-home > <local>employee.EmployeeLocal</local> <!-- <ejb-link>test.jar# EmployeeMappledBean</ejb-link> --> </ejb-local-ref> <web-app> <enterprise-beans>   <session> <!-- <entity> --> < ejb-local-ref > <ejb-ref-name>ejb/EmployeeMappledBean</ejb-ref-name> <ejb-ref-type>Session</ejb-ref-type> <local-home>employee.EmployeeLocalHome</local-home> <local> employee.EmployeeLocal</local> <!-- <ejb-link>test.jar# EmployeeMappledBean</ejb-link> --> </ejb-local-ref> </session> <!-- </entity> -->

ejb-jar.xml

の例

(37)

Copyright © Oracle Corporation, 2005. All rights reserved.

37

OC4J Standalone/J2EE & Web Cache

EJB側

ローカルEJBの呼び出し(OC4J固有)

y

EJBの論理なJNDI名と実際のJNDI名のマッピング

y

Webモジュール: orion-web.xml

EJBモジュール: orion-ejb-jar.xml

orion-web.xml

の例

<orion-web-app> ... <ejb-ref-mapping name="ejb/EmployeeMappledBean" location="employee/EmployeeBean" /> ... </orion-web-app>

orion-ejb-jar.xml

の例

<orion-ejb-jar> ... <ejb-ref-mapping name="ejb/EmployeeMappledBean" location="employee/EmployeeBean" /> ... </orion-ejb-jar>

(38)

OC4J Standalone/J2EE & Web Cache

EJB側

ローカルEJBの呼び出し(OC4J固有)

y

実際のJNDI名の定義

orion-ejb-jar.xml

ejb-jar.xmlのejb-name属性と実際のJNDI名のマッピング

orion-ejb-jar.xmlの例

<orion-ejb-jar> ... <enterprise-beans> <session-deployment name="EmployeeBean" location="employee/EmployeeBean" /> </enterprise-beans> ... </orion-ejb-jar>

(39)

Copyright © Oracle Corporation, 2005. All rights reserved.

39

OC4J Standalone/J2EE & Web Cache

EJB側

ローカルEJBの呼び出し(J2EE標準)

y

Enterprise Beanの基本的な定義

ejb-jar.xml

ejb-name要素により、Enterprise Beanを一意に識別

ejb-jar.xmlの例

<enterprise-beans> <session> <description>Comment</description> <display-name>EmployeeBean</display-name> <ejb-name>EmployeeBean</ejb-name> <local-home>employee.EmployeeLocalHome</local-home> <local>employee.EmployeeLocal</local> <ejb-class>employee.EmployeeBean</ejb-class> <session-type>Stateless</session-type> <transaction-type>Container</transaction-type> </session> </enterprise-beans>

(40)
(41)

Copyright © Oracle Corporation, 2005. All rights reserved.

41

OC4J Standalone/J2EE & Web Cache

他社APサーバ固有API

y

例えば:WebLogic固有のAPIを利用していた場合、移行時に

コードの修正が必要

起動・停止クラス

y weblogic.common.T3StartupDef

y weblogic.common.T3ShutdownDef

ログクラス

y weblogic.loggin.NonCatalogLogger

セキュリティクラス

y weblogic.sercurity

XML関連

y weblogic.apache.*

システム情報取得

y weblogic.management.configuration.*

HTML関連

y weblogic.html.*

DB関連

y weblogic.db.*

(42)

y

WebLogicでの起動・停止クラス

WebLogicでは以下のインタフェースを実装したクラスを作成し、起動・停止クラス

を開発

y weblogic.common.T3StartupDef

y weblogic.common.T3ShutdownDef

import weblogic.common.T3ServicesDef; import weblogic.common.T3StartupDef;

public class AppStartup

implements T3StartupDef, CommonDefineIf { // 起動時の処理を処理を記述

・・・ }

WebLogic固有APIでの起動クラスコード例

OC4J Standalone/J2EE & Web Cache

(43)

Copyright © Oracle Corporation, 2005. All rights reserved.

43

OC4J Standalone/J2EE & Web Cache

例1:OC4J固有APIへの移行

y

前述のOC4J(10.1.2)の起動・停止クラスを利用し移行可能

OC4Jでは以下のインタフェースを実装したクラスを作成し、起動・停止クラスを

開発

y weblogic.common.T3StartupDefインタフェースを実装したクラスを

→ com.evermind.server.OC4JStart

インタフェースを実装したクラスに移行

y weblogic.common.T3ShutdownDefインタフェースを実装したクラスを

→ com.evermind.server.OC4JShutdown

インタフェースを実装したクラスに移行

(44)

OC4J Standalone/J2EE & Web Cache

例2:J2EE汎用APIの移行

y

Oracle Application Server10g(10.1.2)で、J2EE汎用的なServletContextListenerを利用

を利用した場合

Oracle Application Server10gコード例

import javax.servlet.ServletContextListener; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContext;

public class SampleListner implements ServletContextListener { private ServletContext context = null;

public void contextInitialized(ServletContextEvent event) { context = event.getServletContext();

System.out.println("Webアプリケーション起動時に呼び出し"); }

public void contextDestroyed(ServletContextEvent event) { context = event.getServletContext();

System.out.println("Webアプリケーション停止時に呼び出し"); }

(45)

Copyright © Oracle Corporation, 2005. All rights reserved.

45

OC4J Standalone/J2EE & Web Cache

例2:J2EE汎用APIの移行

y

ServletContextListenerのweb.xmlへの登録

登録したWebアプリケーション起動・停止時にServletContextListenerが呼び出さ

れ、結果的に起動・停止クラスと同等の振る舞いになる

web.xmlの記述例

<web-app> ... <listener> <listener-class>sample.SampleListner</listener-class> </listener> ... </web-app>

(46)

OC4J Standalone/J2EE & Web Cache

例2:J2EE汎用APIの移行

y

OC4J起動時にWebアプリケーション起動

ORACLE_HOME/j2ee/home/config/http-web-site.xml

load-on-startup属性

http-web-site.xmlの記述例

<web-app application=“sampapp" name=“sampapp-war“

(47)

日本オラクル株式会社 無断転載を禁ず この文書はあくまでも参考資料であり、掲載されている情報は予告なしに変更されることが あります。日本オラクル社は本書の内容に関していかなる保証もいたしません。また、本書 の内容に関連したいかなる損害についても責任を負いかねます。 Oracleは米国Oracle Corporationの登録商標です。文中に参照されている各製品名及びサービス 名は米国Oracle Corporationの商標または登録商標です。その他の製品名及びサービス名はそれ ぞれの所有者の商標または登録商標の可能性があります。

参照

関連したドキュメント

ユーザ情報を 入力してくだ さい。必要に 応じて複数(2 つ目)のメー ルアドレスが 登録できます。.

※ログイン後最初に表示 される申込メニュー画面 の「ユーザ情報変更」ボタ ンより事前にメールアド レスをご登録いただきま

Webカメラ とスピーカー 、若しくはイヤホン

ユーザ情報を 入力してくだ さい。必要に 応じて複数(2 つ目)のメー ルアドレスが 登録できます。.

[r]

教職員用 平均点 保護者用 平均点 生徒用 平均点.

[r]

[r]