这是我的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>
我已经尝试了几种方法来实现这一点,但它仍然提供了这个例外。
答案 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服务器的连接。