- - PR -
AXISのサービスメソッド内ではRMIは使えない?
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-01-25 19:37
これはgetCustomerのメソッド内に、各処理ごとにログを書き出すようにして、確認いたしました。 obj = (RemoteInterface)java.rmi.Naming.lookup(name); の直前までログが吐かれていたのですが、このメソッド以降は何も吐かれていません。 Exceptionも吐かれていません。 参照したログはWebサービス実装クラスのメソッドの置いてあるTomcatのcatalina.outです。 | ||||
|
投稿日時: 2005-01-25 20:10
logsディレクトリに他にログファイルはありませんか?
| ||||
|
投稿日時: 2005-01-25 20:32
DataService#getCustomerが呼ばれているとのことですので、とりあえずネットワークとか設定の問題ではない感じですね。もうちょっと詳しい内容がわからないとなんともいえませんけどね。
私ならこうします。 1.AXISを使わずにDataService#getCustomerメソッドを呼び出してみる。 2.DataService#getCustomerのRMIの部分をコメントアウトして何かダミーの返答をするようにしてAXISでメソッドを呼び出してみる。 3.tcpmonを使って実際に何がAXIS上でやり取りされてるかを見てみる。 http://ws.apache.org/axis/java/user-guide.html#tcpmon みたいな感じで、どの箇所で、どうして起きてるのかを先に見極めてみてください。(当たり前すぎてあんまし役に立ってない気もしますが・・・)AXISを使うとDebugが大変ですよね。私も何度か困った記憶があります。 なお、 http://ws.apache.org/axis/java/install.html のことですが、そこの説明の趣旨は「AXISはバイトストリームでデータを送らないからRMIやCORBAよりも遅いよ。Java同士で交信するのならRMIかCORBAを考えたほうがいいよ」って感じです。 [ メッセージ編集済み 編集者: H2 編集日時 2005-01-25 20:33 ] | ||||
|
投稿日時: 2005-01-26 15:53
H2さん、ありがとうございます。
いろいろ試してみたのですが、偶然動いてしまいました。 RMIの実装方法なのですが、クライアント側には、スタブ以外にも サーバ側と同じクラスファイルをすべて入れると動くようでした。 クライアント側に必須なクラスファイルはスタブだけではないのですね? | ||||
|
投稿日時: 2005-01-26 16:48
結局RMIの問題だったんですね。AXISとRMIを重ねて使うとどっちが問題なのかわからなくなるんですよね (私も経験者ですから 苦笑)
ちなみにこういう所に目を通しておくといいと思います。 http://java-house.jp/ml/topics/topics.html#core-rmi | ||||
|
投稿日時: 2005-01-27 11:00
みなさま、ありがとうございました。
結局はAXISは関係なくRMIの実装に問題がありました。 ご教示ありがとうございました。心からお礼申し上げます。 |