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调用DeepSeek API的8个高频坑与解决方法

《Java调用DeepSeekAPI的8个高频坑与解决方法》现在大模型开发特别火,DeepSeek因为中文理解好、反应快、还便宜,不少Java开发者都用它,本文整理了最常踩的8个坑,希望对... 目录引言一、坑 1:Token 过期未处理,鉴权异常引发服务中断问题本质典型错误代码解决方案:实现 Token

C#高效实现在Word文档中自动化创建图表的可视化方案

《C#高效实现在Word文档中自动化创建图表的可视化方案》本文将深入探讨如何利用C#,结合一款功能强大的第三方库,实现在Word文档中自动化创建图表,为你的数据呈现和报告生成提供一套实用且高效的解决方... 目录Word文档图表自动化:为什么选择C#?从零开始:C#实现Word文档图表的基本步骤深度优化:C

Python列表的创建与删除的操作指南

《Python列表的创建与删除的操作指南》列表(list)是Python中最常用、最灵活的内置数据结构之一,它支持动态扩容、混合类型、嵌套结构,几乎无处不在,但你真的会创建和删除列表吗,本文给大家介绍... 目录一、前言二、列表的创建方式1. 字面量语法(最常用)2. 使用list()构造器3. 列表推导式

JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)

《JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)》:本文主要介绍如何在IntelliJIDEA2020.1中创建和部署一个JavaWeb项目,包括创建项目、配置Tomcat服务... 目录简介:一、创建项目二、tomcat部署1、将tomcat解压在一个自己找得到路径2、在idea中添加

Java利用Spire.Doc for Java实现在模板的基础上创建Word文档

《Java利用Spire.DocforJava实现在模板的基础上创建Word文档》在日常开发中,我们经常需要根据特定数据动态生成Word文档,本文将深入探讨如何利用强大的Java库Spire.Do... 目录1. Spire.Doc for Java 库介绍与安装特点与优势Maven 依赖配置2. 通过替换

在C#中调用Windows防火墙界面的常见方式

《在C#中调用Windows防火墙界面的常见方式》在C#中调用Windows防火墙界面(基础设置或高级安全设置),可以使用进程启动(Process.Start)或Win32API来实现,所以本文给大家... 目录引言1. 直接启动防火墙界面(1) 打开基本防火墙设置(firewall.cpl)(2) 打开高

java创建xls文件放到指定文件夹中实现方式

《java创建xls文件放到指定文件夹中实现方式》本文介绍了如何在Java中使用ApachePOI库创建和操作Excel文件,重点是如何创建一个XLS文件并将其放置到指定文件夹中... 目录Java创建XLS文件并放到指定文件夹中步骤一:引入依赖步骤二:创建XLS文件总结Java创建XLS文件并放到指定文件

python调用dubbo接口的实现步骤

《python调用dubbo接口的实现步骤》本文主要介绍了python调用dubbo接口的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编... 目录 ​​其他实现方式与注意事项​​ ​​高级技巧与集成​​用 python 提供 Dubbo 接口

C# FTP调用的实现示例

《C#FTP调用的实现示例》本文介绍了.NET平台实现FTP/SFTP操作的多种方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1. 使用 .NET 自带 FtpWebRequest 实现 FTP 操作1.1 文件上传1.2

Java Lettuce 客户端入门到生产的实现步骤

《JavaLettuce客户端入门到生产的实现步骤》本文主要介绍了JavaLettuce客户端入门到生产的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目录1 安装依赖MavenGradle2 最小化连接示例3 核心特性速览4 生产环境配置建议5 常见问题