如何使用命令行部署EJB 3.0?

时间:2019-07-16 16:10:17

标签: java command-line jboss ejb wildfly

我正在遵循JEE教程的this基础知识,该教程提供了有关创建最小EJB部署的说明。

我已经完成了教程中的步骤,但是对以下命令行调用进行了更改

  • > set CLASSPATH = .; E:\ wildfly-10.1.0 \ wildfly-10.1.0.Final \ bin \ client \ jboss-client.jar; (已从教程中的长列表更改)
  • > jar -cvf SimpleSessionApp.ear beans * .java (将文件扩展名从.ejb3更改为.ear)
  • 复制SimpleSessionApp.ear E:\ wildfly-10.1.0 \ wildfly-10.1.0.Final \ standalone \ deployments (复制到wildfly部署目录)

我启动了服务器,但没有收到任何错误。但是,部署bean时,我没有得到服务器日志输出的一组标准名称。

我按照教程中的以下命令运行了客户端应用程序

  • > java -D java.naming.factory.initial = org.jnp.interfaces.NamingContextFactory -D java.naming.factory.url.pkgs = org.jboss.naming:org.jnp.interfaces -D java.naming .provider.url = localhost client.SimpleSessionClient现在是所有好男人的时候了

我得到以下错误作为输出

  

错误:找不到或加载主类java.naming.factory.initial = org.jnp.interfaces.NamingContextFactory

我知道该教程适合Java和JBoss的旧版本。但是,如上所述,我修改了旧的参考文献以指向较新的环境。因此,我认为这里的版本控制不是问题吗?顺便说一句,我才刚刚开始学习EJB。任何见解都会很棒。

我的环境

  • Java 1.8.0.212
  • Wildfly 10.1.0.Final
  • 记事本

1 个答案:

答案 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());