呼び出すここでは私の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 "
これを行うにはいくつかの方法を試しましたが、それでもこの例外があります。
は、BeanのstringChange()メソッドが無限ループになることを呼び出すのではありませんか? :) –