我正在遵循JEE教程的this基础知识,该教程提供了有关创建最小EJB部署的说明。
我已经完成了教程中的步骤,但是对以下命令行调用进行了更改
我启动了服务器,但没有收到任何错误。但是,部署bean时,我没有得到服务器日志输出的一组标准名称。
我按照教程中的以下命令运行了客户端应用程序
我得到以下错误作为输出
错误:找不到或加载主类java.naming.factory.initial = org.jnp.interfaces.NamingContextFactory
我知道该教程适合Java和JBoss的旧版本。但是,如上所述,我修改了旧的参考文献以指向较新的环境。因此,我认为这里的版本控制不是问题吗?顺便说一句,我才刚刚开始学习EJB。任何见解都会很棒。
我的环境
答案 0 :(得分:0)
您应该查看参考文档https://docs.wildfly.org/17/Developer_Guide.html#JNDI_Remote_Reference,因为您似乎传递了错误的配置参数。
final Properties env = new Properties();
env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
env.put(Context.PROVIDER_URL, "http-remoting://localhost:8080");
// the property below is required ONLY if there is no ejb client configuration loaded (such as a
// jboss-ejb-client.properties in the class path) and the context will be used to lookup EJBs
env.put("jboss.naming.client.ejb.context", true);
InitialContext remoteContext = new InitialContext(env);
RemoteCalculator ejb = (RemoteCalculator) remoteContext.lookup("wildfly-http-remoting-ejb/CalculatorBean!"
+ RemoteCalculator.class.getName());