调用Enterprise bean方法

时间:2009-07-28 04:41:30

标签: ejb

这是我的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的客户端类(Stand Alone Client)

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:需要在环境或系统属性中指定类名,或者在applet参数中指定类名,或者在应用程序资源文件中指定:java.naming.factory.initial”< / p>

我已经尝试了几种方法来实现这一点,但它仍然提供了这个例外。

1 个答案:

答案 0 :(得分: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服务器的连接。