1

这是我的 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的客户端类(独立客户端)

导入端点.NewSessionRemote;导入 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”

我已经尝试了几种方法来做到这一点,但它仍然给出了这个例外。

4

1 回答 1

0

看我找到了什么:

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

好像你必须在你的 jndi.properties 中有这个:

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 

看起来这一切都是为了建立与 JNDI 服务器的连接。

于 2009-07-28T09:01:21.833 回答