`

远程调用ejb3

    博客分类:
  • EJB
阅读更多

总结下远程调用ejb3的几种方式:

部署在jboss服务器上的ejb3应用程序:

Java代码 复制代码 收藏代码
  1. /*设置属性信息*/  
  2.         Properties props = new Properties();   
  3.         props.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");   
  4.         props.put(Context.PROVIDER_URL, "jnp://localhost:1099");//部署在jboss服务器上的应用使用jnp协议   
  5.         props.put("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");   
  6.            
  7.         try {   
  8.             InitialContext ctx=new InitialContext(props);   
  9.             /* 获得部署在Jboss服务器上的ejb3应用接口实例*/  
  10.             IRmiExampleSerivce rmiSerivce = (IRmiExampleSerivce)ctx.lookup("IRmiExampleSerivceImpl/remote"); //不同的服务器jndi名称不一样   
  11.         } catch (NamingException e) {   
  12.             // TODO Auto-generated catch block   
  13.             e.printStackTrace();   
  14.         }  
/*设置属性信息*/
		Properties props = new Properties();
 		props.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
 		props.put(Context.PROVIDER_URL, "jnp://localhost:1099");//部署在jboss服务器上的应用使用jnp协议
 		props.put("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
 		
 		try {
			InitialContext ctx=new InitialContext(props);
			/* 获得部署在Jboss服务器上的ejb3应用接口实例*/
			IRmiExampleSerivce rmiSerivce = (IRmiExampleSerivce)ctx.lookup("IRmiExampleSerivceImpl/remote"); //不同的服务器jndi名称不一样
 		} catch (NamingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}



部署在weblogic服务器上的ejb3应用:

Java代码 复制代码 收藏代码
  1. /*设置属性信息*/  
  2.         Properties props = new Properties();   
  3.         props.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");   
  4.         props.put(Context.PROVIDER_URL, "t3://127.0.0.1:7001");//部署在weblogic服务器上的应用使用t3协议   
  5.         props.put("java.naming.security.principal""weblogic");//用户名   
  6.         props.put("java.naming.security.credentials""weblogic");//密码   
  7.            
  8.         try {   
  9.             InitialContext ctx=new InitialContext(props);   
  10.             /* 获得部署在Jboss服务器上的ejb3应用接口实例*/  
  11.             IRmiExampleSerivce rmiSerivce = (IRmiExampleSerivce)ctx.lookup("IRmiExampleSerivce#com.rmi.IRmiExampleSerivce"); //不同的服务器jndi名称不一样   
  12.         } catch (NamingException e) {   
  13.             // TODO Auto-generated catch block   
  14.             e.printStackTrace();   
  15.         }  
/*设置属性信息*/
		Properties props = new Properties();
		props.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
 		props.put(Context.PROVIDER_URL, "t3://127.0.0.1:7001");//部署在weblogic服务器上的应用使用t3协议
 		props.put("java.naming.security.principal", "weblogic");//用户名
 		props.put("java.naming.security.credentials", "weblogic");//密码
 		
 		try {
			InitialContext ctx=new InitialContext(props);
			/* 获得部署在Jboss服务器上的ejb3应用接口实例*/
			IRmiExampleSerivce rmiSerivce = (IRmiExampleSerivce)ctx.lookup("IRmiExampleSerivce#com.rmi.IRmiExampleSerivce"); //不同的服务器jndi名称不一样
 		} catch (NamingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}



当然属性信息可以放在一个jndi.properties属性文件中,如:

Properties代码 复制代码 收藏代码
  1. java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory   
  2. java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces   
  3. java.naming.provider.url=localhost:1099  
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=localhost:1099


当然该文件放在src根目录下,然后我们在程序中就无需创建Properties的实例并设置相关熟悉,可以直接实例化InitialContext,调用默认的实例化构造函数,会默认查找src根目录下的jndi.properties属性文件。

当然在实际开发应用中不会直接通过以上方式来直接调用远程ejb3服务,在spring框架中可以通过JndiObjectFactoryBean来获得远程ejb3的实例,例如:

Xml代码 复制代码 收藏代码
  1. <bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">  
  2.         <property name="environment">  
  3.             <props>  
  4.                 <prop key="java.naming.provider.url">t3://127.0.0.1:7001</prop>  
  5.                 <prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop>  
  6.                 <prop key="java.naming.security.principal">weblogic</prop>  
  7.                 <prop key="java.naming.security.credentials">weblogic</prop>  
  8.             </props>  
  9.         </property>  
  10.     </bean>  
  11.         
  12.     <bean id="rmiExampleSerivce" class="org.springframework.jndi.JndiObjectFactoryBean">  
  13.         <property name="jndiTemplate" ref="jndiTemplate"/>  
  14.         <property name="jndiName" value="IRmiExampleSerivce#com.rmi.IRmiExampleSerivce"></property>  
  15.     </bean>  

http://lym6520.iteye.com/blog/941758

分享到:
评论

相关推荐

    远程调用EJB方法

    EJB调用分为远程调用和本地调用两种,本文档描述了远程调用EJB方法。图文并茂,易于理解

    EJB客户端(远程调用)

    调用EJB的客户端程序,通过远程接口方式调用

    EJB分布式远程调用的小例子的简单实现

    EJB分布式远程调用的小例子的简单实现。[附源码]

    基于Facade的EJB远程调用技术

    基于Facade的EJB远程调用技术 基于Facade的EJB远程调用技术

    ejb调用详解

    主要讲解了如何远程调用websphare中的ejb组建,以及ejb开发实例,ejb开发框架等

    EJB 基于Java的远程方法调用(RMI)技术

    Enterprise Java Bean 相当于DCOM,即分布式组件

    Tomcat web工程 调用 JBOSS EJB local及remote源码

    Tomcat下web工程调用JBOSS部署的EJB项目 此源码包 包括local本地调用及remote远程调用 文档说明在http://blog.csdn.net/heardy/article/details/6906225

    Java如何在多个EJB之间相互调用的例子.rar

    Java如何在多个EJB之间相互调用的例子,也就是各种EJB之间的调用例子,向初学者演示如何实现调用的具体代码及步骤,涉及以下相关方法:用远程接口的引用访问EJB、函数将被FirstEJB调用,同时它将调用secondEJB。...

    各种EJB之间的调用示例

    各种EJB之间的调用源码示例,用远程接口的引用访问EJB、函数将被FirstEJB调用,同时它将调用secondEJB

    ejb3.0培训教程与源码(绝对精品)

    3)其他的EJB, 4)其他通过Web Service 调用的客户端; 4, EJB容器可以为我们提供的服务: 1) 事务:够用 2)安全:不够用 3)资源管理和组件的声明周期的管理; 4)远程的调用:屏蔽了很多细节 5)并发请求 ( EJB都是单...

    Tomcat6远程调用GlassFishV2的sessionbean

    Tomcat6远程调用GlassFish V2的session bean  GlassFish V2 是一个比较完整的ejb3服务器,性能也有了很大的提高,因此最近试用了一下,并通过Tomcat进行了分布式调用。  Session Bean: ...

    .Net远程方法调用研究

    远程方法调用发展到现在,已经有以下几种框架实现:DCE/RPC,CORBA,DCOM,MTS/COM+,Java RMI,Java EJB,Web Services/SOAP/XML-RPC,NET Remoting,本文主要介绍了.NET远程方法调用的原理,实现以及与微软...

    session facade:基于在线式银行的应用

    session facade:基于在线式银行的应用 session facade 远程调用 EJB

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    8.3.1 开发远程调用的无状态 Session Bean 304 8.3.2 开发本地调用的无状态 Session Bean 311 8.4 发布Session Bean 314 8.4.1 打包EJB-JAR 315 8.4.2 Annotation与部署描述文件 315 8.5 开发有状态的Session Bean ...

    Java RMI远程方法调用详解

    RMI是Java的一组拥护开发分布式...比如,一个EJB可以通过RMI调用Web上另一台机器上的EJB远程方法。  RMI(Remote Method Invocation,远程方法调用)是用Java在JDK1.1中实现的,它大大增强了Java开发分布式应用的能

    EJB_ejb_plannedvhz_

    各种EJB之间的调用源码,用远程接口的引用访问EJB、函数将被FirstEJB调用,同时它将调用secondEJB

    EJB3.0实录教程+配套源码

    ejb3.0培训教程与源码 #######含真正配套源码 .................... 1, 服务器端的一个组件模型,能部署在多层...4)远程的调用:屏蔽了很多细节 5)并发请求 ( EJB都是单线程的 ); 不要在EJB的代码中写多线程的代码;

    分布式服务架构之java远程调用技术浅析

    在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,这些名词之间到底是些什么关系呢,它们背后...

Global site tag (gtag.js) - Google Analytics