いきなり EJB (Enterprise JavaBeans)
〜 WebLogic Server6.1Jによる試み 〜
更新日 2002/9/8
[HOME]
/ [Java]
/ [Perl5]
/ [Palm(GCC)]
/ [Palm(CodeWarrior)]
/ [本の紹介]
最近、Java関連の雑誌を見ていると、EJB (Enterprise
JavaBeans) という言葉をよく見かけるようになりました。このEJBについてアプリケーションサーバ
(以下 APサーバ)、トランザクション処理などをキーワードに、ミッションクリティカルなサーバ機能への適用を目標として、基礎の基礎と思われる部分を実践的に検証していきたいと思います。
APサーバとしては、BEA社のWebLogic Server
、IBM社のWebSphere
などを含め各社から提供されていますが、大きく分けて端末のブラウザに情報を提供することに重きをおいたものと、トランザクション処理などサーバ側の処理に重きをおいたものに分類されます。
JavaWorld
などの記事などから判断すると、Websphereは端末側に、WebLogicはサーバ側の処理に特長を持っているように思われます。(1999年10月にリリースされるWebLogic4.5ではJSP1.0も搭載され、端末側の機能も充実されています)
両方とも、評価用のソフトがダウンロード可能でパソコンで試すことができます。特にWebLogicは
ドキュメント
が充実しており、これを読んでいるだけである程度のノウハウが読み取れます。ここでは、このWebLogicを使ってEJBとは何なのか、システムへの適用について考えて行きたいと思います。
以前紹介していたWebLogic Server5.1は既にダウンロードできなくなってしまいましたので、徐々に6.1Jに合わせていく予定です。特にweblogic.propertiesあたりが大きく変わっているため、とっつきが悪そうですが、以前からの違いをつきとめつつ解説していきたいと思います。以前のHPは
こちら
においておきます。
2. 準備(インストール)
3. ちょっとだけ実験
4. EJBとは何か?
5. データベースとトランザクション処理
6. SSL(Secure Socket Layer)の設定
7. TUXEDOとの接続
8. VisualCafeでのデバッグ
9. JSP (Java Server Pages) をかじる
10. CORBA インタフェースを提供する
11. いまさらCGI
<NEW>
12. サーブレット再び
<NEW>
13. 参考文献
WebLogicは 100% PureJavaで JVM の環境さえあれば、どのマシンでも動くことになっています。ここでは、Windows2000で動作させてみます。メモリは最低128MB欲しいようなことが書かれていたと思います。このページを始めた頃は128MBで1万円ぐらいしましたが、今は雑誌1冊ぐらいの値段になってますね。
- まず、WebLogicの30日間有効評価版をダウンロードしてきましょう
BEA社ホームページ
にて「ダウンロード」を選択し、続けけて「WebLogic Server 6.1J & SP」をクリックします。それでもって、「
BEA WebLogic Server 6.1 and Service Pack 2 for Windows
」を選びます。75.1MBだそうです。私は果敢にも、ISDNで挑みました。皆さんはADSLですよね。うらやましー。
初めての方は、簡単なユーザ登録が必要です。ユーザIDはメールアドレスで、パスワードは任意に設定できたと思います。確認のメールもBEA社から届きます。ファイル名は
weblogic610sp2_win.exe ですが、これをダブルクリックしてインストールします。
- とにかく動かしてみましょう。Windowsのスタートメニュー -> プログラム -> BEA WebLogic
E-Bussiness Platform -> WebLogic Server6.1 -> WebLogic Tour -> Run
Pet Store を選択してください。コマンドプロンプトが開き、途中「WebLogic サーバを起動するためのパスワードを入力してください」と言われるので、インストール時に入力したパスワードを入力してください。ペットショップのデモですが、なかなか楽しめます。
以前バージョンでは、インストール後の設定を行ったような記憶がありますが、本バージョンでは一切不要のようです。そういえば以前はJDKも別にシンストールしてたような気がする。
サーブレットは、Webでのサーバサイドプログラミング技術
の1つで、CGI のJava版だと思っています。通常の
CGI がその度にプロセスが起動するのに対して、サーブレットはスレッドで動くためオーバヘッドが少なく処理性能がよいとされています。
ここでは、サーブレットの実験を通して WebLogjc Server の動作確認してみましょう。サンプルとして \weblogic\examples\servlets\HelloWorldServlet.java
を使います。
6.1Jでは、プロパティファイルが大幅に変わってますので、このままでは動きません。少々お待ちください。
- サンプルプログラムの HelloWorldServlet.java をコンパイルします
C:\>cd \weblogic\examples\servlets
C:\weblogic\examples\servlets>
javac -d \weblogic\classes HelloWorldServlet.java
これにより、\weblogic\classes\examples\servlets\HelloWorldServlet.class
として作成されます
ここでコンパイルエラーが出るのは前節のCLASSPATHの設定が行われていない可能性があります
- プロパティファイルにサーブレットを設定します
\weblogic\weblogic.properties に以下の設定を追加します。
HelloWorld は何でもかまいません。
weblogic.httpd.register.
HelloWorld=examples.servlets.HelloWorldServlet
- WebLogic Server を起動します
Windowsのスタート->プログラム->WebLogic 5.1 ->WebLogic Server で起動します
- ブラウザから、http://localhost:7001/HelloWorld
でサーブレットを呼び出します。
HelloWorld は上の設定に合わせています。
Hello World! と表示されれば、正常に動作していることになります
これらの作業は、コマンドプロンプト画面を使って行いますが、画面がスクロールできないため流れて行った情報が読み取れずに困ってしまいます。WindowsNTでは、以下の方法でスクロールできるようになります。
コマンドプロンプトの上方ラベルで右クリックして、「プロパティ」を選択し、「レイアウト」のタブを選んで「ウィンドウのサイズ」を 幅 120
高さ 40に、 「画面バッファのサイズ」を 幅 120 高さ 200 に設定する。いちいち設定するのは面倒なので 「このウィンドウを起動したショートカットを変更する」
で次回からスクロールが出来るように設定する。
4. EJB (Enterprise Java
Beans) とは何か? ↑top
|
先に紹介したBEA社のHPによれば、Enterprise JavaBeanの本質は、トランザクション的でセキュアなRMI(またはCORBA)のオブジェクトということです。EJBでは、セキュリティ、トランザクション、状態管理の詳細を処理するコンポーネント・フレームワークにビジネス・ロジックがカプセル化され、
マルチスレッド、リソース・プール、クラスタリング、分散ネーミング、自動持続性、リモート呼出し、トランザクション境界管理、分散トランザクション管理等のはん雑な処理は、EJBの「コンテナ」がおこなうので、EJB開発者はビジネスに関する問題解決に専念できます。これらの内容は、
BEA社のEJBに関する記述
を参考にされた方が分かりがいいと思います。また、EJBを作るにあたってのノウハウが
WebLogic Server EJBの設計と開発
として用意されているので、こちらも参考にしてください。
EJB は、大きく以下の4つに分類されます。それぞれについて例題を用いながら説明していきましょう。
- コンテナ管理 Entity Bean (サンプルプログラムを使った説明
)
コンテナ生成ツールが Entity Bean の永続化を維持するデータベースアクセスコードを自動的に生成してくれるものです。開発者は、このためのコーディングをする必要がなく、驚くほど簡単にEJBが書けてしまいます。実際に見たほうが理解しやすいので、
サンプルプログラムを使って説明
していきたいと思います。この例では、データベースと連携するのが面倒だったので、File による永続化を選択しています。
- Bean管理 Entity Bean
Entity Bean 自身のコードで自らの永続化を管理する方法で、きめ細かい管理が実現できます。実際には永続化時にコンテナから自動的に呼ばれるメソッドにJDBCでSQLを発行するようなコーディングを行うことになります。このとき、データベース依存部分ができるためEJBのポータビリティが損なわれる欠点があります。
- ステートフル Session Bean(サンプルプログラムを使った説明
)
クライアントとのセッション管理機能を持つ Bean で、クライアントは自分が生成した Bean をあたかもクライアントに存在するオブジェクトのようにアクセスすることが可能になります。
- ステートレス Session Bean
その名の通り、固有の情報や状態を保持しないため、リソースの消費が少なく、シンプルで軽量なサーバコンポーネントが実現できます。セッション管理はクライアントに任されます。
EJBの開発手順をJavaWorld1999年6月号を元にまとめています(作成中)
この他、Java World 1999年9月号の「実践 Enterprise Java Beans 〜第2回 Session Beanの開発(その1)〜」での例題を用いて、端末からサーブレットを通して
ステートフルな Session Bean を呼び出す方法を検証してみることにします。
5. データベースとトランザクション処理
↑top
|
準備中
Oracleとの接続
6. SSL(Secure Socket Layer)の設定
↑top
|
SSLは、安全な接続の交渉を行うためにNetscapeが提案したプロトコル標準で、エレクトリックコマース(電子商取引)などを行う際にクレジット番号などの情報がインターネット上で他人に読みとられることがないように、主にブラウザとサーバの間で情報の暗号化を行うためのしくみです。
正式なIDを取得する前に、ちょっとだけ動作確認をしておきましょう。とりあえずWebLgic Serverを起動してください。デモ用のSSLはデフォールトで設定されています。この状態で、ブラウザから
https://localhost:7002/ とすると、以下のような画面が表示されると思います。
新しいサイト証明書 ・・・ですが、Netscapeは証明書に署名した発行人を認識できません。
次の画面で、受け付けるかどうかを聞いてきますので、例えば、「このセッションに対して、証明書を受け付ける」を選択します。そうするとWebLogic
Serverの紹介画面が表示され、左下の鍵が掛かるはずです。これで確認は終わりです。
それでは、有名な認証局であるベリサイン社
からテスト用のディジタルIDを取得して実験してみましょう。
しくみの簡単な解説
もありますので、参考にしてください。
- WebLogic Serverを起動し、ブラウザで http://localhost:7001/Certificate
を指定します。このときアカウントとパスワードを求められますが、systemとインストール時に設定したパスワードを記入します。パスワードは、\weblogic\weblogic.propertiesファイルにも書かれていますので忘れちゃった場合は参照してください。
- Server Certificate Request Generatorなるものが表示されます。会社やサイトに関する情報を記入して
Generate Request をクリックします。以下はすべて半角英数字で記入します
Country code(国コード)・・・・・・・・・・・・・・・JP(日本)
Organizational unit name(部署名)・・・・・・・テスト用ID取得なので架空のものでいいのかも知れません
Organization name(会社名)・・・・・・・・・・・・同上
Email address・・・・・・・・・・・・・・・・・・・・・・・・テスト用IDが送られるメールアドレスを指定します
Full host name(ホスト名)・・・・・・・・・・・・・・これも架空のものでいいのかも知れません
Locality name(city)・・・・・・・・・・・・・・・・・・・市
State name・・・・・・・・・・・・・・・・・・・・・・・・・州名と言われてもねぇ。とりあえず県名を書いときました。
Random string・・・・・・・・・・・・・・・・・・・・・・・特に書かなくてもいいです。
このとき秘密鍵(プライベートキー)と公開鍵のペアーが作成されます。これらを以下に示します。
以下が秘密鍵
です。ファイル名は、例えば www.egami.co.jp であれば www_egami_co_jp-key.der になります
Key filename: C:\weblogic\<Full host name>-key.der
これは、公開鍵に上記情報を追加したものでベリサインなどに送られるものです
Request filename: C:\weblogic\<Full host name>-request.pem
この画面で、VeriSignの方の Submit をクリックして、テスト用IDの申請を行います。
- 次の画面で内容の確認および連絡先の記入を行って ACCEPT をクリックすると、Processing Requestという画面が表示され30分程度でメールが届きます。ちょっとコーヒーでも飲んで待ちましょう。
- さて、いよいよ WebLogic server へのインストールですが、まず上記の秘密鍵のファイルを \weblogic\myserver
配下に持っていきます。ファイル名はそのままでいいでしょう。
次にベリサインからのメールの最後にあるIDを取り出してテキストファイルとして作成します。ファイル名は、拡張子が
.pem であれば勝手に付けていいようです。取り出すIDについても以下の2行に挟まれた文字をこの2行も含めてカット、ペーストでテキストファイルに張り付ければいいでしょう。このファイルは、認証機関(ベリサインなど)から受けたサーバ証明書と呼ばれるものです。
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
最後に、\weblogic\weblogic.properties に以下の設定を行います。
weblogic.security.ssl.enable=true
このままでいいです
weblogic.system.SSLListenPort=7002 このままでいいです
#weblogic.security.certificate.server=democert.pem
デモ用の3行をコメントアウトして
#weblogic.security.key.server=demokey.pem
#weblogic.security.certificate.authority=ca.pem
weblogic.security.certificate.server=www_egami_co_jp.pem
ベリサインからのメールを切り出した証明書ファイルの設定と
weblogic.security.key.server=www_egami_co_jp-key.der
秘密鍵の設定を行います
- 最後に、WebLogic server を起動します
このとき、以下のメッセージが出ていればうまくいっていることになります
Sun Jan 02 20:32:32 JST 2000:<I> <SSLListenThread> Listening
on port: 7002
確認のために、ブラウザで https://www.egami.co.jp:
7002/ とすれば、WebLogicの紹介ページが表示され Netscape なら
左下の鍵が掛かっている はずです。www.egami.co.jp は、あなたのマシンのホスト名で置き換えてください。また、httpをhttpsにしていること、ポートを7001でなく7002にしていることに注意してください。
このとき、ベリサインに申請したときのホスト名が違っているとブラウザが注意を促します
。例えば、https://localhost:7002/ とやると以下のような画面が表示されます。
証明書名の確認 サイト'localhost'から提出された証明書には、正しいサイト名が含まれていません。・・・
ここで、続けるを選択すれば接続されますが、普通ならキャンセルを押されて接続を拒否されるでしょう。
今回紹介したベリサインの証明書ですが14日間の限定版です。この証明書は何回でも取得できるとベリサインのホームページにも書かれていますが、起動の際にコンピュータの時間を元に戻すことでも対応できます。実はこれも同ホームページに書かれていることなのです。
本格的にディジタルIDを使うことになれば、あなたのサーバマシンを正式に認証してもらうことになりますが、このために年間 \85,050
かかるようです。 128ビット対応のものもあってこちらは、年間\144,900 らしいですが、詳しくは
ベリサイン社のHP
を参照してください。ヘルプ
なども参考になります。
TUXEDOといってもあまりなじみがないと思いますが、これもAPサーバの一種です。BEA社によれば、WebLogicがオブジェクト指向言語(Java言語)用のAPサーバで、
TUXEDOは手続き型言語(C言語、COBOLなど)用のAPサーバという言い方をしていました。既存の基幹システムでは、このTUXEDOのトランザクション処理を使ったものがいくつかあります。WebLogicは、このような
既存システムの機能をWebから利用するような場合にも適用されます。
ここでは、
Jolt for WebLogic
という機能を使って、TUXEDOとの接続方法について考えてみます。
8. VisualCafe でのデバッグ
↑top
|
近年のJavaの発展は、言語自体のすばらしさもさることながら、各社から提供される統合的な開発環境が大きく貢献していると思われます。EJBやAPサーバについても開発環境、特にデバッグ環境は重要な鍵となるでしょう。今扱っている
WebLogicは開発環境として、Inprise社のJBuilder3や
SYMANTEC社のVisualCafe
などを推奨していますが、特に VisualCafe とは特別の結びつきがあるようです。VisualCafe
は現在 Version3.0ですが、1999年10月始めに提供される 3.0dでは WebLogic4.0.3と4.5に対応し、ウィザードによるEJBの枠組みの作成やデバッグ時のClientプログラムも同時に作成されます。その上、WebLogicサーバ機能をVisualCafe上で自動起動させることができ、開発したEJBの詳細なデバッグが実現可能です。
もし評価版を手に入れることができるのであれば、ここで紹介していきたいと思います。
9. JSP (Java Server Pages)
をかじる ↑top
|
サーブレットは、Webでのサーバサイドプログラミング技術
の1つですが、それまでのCGI+Perl言語に比べて、「マルチスレッドによる処理性能の向上」が大きな特長になっています。しかし、プログラミングの生産性の点でサーブレットがそれほど優れているとは思いません。Perlにしろ、サーブレットにしろコンテンツとコードが混在してしまうからです。コンパイルの必要なサーブレットの方がより面倒なぐらいです。
ここで紹介するJSP(Java Server Pages)は、コンテンツの静的な部分と動的な部分をページコンパイル技法により分離するテクノロジということです。
まずはサンプルプログラムで動作を確認してみます。
- weblogic.properties の編集
以下の行のコメントをはずしてください。この中で、pageCheckSeconds=60 と compileCommand=
c:/java/bin/javac.exe を変更します。
weblogic.httpd.register.*.jsp=\
weblogic.servlet.JSPServlet
weblogic.httpd.initArgs.*.jsp=\
pageCheckSeconds=0,\
packagePrefix=examples.jsp,\
compileCommand=C:/jdk1.1.7B/bin/javac.exe
,\ <- 各自の環境に合わせてください
workingDir=C:/weblogic/myserver/classfiles,\
<- JSPファイルをJavaファイルに変換しコンパイルされたClassファイルが入ります
verbose=true
- WebLogic Server を起動します
- サンプルのJSPファイルを所定にディレクトリにコピーします
C:\weblogic\myserver\public_html\jsp ディレクトリを作成し、
C:\weblogic\examples\jsp\ShowDate.jsp や
HelloWorld.jsp をコピーします。
- ブラウザで、http://localhost:7001/jsp/ShowDate.jsp
を入力すると、コンパイルのための時間を経過した後、時刻が表示されます。
WebLogic Serverを立ち上げている間は、Classファイルを参照するため処理は高速です。
今後、Java World 1999年5月号や 1999年12月号の記事について検証して行きたいと思います。
10. CORBA インタフェースを提供する
↑top
|
CORBA (Common Object Request
Broker Architecture) は、分散オブジェクトを実現するための仕様であり、
IIOP (Internet Inter-ORB Protocol) はその通信プロトコルの1つです。ここでは、既に実現しているRMIによる分散オブジェクトプログラムをRMI
over IIOP という新しい技術を用いることで、プログラムにほとんど手を加えることなく、CORBAと相互運用できることを実証してみます。内容は、Java
World 1999年10月号の記事を参考にしていくつもりなのでお急ぎの方は、そちらを参照下さい。
サーブレットの解説記事は、いつもCGIの欠点から始まるのが定石になっています。でも、いままでperlでCGIをいっぱい書いてきた人は、みんなサーブレットに書き換える必要があるのでしょうか。サーバの負荷のことを考えればそうなんでしょうが、資産の有効利用ができてもいいでしょう。WebLogicでは、新規プロジェクトにはサーブレットを推奨しながら、いままで作ってきたCGI利用の道も閉ざしてはいません。ここでは、その方法を簡単に説明します。
- まず、Webサーバにperlをインストールしましょう。
こちら
のWindows用のperlのところを参照して下さい。
- 次に weblogic.propertiesに以下の記述を加えて、WebLogic
Serverを起動してください。
weblogic.httpd.register.cgi-bin=weblogic.servlet.CGIServlet
weblogic.httpd.initArgs.cgi-bin=\
<- \ は2行にわたる場合の印です
cgiDir=/weblogic/myserver/cgi-bin,*.pl=
/bin/perl.exe,*.cgi=
/bin/perl.exe <- perl のインストール場所に合わせます
これだけです。propertiesの内容から類推すると、実は CGIservlet なるサーブレットを介して
perl で cgiファイルを実行しているようです。
最初てこづった点は、cgiファイルはすべてcgi-binの直下におく必要があることです。
WebLogic Serverの動作確認のために、実験的にHelloWorldと表示するだけのサーブレットを動かしていますが、ここでは再度サーブレットを取り上げてみます。実は、
ディレクトリサーバ
にLDAPでユーザ認証を実施するプログラムを書く必要があったため、サーブレットで作ってみたというわけです。
サーブレットの構成を示していきます。
- サーブレットに必要なクラスのimportを宣言します。
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
- サーブレットは、HttpServletクラスを継承する形で記述されます。ここでは、クラス名をLoginとしたときの例を示します。
public class Login extends HttpServlet {
- HTTPの要求はGETとPOSTがあり、これらに対応してdoGet(), doPost()というメソッドが用意されています。これをオーバライドして、自分なりの処理を組み込むことになります。いずれも、入力と出力が定義されていて、ここでは、request,
response としています。
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, java.io.IOException {
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, java.io.IOException {
- サーブレットでのデータ入力についてですが、GET要求では、http://hostname/servletName?uid=egami3
といった形で、? 以下に受け渡すデータが入力されます。一方、POST要求では、<FORM>タグの中で
<input type=text name=uid>といった形で、テキスト領域に書かれた内容がuidという名前で送られます。いずれの場合も、データの取り出しには、getParameter()
メソッドを用いて以下のように書きます。
String uid = request.getParameter("uid")
- 出力つまりHTML言語による画面への表示方法は以下のようになります。
response.setHeader("Exprires", "Tues, 01 Jan
1980 00:00:00 GMT"); // ブラウザのキャッシュを使わせないための記述です
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html><head>");
out.println("<title>ログイン</title>");
out.println("</head><body>");
out.println("<form method=POST action=\"Login\">");
// Loginはサーブレット名
out.println("<table><tr><td>ユーザID:</td>");
out.println("<td><input type=text name=userid></td></tr>");
out.println("<tr><td>パスワード:</td>");
out.println("<td><input type=password
name=password></td></tr>");
out.println("</table><br>");
out.println("<input type=submit value=\"ログイン\">");
// ログインはボタンの表示文字
out.println("</form></body></html>");
out.flush()
サーブレット開発では、バグ改修や仕様変更によりプログラム修正が発生しますが、これを配備するのにWebLogic
Serverを再立ち上げすれば、もちろん反映されますが、propertiesファイルの定義により、変更時点で反映されるしくみがあります。以下にその方法を示します。
weblogic.httpd.servlet.classpath=C:/weblogic/myserver/servletclasses
weblogic.httpd.servlet.reloadCheckSecs=1
この2行を設定するだけで、C:\weblogic\myserver\servletclasses配下のクラスは、上書きした後のアクセスでそれが反映されます。ここで、注意することは、webLogic
Server起動時に、このフォルダを重複してクラスパス指定してはいけないということです。私の場合、startWeblogic.cmd
の中で、C:\weblogic\myserver\servletclassesをクラスパスに追加していたため、この機能が有効に働きませんでした。
WebLogicServer5.1におけるプロキシの設定を以下に示します。
以下の内容を、weblogic.properties に設定します。 http://10.144.49.171:7001
の部分を、プロキシ先のWebサーバに合せる必要があります。
# HttpProxyServlet takes
an HTTP request, redirects it to another HTTP
# server, and sends the response to the requesting browser
weblogic.httpd.register.proxy=weblogic.t3.srvr.HttpProxyServlet
# RedirectURL initArg specifies the prefix
to be applied to the proxied HTTP request
weblogic.httpd.initArgs.proxy=redirectURL=http://192.168.0.2:7001
weblogic.httpd.defaultServlet=proxy
ここでは、デフォールトサーブレットを file から proxyに変更することになるのですが、これだけを実施すると *.html *.jpg
*.gif といった通常のWebサーバではあたりまえに表示されるファイルが見つけられなくなってしまいます。実は、デフォールトサーブレットというのは、properteisファイルに定義されていない名前が出てきたときに一律呼ばれるサーブレットで、もともとは
file (ファイルサーブレット)が呼ばれることになっています。このファイルサーブレットは、一般のWebサーバが扱うファイル( *.html *.jpg
*.gif などを含む)を表示する機能を持っていますので、結果として定義なしにこれらのファイルを表示することになるのです。
今回は、これをproxyサーブレットに変更したのですから、これらのファイルを明示的にproperteisファイルに定義する必要がでてくるのです。ここでは、*.html
*.jpg *.gifを表示するための定義を示しておきます。
weblogic.httpd.register.*.html=weblogic.servlet.FileServlet
weblogic.httpd.register.*.jpg=weblogic.servlet.FileServlet
weblogic.httpd.register.*.gif=weblogic.servlet.FileServlet
サーブレットで次の機能に連携する場合、以下のようにGETまたはPOST要求をHTTPとして埋め込むようプログラミングしますが、i-modeのようにcookieによるセッショントラッキングが実現できない場合は、URL書き換えという手段を用います。
これには encodeURL()というメソッドを使います。
【元のプログラム】 out.println("<form method=POST
action=\"Login\">");
【変更後のプログラム】 out.println("<form method=POST
action=\"" + response.encodeURL("Login") + "\">");
( response
は、HttpServletResponse型のオブジェクト)
この処理を有効にするために、以下の内容を weblogic.properties に設定します
weblogic.httpd.session.URLRewriting.enable=true
EJBに限らず役に立つと思われる書籍を紹介しています。本文からも参照できるようにしていきますが、一覧は
こちら
でまとめています。
[HOME]
/ [Java]
/ [Perl5]
/ [Palm(GCC)]
/ [Palm(CodeWarrior)]
/ [本の紹介]
このページにご意見のある方は、egami@ee.e-mansion.com
までお願い致します。