一、项目简介
该项目是基于weblogic的EJB容器注册HelloAbc服务,如下图所示,主要包括服务端节点(com.xwood.ejb.service)和客户端节点(com.xwood.ejb),分别依赖javax.ejb_3.0.1.jar(下载)和wlclient.jar(下载),github项目分享地址https://github.com/xwooduser/HessionRpcService.git
二、项目源码
1. eclipse创建EJB项目,如下图所示
2. 创建测试服务接口类IHelloAbcService,如下所示
package com.xwood.ejb.service;@b@public interface IHelloAbcService {@b@ String sayAbc();@b@}
3. 创建接口实现类HelloAbcServiceImpl,如下所示
package com.xwood.ejb.service.impl;@b@import javax.ejb.Remote;@b@import javax.ejb.Stateless;@b@import com.xwood.ejb.service.IHelloAbcService;@b@@b@@Stateless(mappedName = "HelloAbc") @b@@Remote @b@public class HelloAbcServiceImpl implements IHelloAbcService {@b@ @Override@b@ public String sayAbc() {@b@ return "XWOOD SAY:ABC..XYZ";@b@ }@b@ @b@}
如下图确实依赖包,请加载javax.ejb_3.0.1.jar到Libraries中
4. 将项目导出打包为jar包,如下图所示
5. 运行weblogic,将上面的打包EjbAbcService.jar进行部署
6. 部署服务后,写了客户端代码调用远程ejb服务,如下所示
package com.xwood.ejb.client;@b@@b@import java.util.Properties;@b@import javax.naming.Context;@b@import javax.naming.InitialContext;@b@import javax.naming.NamingException;@b@import com.xwood.ejb.service.IHelloAbcService;@b@@b@public class HelloAbcClient {@b@@b@ public static void main(String[] args) throws NamingException{@b@ Properties properties=new Properties(); @b@ properties.setProperty(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory"); @b@ properties.setProperty(Context.PROVIDER_URL,"t3://localhost:7001"); @b@ @b@ Context context = new InitialContext(properties);@b@ IHelloAbcService ejb = (IHelloAbcService) context.lookup("HelloAbc#com.xwood.ejb.service.IHelloAbcService"); @b@ System.out.println(ejb.sayAbc()); @b@ }@b@@b@}
如运行报缺失"weblogic.jndi.WLInitialContextFactory"等异常,跳转到异常解决页面
7. 运行结果,如下所示
XWOOD SAY:ABC..XYZ