1、java服务EJB开发文档(一)Weblogic 12c的安装1、解压wls1211_dev.zip到指定目录,参考:(D:wls1211_dev)2、设置系统环境变量 JAVA_HOME,JAVA_VENDOR,MW_HOME JAVA_HOME=D: Javajdk1.6.0_19 (jdk的安装目录) MW_HOME=D:wls1211_dev (weblogic的解压目录) JAVA_VENDOR=Sun3、运行wls1211_dev下的 configure.cmd4、创建weblogic域,运行wls1211_dev下的 wlserver/common/bin/config.cmd
2、按提示界面进行默认配置5、启动weblogic,打开http:/localhost:7001/console 验证是否安装成功6、配置数据源7、点击部署,发布PMS_EAR项目(二)Eclipse与weblogic集成1、打开eclipse首选项Window-Preferences,选中Server下的Runtime Environments,如下图所示2、点击Add按钮,弹出New Server Runtime Environment面板,选中Oracle文件夹下的Oracle Weblogic Server 12c(12.1.1)3、点击Next,选择WebLogic home和Java
3、home,点击Finish,完成配置(三)EJB工程部署1、先将PMS_EAR和PMS_SERVICE两个项目导入,选中PMS_EAR工程,点击右键选择Run As下的Run On Server2、点击Next,选择Domain directory,勾选Always start Weblogic servcer in debug mode,点击Next直至Finish。3、下图显示PMS_EAR已运行在WebLogic Server上。4、控制台输出若有乱码,可以点击RunRun Configurations,将Common标签下的Encoding改为GBK。5、在eclipse文件下的pul
4、gins中加入服务插件 然后在命令窗口直行 eclipse clean就行了-此处往下为管控组人员统一配置管理,开发人员禁止修改,只能查阅。(四)EJB插件应用第一步先建立数据应用服务器 用eclipse中的插件选择第一个数据库维护。点击添加弹出下面窗口先点击连接测试按钮,看下连接是否通过,然后再点击ok完成。第二步实体映射用eclipse中的插件选择第二个实体映射。选中要映射的实体对象点击next。选择实体存放的包路径,选择生成映射信息的xml文件后点击next点击next点击next点击finish完成后就会自动生成实体对象。第三步批量实体映射批量实体映射比较方便多表同时映射实体对象,操作
5、比上述简单,道理都是一样的。第四步实体元数据维护对上述生成的实体以及实体对应的xml文件进行维护操作。第五步服务协议维护创建服务协议,点击添加,进入编辑窗口ID为前台调用服务时getServiceName()方法中映射的名称,Class Id为服务类中映射的名称,”!”号前面的为服务名称,下面分别是设置服务的输入和输出参数列表,Num Min = 1、Num Max = 1,则为单个实体对象。Num Min = 0、Num Max = -1,则为实体对象集合(List)。上述任务为管控组人员统一配置管理,开发人员禁止修改,只能查阅第六步服务框架生成用eclipse中的插件,选择第六个服务框架生
6、成。在服务协议过滤框中输入需要编写的服务名称。选中要编写的服务后点击next。点击Browse选择服务路径,选择需要事务或者不需要事务后点击finish即可,然后编写相应的服务。第七步需要关注的配置文件在srccomcsgclientconfig.properties,此文件为weblogic的配置文件。CONTEXT_INITIAL_CONTEXT_FACTORY=weblogic.jndi.WLInitialContextFactoryCONTEXT_PROVIDER_URL=t3:/localhost:7001CONTEXT_SECURITY_PRINCIPAL=weblogicCONT
7、EXT_SECURITY_CREDENTIALS=weblogic123REMOTE_SERVICE_JNDI_NAME=SOAServiceConnector#com.csg.service.xt.connector.IServiceConnector改成自己本地的weblogic12的用户名和密码在项目根目录下db-config.xml,为数据库配置文件。 oracle.jdbc.driver.OracleDriver sz_test sz_test jdbc:oracle:thin:10.210.15.6:1521:szdb (五)正式开发服务步骤服务会有两种 :一种是调用原子组件实现服
8、务、另一种是调用非原子组件或业务组件实现服务。调用原子组件:AtomicCompUtil.getMainDSAtomicTool();用此工具类可以完成。下面是详细实例代码。/* * 文件名: YK_XZYWZL-选择业务子类 * 编写者: 谭亚平 * 编写日期: 2012-05-19 * 简要描述: 选择业务子类 * 组件列表: * 调用原子组件查询业务子类参数 * * 修改日志 * * 修改人: 修改日期: * 修改内容: * */Stateless(name = XZYWZLService, mappedName = XZYWZLService)Local(IBusinessServic
9、e.class)public class XZYWZLService implements IBusinessService /* 输入输出参数常量定义 */ private static final String IN_PARAM = IN_FW_YKYWZLCS; private static final String OUT_PARAM = OUT_FW_YKYWZLCS; Override public String getServiceVersion() return 1.0.0; Override TransactionAttribute(TransactionAttributeT
10、ype.REQUIRED) public Map runService(Map requestParam) throws SOAServiceException /获得输入参数 T_FW_YKYWZLCS ywzlcs = (T_FW_YKYWZLCS) requestParam.get(IN_PARAM); /进行输入参数校验 if (ywzlcs = null | .equals(ywzlcs.getYwzlbh() /抛出异常,返回 throw ServiceExceptionUtil.generateSOAServiceException(输入参数业务子类参数有误!); /设置输出参数
11、 Map resultMap = new HashMap(); /引用原子组件,查询下级组织信息 try T_FW_YKYWZLCS findYwzl = AtomicCompUtil.getMainDSAtomicTool().loadById(ywzlcs); if (findYwzl != null) resultMap.put(OUT_PARAM, findYwzl); else resultMap.put(OUT_PARAM, null); catch (DBException ex) SOAServiceException soaServiceException = Service
12、ExceptionUtil.generateSOAServiceException(ex); soaServiceException.setErrorMsg4Dev(调用原子组件查询业务子类参数时出错!); soaServiceException.setErrorLog(ex.getMessage(); throw soaServiceException; return resultMap; 调用非原子组件或业务组件:因需求需要调用非原子组件或业务组件,此时需要开发人员编写此服务需要的非原子组件或业务组件,规范规定sql语句只能出现在非原子组件或业务组件,所以非原子组件或业务组件会实现比原子组
13、件更繁琐的功能,下面是详细实例代码。服务代码:/* * 文件名: YK_CSHKHZRXXLBCK-初始化客户自然信息列表窗口 * 编写者: 谭亚平 * 编写日期: 2012-05-19 * 简要描述: 初始化客户自然信息列表窗口 * 组件列表: * 1) C_YK_CSHKHZRXXLBCKZJ-初始化客户自然信息列表窗口组件 * * 修改日志 * * 修改人: 修改日期: * 修改内容: * */Stateless(name = CSHKHZRXXLBCKService, mappedName = CSHKHZRXXLBCKService)Local(IBusinessService.cl
14、ass)public class CSHKHZRXXLBCKService implements IBusinessService /* 输入输出参数常量定义 */ private static final String IN_PARAM = IN_FW_YKKHDABGXX; private static final String OUT_PARAM_LIST_YKKHDABGXX = OUT_FW_YKKHDABGXX; Override public String getServiceVersion() return 1.0.0; Override TransactionAttribut
15、e(TransactionAttributeType.REQUIRED) public Map runService(Map requestParam) throws SOAServiceException /获得输入参数 T_FW_YKKHDABGXX khda = (T_FW_YKKHDABGXX) requestParam.get(IN_PARAM); /进行输入参数校验 if (khda = null | .equals(khda.getGzdbh() /抛出异常,返回 throw ServiceExceptionUtil.generateSOAServiceException(输入参
16、数客户变更信息有误!); /设置输出参数 Map resultMap = new HashMap(); /引用非原子组件,查询下级组织信息 CSHKHZRXXLBCKZJCom csh = new CSHKHZRXXLBCKZJCom(); List khdaList = csh.getCustomerChangeInfo(khda); if (khdaList != null & khdaList.size() 0) resultMap.put(OUT_PARAM_LIST_YKKHDABGXX, khdaList); else resultMap.put(OUT_PARAM_LIST_YK
17、KHDABGXX, null); return resultMap; 服务中出现的CSHKHZRXXLBCKZJCom csh = new CSHKHZRXXLBCKZJCom();则为调用此服务的非原子组件。非原子组件代码:/* * 文件名:C_YK_CSHKHZRXXLBCKZJ-初始化客户自然信息列表窗口组件 * 编写者:谭亚平 * 编写日期:2012年5月19日 * 简要描述: * 打开客户自然信息列表窗口时,初始化客户自然信息列表窗口 * 组件列表: * * 修改日志 * * 修改人: 修改日期: * 修改内容: */public class CSHKHZRXXLBCKZJCom /
18、* * 查询客户变更信息 * param khda 客户变更信息传入实体 * return T_FW_YKGZDJBXX-根据工作单编号查询客户变更信息 */ public List getCustomerChangeInfo(T_FW_YKKHDABGXX khda) throws SOAServiceException try List params = new ArrayList(); params.add(khda.getGzdbh(); /根据工作单编号查询客户变更信息 String khdaSql = SELECT BGXXBS,GZDBH,KHBH,KHMC,YDBZ,KHLXD
19、M,JJLXDM, + XYDJDM,XYFZ,JZDJDM,FXDJDM,VIPBZ,VIPDJDM,QYWZ,QYGM,QYJJ,ZCZBJ, + ZCZJ,FRDB,JYFW,ZYCP,SCGY,CN,ZYYL,GYLY,XSE,XSQY,ZYBDXM,DFZQYCBBL, + CYFLDM,DQBM,GDDWBS FROM FW_YKKHDABGXX WHERE GZDBH = ?; DBTool dbTool = new DBTool(); List khdaList = dbTool.executeQuery(khdaSql, params, T_FW_YKKHDABGXX.cla
20、ss); if (khdaList != null & khdaList.size() 0) return khdaList; return null; catch (DBException ex) /包装异常并填充错误信息 SOAServiceException soaServiceException = ServiceExceptionUtil.generateSOAServiceException(查询客户变更信息出错!); soaServiceException.setErrorMsg4Dev(根据工作单编号,调用dbTool.executeQuery()方法,查询客户变更信息出错!); soaServiceException.setErrorMsg4User(查询客户变更信息出错!); soaServiceException.setErrorLog(ex.getMessage(); throw soaServiceException;
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2