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

相关文章

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

Python中Tensorflow无法调用GPU问题的解决方法

《Python中Tensorflow无法调用GPU问题的解决方法》文章详解如何解决TensorFlow在Windows无法识别GPU的问题,需降级至2.10版本,安装匹配CUDA11.2和cuDNN... 当用以下代码查看GPU数量时,gpuspython返回的是一个空列表,说明tensorflow没有找到

python如何创建等差数列

《python如何创建等差数列》:本文主要介绍python如何创建等差数列的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python创建等差数列例题运行代码回车输出结果总结python创建等差数列import numpy as np x=int(in

python如何调用java的jar包

《python如何调用java的jar包》这篇文章主要为大家详细介绍了python如何调用java的jar包,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录一、安装包二、使用步骤三、代码演示四、自己写一个jar包五、打包步骤六、方法补充一、安装包pip3 install

怎么用idea创建一个SpringBoot项目

《怎么用idea创建一个SpringBoot项目》本文介绍了在IDEA中创建SpringBoot项目的步骤,包括环境准备(JDK1.8+、Maven3.2.5+)、使用SpringInitializr... 目录如何在idea中创建一个SpringBoot项目环境准备1.1打开IDEA,点击New新建一个项

如何使用Maven创建web目录结构

《如何使用Maven创建web目录结构》:本文主要介绍如何使用Maven创建web目录结构的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录创建web工程第一步第二步第三步第四步第五步第六步第七步总结创建web工程第一步js通过Maven骨架创pytho

MySQL 用户创建与授权最佳实践

《MySQL用户创建与授权最佳实践》在MySQL中,用户管理和权限控制是数据库安全的重要组成部分,下面详细介绍如何在MySQL中创建用户并授予适当的权限,感兴趣的朋友跟随小编一起看看吧... 目录mysql 用户创建与授权详解一、MySQL用户管理基础1. 用户账户组成2. 查看现有用户二、创建用户1. 基

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

MYSQL查询结果实现发送给客户端

《MYSQL查询结果实现发送给客户端》:本文主要介绍MYSQL查询结果实现发送给客户端方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql取数据和发数据的流程(边读边发)Sending to clientSending DataLRU(Least Rec

Java中实现线程的创建和启动的方法

《Java中实现线程的创建和启动的方法》在Java中,实现线程的创建和启动是两个不同但紧密相关的概念,理解为什么要启动线程(调用start()方法)而非直接调用run()方法,是掌握多线程编程的关键,... 目录1. 线程的生命周期2. start() vs run() 的本质区别3. 为什么必须通过 st