2009-07-28 11 views
1

呼び出すここでは私のBeanクラスのソースはは、エンタープライズBeanメソッド

@Stateless(にmappedName = "StringVal")だ パブリッククラスNewSessionBeanはNewSessionRemote {

String val = null; 

public String stringChange(int parameter) { 
    while(parameter < 5){ 
     switch (parameter){ 
      case 1: System.out.println(val + "One" + ","); 
      case 2: System.out.println(val + "Two" + ","); 
      case 3: System.out.println(val + "Three" + ","); 
      case 4: System.out.println(val + "Four" + ","); 
     } 
    } 
    return val; 
}  

}

そして、ここに私のクライアントのクラスがありますを実装しますこのBean(スタンドアロンクライアント)の場合

import endpoint.NewSessionRemote; import javax.naming.InitialContext;

パブリッククラスTestLogicBean {

static String retVal = null; 

public static void main(String[] args) { 
    try { 
     InitialContext ctx = new InitialContext(); 
     NewSessionRemote br = (NewSessionRemote) ctx.lookup("StringVal"); 
     for (int i = 0; i < 5; i++) { 
      String retVal1 = br.stringChange(i); 
      System.out.println("EJB message is:" + retVal1); 
     } 


    } catch (Exception ex) { 
     ex.printStackTrace(); 
    } 

} 

}

しかし、私はこの例外「javax.naming.NoInitialContextException取得しています:環境やシステムのプロパティでクラス名を指定する必要があり、またはアプレットのパラメータとしての、またはアプリケーションリソースファイル内:java.naming.factory.initial "

これを行うにはいくつかの方法を試しましたが、それでもこの例外があります。

+0

は、BeanのstringChange()メソッドが無限ループになることを呼び出すのではありませんか? :) –

答えて

0

私が見つけたものを見て:あなたはjndi.propertiesにこれを持っていたために持っているよう

http://www.jboss.org/index.html?module=bb&op=viewtopic&t=38107

は思え:それはすべてのJNDIへの接続の設定についてですよう

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

私はサーバーアプリケーションとしてglassfishを使用しています。そこにはすべての設定がここに記載されているようにすべての設定が具体的に設定されています。https://glassfish.dev.java.net/javaee5/ejb/EJB_FAQ.html#StandaloneRemoteEJBまだ結果がありません – Switch

+0

あなたは5つのステップをすべて完了しましたか?それは錫の上に広告されるように動作するはずです。 –

関連する問題