EJB调用.html
EJB的调用
调用 EJB
- 配置客户端上下文属性
在应用程序的 classpath 中创建一个“jboss-ejb-client.properties” 文件,我们可以把它放在应用程序的 ejbModule 文件夹下,该文件中包含以下属性:remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false remote.connections=default remote.connection.default.host=localhost remote.connection.default.port = 4447 remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false remote.connection.default.username =YOUR_JBOSS_COSOLE_USERNAME remote.connection.default.password =YOUR_JBOSS_COSOLE_PASSWORD
- 给 client 添加所需的 JAR 文件来运行客户端程序
- 通过 InitialContext 获得 Context
private static Context initialContext; private static final String PKG_INTERFACES = "org.jboss.ejb.client.naming"; Properties properties = new Properties(); properties.put(Context.URL_PKG_PREFIXES, PKG_INTERFACES); initialContext = new InitialContext(properties);
-
得到 EJB 的jndiName
//appName 表示部署的 ear 文件的名称部分(不包括 '.ear') String appName = ""; //moduleName 表示该EJB jar 文件的名称部分 String moduleName = "JPAProject"; /* Jboss 7 允许每个部署有一个(可选)唯一的名字,如果我们没有明确该名字distinctName 为 "" */ String distinctName = ""; //要调用的 EJB 的类名 String beanName = "ProjectBean"; //将 ProjectBean 的 remote 接口放在和 Client 中(包名和 EJB 端相同) String interfaceName = ProjectBeanRemote.class.getName(); String jndiName = "ejb:" + appName + "/" + moduleName + "/" + distinctName + "/" + beanName + "!" + interfaceName;
- 获得 EJB 远程接口
ProjectBeanRemote PB = (ProjectBeanRemote) context.lookup(jndiName);
- 通过接口 PB 调用方法
generated by haroopad