ORACLE JAPAN Server Release 6.1

 

  |  

  WebLogic Server ホーム   |     FAQ   |   前へ   |   次へ   |   目次   |   PDF 版

FAQ: アプレット

 


アプレットの代わりに使用できるものは何ですか。

BEA では、J2EE プラットフォームの一部である HTTP サーブレットおよび JavaServer Pages(JSP)を利用したサーバサイド アプリケーションの使用をサポートしています。新しいアプリケーションを開発する前に、サーブレットまたは JSP の使用を検討することをお勧めします。サーブレットおよび JavaServer Pages(JSP)を利用している、設計の優れた対話型の Web ページは、より高速でより信頼性の高い Web サイトを実現します。現在アプレットを使用している場合は、Java Web Start を使用してほとんどを Java アプリケーションに変換でき、WebLogic Server の使用を継続することができます。詳細については、Sun の Java Web Start サイトを参照してください。

詳細については、『WebLogic Server アプレット ユーザーズ ガイド』を参照してください。


ブラウザ アプレットに「ネイティブ」の 2 層ドライバを使用できますか。

できません。署名なしのアプレット内では、ネットワーク経由でネイティブ ライブラリをロードすることも、ローカルのファイル システムにアクセスすることも、アプレットのロード元ホスト以外のホストに接続することもできません。これらの制限は、無防備なユーザに対するアプレットの望ましくない動作を避けるため、アプレット セキュリティ マネージャにより強制されます。

アプレットから jDriver for Oracle を使用しようとすると、最初の制限の違反になります。非 Java の Oracle クライアント ライブラリに対して jDriver for Oracle から呼び出しを行うことができるようにするネイティブ(非 Java レイヤ)ライブラリをロードしようとすると、アプレットは失敗します。生成された例外を見ると、アプレットの失敗は java.lang.System.loadLibrary で発生していることがわかります。これは、セキュリティ マネージャが、ローカル ライブラリのロードが試行されていると判断し、アプレットを停止させたためです。

ただし、アプレットでの JDBC 接続のために、WebLogic JTS または Pool ドライバを使用することはできます。これらの WebLogic 多層 JDBC ドライバのいずれかを使用するときは、WebLogic Server と DBMS 間の接続のために WebLogic jDriver for Oracle(または他の任意の 2 層 JDBC ドライバ)のコピーが必要です。


ブラウザ アプレットがデータベースに接続できないのはなぜですか。

問題 : DBMS とのインタフェースとしてアプレットで WebLogic 多層ドライバを使用しています。ローカル マシンで Sun Appletviewer を使用してクラスを実行する場合は、何の問題もありません。しかし、Netscape ブラウザでアプレットを実行しようとすると、アプレットに接続できません。

Appletviewer では動作して Netscape で動作しない場合は、Netscape のセキュリティ制限に違反している可能性があります。この場合のセキュリティ制限は、アプレットはアプレットのダウンロード元サーバ以外のマシンに対してソケットを開くことができないというものです。この問題を解決するには、DBMS と同一ホストのアプレット コードを使用する必要があります。

また、アプレット CODEBASE と T3Client のコンストラクタで使用する IP ネーミング フォーマットは一致していなければなりません。つまり、一方でドット(.)表記を使用し、他方でドメイン名を使用することはできません。


アプレットが Appletviewer では動作するのにブラウザで動作しないのはなぜですか。

問題 : 配布キットの examples ディレクトリにある 2 つのアプレットを試してみました。WebLogic クラスは、ローカル マシン(NT サーバ)と別のマシン(Windows 95 クライアント)にインストールしました。ブラウザは使用しておらず、単に Appletviewer でアプレットを実行しようとしているだけです。NT サーバから Appletviewer を起動したときはアプレットは正常に動作しましたが、Windows 95 クライアントからはまったく動作しません。

考えられる原因は 2 つあります。CODEBASE タグがアプレットの HTML ファイルで正しく設定されていないか、クラス ファイルが HTTP サーバで正しくロードされていません。

アプレットが NT サーバで動作するのは、NT サーバに WebLogic 配布キットがインストールされているためです。アプレットは HTTP サーバから必要なクラスをロードするのに失敗しても、ローカルの CLASSPATH でクラスを探します。しかし、Windows 95 クライアントからアプレットを実行しようとすると、アプレットは HTTP サーバからネットワーク経由でクラスをロードする必要があり、クラスが正しくインストールされていなければアプレットの実行は失敗します。


アプレットで ClassFormatErrors が発生するのはなぜですか。

問題 : 配布キットをダウンロードし、HTTP サーバの DocumentRoot にクラスをコピーしました。そしてアプレットを作成し、Netscape サーバからの実行に成功しました。アプレットはサーバ ディレクトリの \webz\ns-home\classes\applets\myapp.class に配置し、次のように呼び出しました。

<APPLET
CODEBASE=http://myserver.com/webz/ns-home/classes
CODE=applets.myapp.class>

次に、ポート 7001 でリスンするように Administration Console で属性を設定し、そして WebLogic JDBC でアプレットを使用できるように WebLogic Server を HTTP マシンで起動しました。この場合は、次のように記述しました。

<APPLET
CODEBASE=t3://myserver.com:7001/webz/ns-home/classes
CODE=applets.myapp.class>

CODEBASE タグを WebLogic Server を指すように変更すると、ClassFormatErrors が表示されるようになりました。

この設定にはいくつかの問題があります。最も明らかな問題は、CODEBASE と関係があります。

  1. アプレットの CODEBASE タグは、WebLogic Server ではなく HTTP サーバを指すように設定する必要があります。

  2. CODEBASE タグで参照するディレクトリ パスは、HTTP サーバ上の絶対パスではなく、HTTP Document Root を基点とするパスです。この場合、CODEBASE タグには絶対パスが設定されています。「myapp」クラスが「applets」パッケージに含まれている場合、CODEBASE の正しい設定は次のようになります。

    <APPLET
    CODEBASE=http://myserver.com/classes
    CODE=applets.myapp.class>

また、ClassFormatError は、HTTP サーバのコンフィグレーションに問題があることを示します。WebLogic またはアプレット クラスを HTTP サーバの適切なディレクトリにロードしていないか、またはAPPLET タグ内の CODEBASE または CODE を間違って指定している可能性があります。

また、アプレットを実行するマシンに WebLogic 配布キットをインストールした場合、アプレットはまずローカル CLASSPATH で WebLogic クラスを探すということも覚えておいてください。この場合、HTTP サーバから使用するようには、クラスはインストールされていません。HTTP コンフィグレーションを正確にテストするには、ローカル CLASSPATH で一時的に WebLogic クラスの名前を変更するか、別のマシンからアプレットを試す必要があります。

 

back to top previous page next page