JBoss7 创建客户端通过JNDI调用EJB

2024-09-04 17:08

本文主要是介绍JBoss7 创建客户端通过JNDI调用EJB,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转:http://k1280000.iteye.com/blog/1654740

参考:http://wenku.baidu.com/link?url=phjFT-9Y03RtAFoqDMgKOvqdk3XdrGghYQBge4ZzC9W3t0fjkVkzJLQ0d92_KaJ5MS9mNa2yIDFNG65XmKfvoHgVAY-TyLrTLunGUIaZWve

JBOSS 6,7调用通过JNDI查找EJB的方法和JBOSS5不一样

 

JBOSS 5

 

Java代码  收藏代码
  1. Properties props = new Properties();  
  2. props.setProperty("java.naming.factory.initial""org.jnp.interfaces.NamingContextFactory");  //jndi factory   
  3. props.setProperty("java.naming.provider.url""localhost:1099"); //jndi server url  
  4. props.setProperty("java.naming.factory.url.pkgs""org.jboss.naming");  //jndi finding package  
  5.   
  6. InitialContext ctx = new InitialContext (props);  
  7. DBBeanRemote db = (DBBeanRemote) ctx.lookup("DBBean/remote");  

 

 

JBOSS 6,7

EJB invocations from a remote client using JNDI

官方文档https://docs.jboss.org/author/display/AS71/EJB+invocations+from+a+remote+client+using+JNDI

 

总结:

 

1. 查找JNDI

 

 

Java代码  收藏代码
  1. final Hashtable jndiProperties = new Hashtable();  
  2. jndiProperties.put(Context.URL_PKG_PREFIXES,  
  3.         "org.jboss.ejb.client.naming");//让JNDI API知道是由谁来管理我们用来查找JNDI 名字的命名空间的。  
  4. final Context context = new InitialContext(jndiProperties);  
  5. //appName 和 moduleName分别就打包的格式而定  
  6. //如果是.ear就是appName,其它的是moduleName(.jar,.war)  
  7. final String appName = "";  
  8. final String moduleName = "EJBDBTest";  
  9. final String distinctName = "";  
  10. //实现类名  
  11. final String beanName = DB.class.getSimpleName();  
  12. System.out.println(beanName);  
  13. //接口类名  
  14. final String viewClassName = DBRemote.class.getName();  
  15. System.out.println(viewClassName);  
  16. String jndi = "ejb:" + appName + "/" + moduleName + "/"  
  17.         + distinctName + "/" + beanName + "!" + viewClassName;  
  18. System.out.println(jndi);  
  19. DBRemote db = (DBRemote) context.lookup(jndi);  

 

 In AS7, for remote access to EJBs, you use the ejb: namespace with the following syntax:

Xml代码  收藏代码
  1. For stateless beans:  
  2. ejb:<app-name>/<module-name>/<distinct-name>/<bean-name>!<fully-qualified-classname-of-the-remote-interface>  
  3. For stateful beans:  
  4. ejb:<app-name>/<module-name>/<distinct-name>/<bean-name>!<fully-qualified-classname-of-the-remote-interface>?stateful  

 

2.加入JAR文件

 jboss-client jar加入到项目,在 JBOSS_HOME/bin/client/jboss-client-7.1.0.Final.jar 目录下.

 

 

3. 创建客户端调环境(告诉客户端应该去哪里,怎么调server的EJB)

在project path 下创建  jboss-ejb-client.properties 

 

 

Xml代码  收藏代码
  1. endpoint.name=client-endpoint  
  2. remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false  
  3.    
  4. remote.connections=default  //connection 的名字  
  5.    
  6. remote.connection.default.host=xx.xxx.xxx.xx <strong>//IP</strong>  
  7. remote.connection.default.port = xxxx <strong>//port</strong>  
  8. remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false  
  9.   
  10. //JBOSS 用户名密码  
  11. remote.connection.default.username=appuser     
  12. remote.connection.default.password=apppassword  

      或者你可以另外命名这个文件的名字,只要加入系统参数里就好,如下 

       -Djboss.ejb.client.properties.file.path=/home/me/my-client/custom-jboss-ejb-client.properties

 

   你还可以建立不同的连接

   remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false

Xml代码  收藏代码
  1.    
  2. remote.connections=one, two  
  3.    
  4. remote.connection.one.host=localhost  
  5. remote.connection.one.port=6999  
  6. remote.connection.one.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false  
  7.    
  8. remote.connection.two.host=localhost  
  9. remote.connection.two.port=7999  
  10. remote.connection.two.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false

这篇关于JBoss7 创建客户端通过JNDI调用EJB的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1136517

相关文章

idea中创建新类时自动添加注释的实现

《idea中创建新类时自动添加注释的实现》在每次使用idea创建一个新类时,过了一段时间发现看不懂这个类是用来干嘛的,为了解决这个问题,我们可以设置在创建一个新类时自动添加注释,帮助我们理解这个类的用... 目录前言:详细操作:步骤一:点击上方的 文件(File),点击&nbmyHIgsp;设置(Setti

在C#中调用Python代码的两种实现方式

《在C#中调用Python代码的两种实现方式》:本文主要介绍在C#中调用Python代码的两种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#调用python代码的方式1. 使用 Python.NET2. 使用外部进程调用 Python 脚本总结C#调

SpringCloud之LoadBalancer负载均衡服务调用过程

《SpringCloud之LoadBalancer负载均衡服务调用过程》:本文主要介绍SpringCloud之LoadBalancer负载均衡服务调用过程,具有很好的参考价值,希望对大家有所帮助,... 目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务

Spring 中使用反射创建 Bean 实例的几种方式

《Spring中使用反射创建Bean实例的几种方式》文章介绍了在Spring框架中如何使用反射来创建Bean实例,包括使用Class.newInstance()、Constructor.newI... 目录1. 使用 Class.newInstance() (仅限无参构造函数):2. 使用 Construc

Vue 调用摄像头扫描条码功能实现代码

《Vue调用摄像头扫描条码功能实现代码》本文介绍了如何使用Vue.js和jsQR库来实现调用摄像头并扫描条码的功能,通过安装依赖、获取摄像头视频流、解析条码等步骤,实现了从开始扫描到停止扫描的完整流... 目录实现步骤:代码实现1. 安装依赖2. vue 页面代码功能说明注意事项以下是一个基于 Vue.js

C#原型模式之如何通过克隆对象来优化创建过程

《C#原型模式之如何通过克隆对象来优化创建过程》原型模式是一种创建型设计模式,通过克隆现有对象来创建新对象,避免重复的创建成本和复杂的初始化过程,它适用于对象创建过程复杂、需要大量相似对象或避免重复初... 目录什么是原型模式?原型模式的工作原理C#中如何实现原型模式?1. 定义原型接口2. 实现原型接口3

讯飞webapi语音识别接口调用示例代码(python)

《讯飞webapi语音识别接口调用示例代码(python)》:本文主要介绍如何使用Python3调用讯飞WebAPI语音识别接口,重点解决了在处理语音识别结果时判断是否为最后一帧的问题,通过运行代... 目录前言一、环境二、引入库三、代码实例四、运行结果五、总结前言基于python3 讯飞webAPI语音

Redis客户端工具之RedisInsight的下载方式

《Redis客户端工具之RedisInsight的下载方式》RedisInsight是Redis官方提供的图形化客户端工具,下载步骤包括访问Redis官网、选择RedisInsight、下载链接、注册... 目录Redis客户端工具RedisInsight的下载一、点击进入Redis官网二、点击RedisI

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

Python中conda虚拟环境创建及使用小结

《Python中conda虚拟环境创建及使用小结》本文主要介绍了Python中conda虚拟环境创建及使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录0.前言1.Miniconda安装2.conda本地基本操作3.创建conda虚拟环境4.激活c