2010-11-29 8 views
1

私は、EJBテクノロジ、特にJBoss Application ServerとEclipseをIDEとして使用して、少し電卓を開発しています。EJBブロッキングルックアップ

Hashtable ht = new Hashtable(); 
ht.put(Context.PROVIDER_URL, "jnp://localhost:1090"); 
ht.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory"); 
Context jndiContext = new InitialContext(ht); 
calculator = (FacadeRemote) jndiContext.lookup("Facade"); 

これは、問題は、そのルックアップメソッド呼び出しブロックがプログラムの実行で、「外観」と呼ばれる豆を検索しようとするコードの抜粋です。

+0

はい、あなたは何を期待しましたか?あなたの問題はあなたのGUIを妨害していますか?例えば、Swingアプリですか? –

+0

問題は、検索後にBeanへの参照を取得する必要がありますが、アプリケーション(グラフィックアプリケーションではありません)がスタックしていて、IDEがまだ応答していると思います。 – pAkY88

答えて

0

Jbossネーミングサービスは、デフォルトでポート1099で動作しますが、特定の理由によりJbossネーミングサービスを1090に変更しましたか?

また、これをさらにデバッグするには、ルックアップが発生しているスレッドを一時停止してから、そのスレッドダンプを送信してください。

これらは、jbossが使用しているデフォルトのjndiプロパティです(クラスパスに必要なjbossクライアントライブラリがある場合は、アプリケーションに自動的に利用可能です)。

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory 
java.naming.provider.url=jnp://localhost:1099 
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces 
+0

私が間違っているポート(1090)を使用して、今、私が正しいポートを使用し、1099 しかし、今、私は別の問題を抱えている: javax.naming.NameNotFoundExceptionが:ファサードはorg.jnp.server.NamingServerで \tをバインドされていません。 getBinding(NamingServer.java:771)org.jnp.server.NamingServer.getBindingで \t(NamingServer.java:779)org.jnp.server.NamingServer.getObjectで \t(NamingServer.java:785) \tにおけるORG .jnp.server.NamingServer.lookup(NamingServer.java:443) Bean "Facade"を正しく検索するにはどうすればよいですか? – pAkY88

+0

ポート番号を変更することでブロッキングルックアップの問題を解決できますか? – ddewaele

+0

すみません、私は間違ってコメントを入力したので、私はそれを編集します。それを今見てください、ありがとう。 – pAkY88