フォーラムに質問して見た
いつも他の場所では回答者側の立場なのでたまには質問する側の立場もいいでしょう.
JavaアプリケーションからのJNDIルックアップ方法について
http://www.wsdeveloper.com/viewtopic.php?p=718#718
ハンドル名"TTR"で書き込み中.
追記
マルチポストはしない,改良により新たな展開になったら即座に報告する,のお作法に基づいて自己レスを2つほど追加した.
まだ誰からもレスがついていない.まあ日本はまだ深夜〜明け方だからなw
しかしどうやらWebSphereでは外部JavaアプリケーションからJNDIサービスへのアクセスができない気配が濃厚になってきた.
そもそもこんなにライブラリにクラスパスを通さないといけないのはおかしいし.
WebSphere/AppServer/lib/naming.jar WebSphere/AppServer/lib/ras.jar WebSphere/AppServer/lib/wsexception.jar WebSphere/AppServer/lib/bootstrap.jar WebSphere/AppServer/lib/emf.jar WebSphere/AppServer/lib/namingclient.jar WebSphere/AppServer/java/jre/lib/ibmorb.jar WebSphere/AppServer/lib/ecutils.jar
どのように書けばよいかのサンプルなり説明なりがWEB上にまったく出ていないのもおかしい.
JBossやWebLogicでは外部Javaアプリケーションをクライアントとして使った場合にJNDI,EJBに絡んで必要となるクラスは"jbossall-client.jar"とか"weblogic.jar"のようなJARファイルにひとまとめにしている.
ここらへんもWebSphereが見劣りするところだな.
JNDIルックアップできないとテストの実装上,すげー困るな….
というかEJBへの直接アクセスってJ2EE仕様書で定義されているパターンの1つだよ? なんでこんなこともできないのかねえ.
テスト用EJBを呼び出すためだけにServletも作って,それをHttpClient APIのGETメソッドで呼び出すとかになったら,もう目も当てられない.
追記
どうやら"アプリケーションクライアント"なるプロダクトがWebSphere Serverとは別にあり,これをインストールして使えということらしい.WebSphereサーバ評価版にはついてなかったな.これも評価版入手できるのかな?
やっぱりこの方法だとJUnitテストに組み込み切れない.駄目だ.Servletを置いてHttpClientで呼び出すしかないのか.
結論
Servletを使う方法で行くことにしました.某師匠曰く「HTTPUnitってのがあるよ」.そうだよw これ使えばApache Jakarta HttpClient APIを使う必要もないね.