tomcat 调用weblogic EJB
### Tomcat调用WebLogic EJB的实现方法与步骤 #### 概述 在实际的开发环境中,有时候需要实现不同应用服务器之间的交互。比如,在Tomcat应用服务器中调用部署在WebLogic服务器上的EJB(Enterprise JavaBeans)组件。本文将详细介绍如何在Tomcat环境下调用WebLogic中的EJB,并提供具体的实现步骤。 #### 技术背景 - **Tomcat**:一款开源的轻量级Web应用服务器,主要用于部署和运行Java Web应用程序。 - **WebLogic**:一款由Oracle公司提供的功能强大的企业级Java应用服务器,支持EJB、JMS等标准。 - **EJB**:Enterprise JavaBeans,一种用于开发分布式企业级应用程序的标准组件模型。 #### 实现步骤 1. **配置WebLogic的JAR包** - 将WebLogic安装目录下的`bea\weblogic91\server\lib\`文件夹中的`weblogic.jar`复制到Tomcat的`Tomcat 5.5\shared\lib`目录下。这一步是为了让Tomcat能够识别WebLogic的类库,从而支持调用WebLogic中的EJB。 2. **打包EJB接口** - 在WebLogic中生成所需的EJB接口,并将其打成jar包。将这个jar包放置在需要调用EJB的项目的lib目录下,确保项目能够访问到这些接口定义。 3. **编写调用代码** - 创建一个Action类继承自`org.apache.struts.action.Action`,在这个类中实现具体的EJB调用逻辑。 4. **JNDI查找与远程调用** - 使用JNDI(Java Naming and Directory Interface)进行查找和获取EJB的远程接口。具体实现如下面示例代码所示: ```java public class TtAction extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { System.out.println("ssss"); try { InitialContext ctx = this.getInitialContext(); // 查找 JNDI 名为 SayHello 的 EJB 组件 Object obj = ctx.lookup("UserAccountMgr"); // 获得远程 EJB 组件的 home 接口的引用 com.bean.sessionbean.UserAccountMgrHome home = (com.bean.sessionbean.UserAccountMgrHome) PortableRemoteObject.narrow(obj, com.bean.sessionbean.UserAccountMgrHome.class); // 获得远程 EJB 组件的 remote 接口的引用 com.bean.sessionbean.UserAccountMgr mgr = home.create(); System.out.println(mgr.getTestString()); } catch (Exception e) { e.printStackTrace(); } return mapping.findForward("page"); } // 获取InitialContext的方法 private InitialContext getInitialContext() throws Exception { // EJB 容器的地址 String jndiProviderUrl = "t3://localhost:7001"; // 示例URL,需要根据实际情况修改 // 设置环境属性 Properties env = new Properties(); env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory"); env.put(Context.PROVIDER_URL, jndiProviderUrl); env.put(Context.SECURITY_PRINCIPAL, "username"); // WebLogic用户名 env.put(Context.SECURITY_CREDENTIALS, "password"); // WebLogic密码 return new InitialContext(env); } } ``` 5. **设置JNDI驱动和服务器网络位置** - 在上面的示例代码中,`getInitialContext`方法用于设置JNDI驱动和服务器网络位置,并连接到JNDI树。这是在采用WebLogic作为EJB容器时,远程调用EJB的一种常见模式。初学者可以通过这种方式熟悉基本的远程调用流程。 6. **注意事项** - 在实际部署过程中,需要注意EJB的版本兼容性问题,以及安全认证机制。例如,上文中的`jndiProviderUrl`、`Context.SECURITY_PRINCIPAL`和`Context.SECURITY_CREDENTIALS`都需要根据实际情况进行配置。 通过上述步骤,我们可以在Tomcat应用服务器中成功调用部署在WebLogic服务器上的EJB组件,实现跨服务器的应用交互。这对于构建复杂的企业级应用具有重要意义。
- friend50872016-02-24下载了 没用到
- dbdebuger2012-12-05不能通过测试
- 粉丝: 7
- 资源: 27
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 5G SRM815模组原理框图.jpg
- T型3电平逆变器,lcl滤波器滤波器参数计算,半导体损耗计算,逆变电感参数设计损耗计算 mathcad格式输出,方便修改 同时支持plecs损耗仿真,基于plecs的闭环仿真,电压外环,电流内环
- 毒舌(解锁版).apk
- 显示HEX、S19、Bin、VBF等其他汽车制造商特定的文件格式
- 操作系统实验 Ucore lab5
- 8bit逐次逼近型SAR ADC电路设计成品 入门时期的第三款sarADC,适合新手学习等 包括电路文件和详细设计文档 smic0.18工艺,单端结构,3.3V供电 整体采样率500k,可实现基
- 操作系统实验 ucorelab4内核线程管理
- 脉冲注入法,持续注入,启动低速运行过程中注入,电感法,ipd,力矩保持,无霍尔无感方案,媲美有霍尔效果 bldc控制器方案,无刷电机 提供源码,原理图
- Matlab Simulink#直驱永磁风电机组并网仿真模型 基于永磁直驱式风机并网仿真模型 采用背靠背双PWM变流器,先整流,再逆变 不仅实现电机侧的有功、无功功率的解耦控制和转速调节,而且能实
- 157389节奏盒子地狱模式第三阶段7.apk