【发布时间】:2016-06-10 13:50:25
【问题描述】:
我必须实现两个简单的 java 项目;第一个是一个 EJB 项目,它包含一个实现远程接口的简单服务,第二个项目是一个 java 客户端,它试图调用这个 ejb 项目, 所以这是我到目前为止所做的:
Context context = new InitialContext(jndiProperties);
TestServiceRemote proxy = (TestServiceRemote) context
.lookup("java:global/testEJB/TestService!services.TestServiceRemote");
System.out.println(proxy.showHello());
这是我的 ejb 服务:
@Stateless
public class TestService implements TestServiceRemote {
public TestService() {
}
@Override
public String showHello() {
return "Hello";
}
}
这终于是我的远程界面了:
@Remote
public interface TestServiceRemote {
public String showHello();
}
我已经在 WIldfly 9 中部署了 EJB,但是当我启动 java 客户端时,我在控制台中看到了这个错误:
Exception in thread "main" javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:313)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:350)
at javax.naming.InitialContext.lookup(InitialContext.java:417)
at swing.testClient.main(testClient.java:22)
谁能告诉我我的代码有什么问题?
【问题讨论】:
标签: ejb remote-access wildfly-9