- PR -

JBOSS EJB のリモート呼び出しについて

1
投稿者投稿内容
未記入
会議室デビュー日: 2005/10/28
投稿数: 7
投稿日時: 2005-10-28 11:46
セッションBeanの呼び出しで質問です。
EJBサーバーはRedHat7.2のJBOSSに配置されております。
仮にこのサーバーを192.168.0.10とします。

クライアントのJAVAプログラムからEJBサーバーに配置されているセッションBeanの呼び出しを以下のように行います。クライアントは、EJBサーバーと同一セグメント内の別パソコンにあるプログラムです。
JAVAは、1.4系。
クライントは、Windows2000です。

クライアントからセッションBeanのホームオブジェクトを取得するプログラムは以下のようになってます。
--------------------------------------------------------------------
Hashtable p = new Hashtable();
p.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY
,"org.jnp.interfaces.NamingContextFactory");
p.put(javax.naming.Context.PROVIDER_URL
,"jnp://192.168.0.10:1099");
javax.naming.InitialContext initialContext =
new javax.naming.InitialContext(p);
try {
Object objRef = initialContext.lookup(jndiName);//(1)ここ
// only narrow if necessary
if (narrowTo.isInstance(java.rmi.Remote.class))
return javax.rmi.PortableRemoteObject.narrow(objRef, narrowTo);
else
return objRef;
} finally {
initialContext.close();
}
--------------------------------------------------------------------
(1)を実行したとき、
java.lang.NullPointerExceptionが発生します。
NamingExceptionでキャッチしてエラー内容を見ると、
javax.naming.CommunicationException [Root exception is java.rmi.NoSuchObjectException: no such object in table]
というエラー内容です。

EJBサーバーをRedHatではなく、WindowsのJBOSSを用意してそこに配置して、
同じことを行った場合、問題ありません。
また、EJBサーバー内にクライアントプログラムを置いて同一サーバー内で呼び出しを行った場合も問題ありません。
正常に動作いたします。
ネットワーク環境の問題のような気もします。

RedHatでnmapをした内容を下記に記述いたします。
わたしには関係ありそうなポート(1098,1099)は開いているようにみえるので、問題ないようにみえます。
Port State Service
21/tcp open ftp
22/tcp open ssh
23/tcp open telnet
25/tcp open smtp
111/tcp open sunrpc
1098/tcp open unknown
1099/tcp open unknown
4444/tcp open krb524
4445/tcp open unknown
5001/tcp open commplex-link
5432/tcp open postgres
5680/tcp open canna
6000/tcp open X11
8009/tcp open ajp13
8080/tcp open http-proxy
8083/tcp open unknown
8093/tcp open unknown
22273/tcp open wnn6
32768/tcp open unknown
32769/tcp open unknown

原因わかるかたおりますでしょうか?
おたすけください。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2005-10-28 13:26
どうやらLinux側のhostsファイルを設定する必要があるようですよ。

http://www.jboss.com/?module=bb&op=viewtopic&t=69148
http://www.jbossgroup.com/index.html?module=bb&op=viewtopic&p=3873725
未記入
会議室デビュー日: 2005/10/28
投稿数: 7
投稿日時: 2005-10-31 12:52
UK様

回答ありがとうございます。

なるほど!!

http://www.jbossgroup.com/index.html?module=bb&op=viewtopic&p=3873725
をみて、試してみます。

結果は、また、追って、本掲示板に記載いたします。
未記入
会議室デビュー日: 2005/10/28
投稿数: 7
投稿日時: 2005-10-31 16:15
Linux側のhostsファイルを見てみたのですが、

127.0.0.1 localhost.localdomain localhost

という1行があります。

http://www.jbossgroup.com/index.html?module=bb&op=viewtopic&p=3873725
    ↑
すみません、恥かもしれませんが、
ここの値どうすればいいと書かれているのでしょうか?
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2005-10-31 16:22
たとえばそのLinuxマシンのIPアドレスが1.2.3.4、ホスト名がfoo.bar.comだとして、

1.2.3.4 localhost foo foo.bar.com

と書けばよいのではないですか?
未記入
会議室デビュー日: 2005/10/28
投稿数: 7
投稿日時: 2005-10-31 20:22
アドバイスどおりで解決いたしました。
hostsの問題でした。
ありがとうございます。

1

スキルアップ/キャリアアップ(JOB@IT)