`
k1280000
  • 浏览: 202732 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JBOSS 7创建客户端通过JNDI调用 EJB

 
阅读更多

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

 

JBOSS 5

 

		Properties props = new Properties();
		props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");  //jndi factory 
		props.setProperty("java.naming.provider.url", "localhost:1099"); //jndi server url
		props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");	//jndi finding package

		InitialContext ctx = new InitialContext (props);
		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

 

 

			final Hashtable jndiProperties = new Hashtable();
			jndiProperties.put(Context.URL_PKG_PREFIXES,
					"org.jboss.ejb.client.naming");//让JNDI API知道是由谁来管理我们用来查找JNDI 名字的命名空间的。
			final Context context = new InitialContext(jndiProperties);
			//appName 和 moduleName分别就打包的格式而定
			//如果是.ear就是appName,其它的是moduleName(.jar,.war)
			final String appName = "";
			final String moduleName = "EJBDBTest";
			final String distinctName = "";
			//实现类名
			final String beanName = DB.class.getSimpleName();
			System.out.println(beanName);
			//接口类名
			final String viewClassName = DBRemote.class.getName();
			System.out.println(viewClassName);
			String jndi = "ejb:" + appName + "/" + moduleName + "/"
					+ distinctName + "/" + beanName + "!" + viewClassName;
			System.out.println(jndi);
			DBRemote db = (DBRemote) context.lookup(jndi);

 

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

For stateless beans:
ejb:<app-name>/<module-name>/<distinct-name>/<bean-name>!<fully-qualified-classname-of-the-remote-interface>
For stateful beans:
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 

 

 

endpoint.name=client-endpoint
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
 
remote.connections=default  //connection 的名字
 
remote.connection.default.host=xx.xxx.xxx.xx //IP
remote.connection.default.port = xxxx //port
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false

//JBOSS 用户名密码
remote.connection.default.username=appuser   
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

 
remote.connections=one, two
 
remote.connection.one.host=localhost
remote.connection.one.port=6999
remote.connection.one.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
 
remote.connection.two.host=localhost
remote.connection.two.port=7999
remote.connection.two.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
  

 

 

分享到:
评论

相关推荐

    jboss7 + EJB3

    使用JNDI(Java Naming and Directory Interface)查找并调用远程EJB,或者通过EJB的客户端视图进行调用。JBOSS7提供了一个JNDI命名空间,可以在其中注册和查找EJB。 6. **事务管理** EJB3支持声明式事务管理,...

    jboss-web.xml jndi.properties oracle-ds.xml

    通过JNDI,Web层可以查找并调用EJB层的服务。 其次,"jndi.properties"文件是用来配置JNDI的,JNDI是一个接口,允许Java程序查找和绑定命名服务。在EJB+JPA环境中,它通常用于定义数据源(DataSource)的JNDI名称,...

    EJB client调用EJB3 .doc

    调用EJB时,客户端可以通过`InitialContext`查找EJB,如下所示: ```java InitialContext ctx = new InitialContext(); HelloWorld helloworld = (HelloWorld) ctx.lookup("HelloWorldBean/remote"); ``` 这里...

    Eclipse开发EJB_3.0

    在 EJB 3.0 中,需要创建客户端来调用 EJB 的业务逻辑。在本例中,我们创建了一个名为 TestClient 的客户端,该客户端使用 JNDI 查找 EJB,并调用 SayHello 方法。 EJB 3.0 中的 JNDI 查找 在 EJB 3.0 中,JNDI ...

    JBoss3.0下配置和部署EJB简介

    2. 测试工具:JBoss提供了一个名为jbossclient的命令行工具,可以用于远程调用EJB进行测试。 七、EJB与Web应用集成 1. JSP和Servlet:在Web应用中,可以通过JSP和Servlet来调用EJB,实现前端和后端的交互。 2. Web...

    Jboss下开发ejb应用之一会话bean的应用

    通过对ejbclient的源码研究,可以了解客户端如何查找和调用EJB,以及如何处理异常和连接管理。 7. **工具支持**: - Maven或Gradle可以用来管理和构建EJB项目,确保依赖项的正确引入。 - IDE中的EJB插件提供代码...

    EJB视频教程 3.开发EJB的客户端 4.把jboss集成进eclipse

    1. **EJB客户端接口**:了解EJB客户端如何与远程服务器上的EJB组件进行交互,包括定义Home接口和Remote接口,以及调用EJB方法的步骤。 2. **JNDI查找**:学习如何通过Java Naming and Directory Interface (JNDI) ...

    Jboss下开发EJB简介[借鉴].pdf

    总的来说,理解JBoss 3.0的EJB配置和部署涉及到对EJB规范的理解,包括ejb-jar.xml、web.xml、application.xml等配置文件的编写,以及客户端如何通过JNDI查找和调用EJB。对于初学者,建议深入学习J2EE和EJB基础知识,...

    Jboss上部署EJB方法

    客户端可以通过JNDI查找并调用EJB,如: ```java InitialContext ctx = new InitialContext(); Object objref = ctx.lookup("ejbtest"); zcxejb1Home beanHome = (zcxejb1Home) PortableRemoteObject.narrow(objref,...

    (sshproject)tomcat调用jboss上的ejb3.0

    在Tomcat应用中,你可以使用JNDI API来查找Jboss上的EJB,然后通过这个引用调用EJB的方法。 - 调用EJB时,注意处理可能出现的网络异常、远程方法调用异常等。 5. **安全与性能优化**: - 考虑使用SSL/TLS加密连接...

    jboss 测试EJB 的例子

    5. **客户端调用**:ejb_client可能是一个简单的Java客户端程序,使用EJB的远程接口来调用服务端的EJB方法。JNDI(Java Naming and Directory Interface)用于查找并绑定EJB的引用。 6. **readme.txt**:这个文件...

    EJB3.0范例,开发环境搭建,服务器端程序,客户端调用程序

    客户端程序用于调用EJB服务器端提供的服务。这里简要介绍客户端程序的编写方法: 1. **客户端代码**: - 客户端需要通过 JNDI 查找服务器端的bean,并获取其远程接口实例。 - 示例代码: ```java ...

    在JBoss下配置EJB

    客户端通过这个JAR来查找和调用EJB。 4. **部署**:在JBoss中部署EJB 2.0应用,通常需要将ejb-jar.jar、client-ejb-jar.jar和相应的jboss.xml放入`server/default/deploy`目录下。 接下来,我们转向EJB 3.0的配置...

    jboss下部署ejb详细步骤

    1. 远程调用:通过JNDI查找EJB,使用Java远程方法调用(RMI)或IIOP通信。 2. 本地调用:在同一个应用内,可以通过注解`@EJB`直接注入EJB实例。 八、监控与调试 1. JBoss管理控制台:通过浏览器访问`...

    JSP调用EJB例子[归类].pdf

    其中,HaiHome接口代表EJB的远程接口,允许客户端通过RMI(Remote Method Invocation)调用EJB;HaiClient接口是会话bean的本地接口,提供了具体业务方法的定义;HaiBean类实现了会话bean的业务逻辑。 2. WEB应用:...

    EJB3.1与JBoss7.1.1在eclipse的实现

    - 通过Eclipse将创建好的EJB模块部署到JBoss服务器,并通过控制台输出信息验证部署是否成功。 5. 建立客户端工具类 - 客户端类通常负责调用部署在服务器上的EJB,实现与EJB组件的交互。这涉及到Java命名和目录...

    jboss ejb3.0开发介绍

    - EJB 3.0 中的实体 Bean 需要在服务器上配置数据连接池,以便通过 JNDI 访问数据库。 - 在 jBoss 的 `docs\examples\jca` 文件夹下找到相关配置文件(例如 `mssql-ds.xml`),将其复制到 `server\default\deploy`...

    jboss的安装与ejb的工程的配置(原创)

    - 第二部分是jBoss客户端库,位于jBoss的“client”目录下,用于客户端调用EJB。 - 第三部分是在项目“src”目录下的`jndi.properties`文件,其中包含了JNDI(Java Naming and Directory Interface)的初始化参数...

    Jboss 下开发EJB简介.doc

    在客户端调用EJB之前,需要确保客户端能够正确地访问服务器端的JNDI命名服务。如果客户端和服务器位于不同的Java虚拟机上,则需要在客户端提供一个`jndi.properties`文件,该文件应包含如下信息: - `java.naming....

Global site tag (gtag.js) - Google Analytics