PE框架学习-程序员宅基地

技术标签: 网络  

PE开发基础:

开发平台PowerEngine:

开发新功能:

业务逻辑处理:

1、Transaction:交易
2、Chain:链、责任链
3、Command:命令
4、Template:模板
5、Action:动作

PE交易处理流程:

无论一个交易的发送渠道是HTTP还是TCP,最终针对每一个渠道的Adapter会将请求的Form(HTTP)或报文(TCP)转换成与渠道无关的Context。
当渠道Adapter将数据转换为渠道无关的Context后,将控制权交给PowerEngine核心控制模块,根据该交易的交易Id,来确认该交易需要经过的处理过程。
  1. 首先执行Chain中的一系列Commands,若有其中一个Command认为需结束处理,则处理立刻结束;
  2. 当Chain执行到Delegate Command时,开始执行Template;
  3. 不同的Template会调用不同的Actions,以完成实际的交易处理。
简言之,根据交易Id可以唯一地确定Template,根据Template可以唯一地确定Chain,一旦确定了Chain,系统就按流程图所示开始执行处理。

总结:首先根据<transcation>中的id号,找到模板(template),然后再根据模板找到责任链(chain),一旦确认chain就按照流程图执行,从chain中执行command,执行到deletegatecommand后结束,跳到模板,再去执行<action>,然后跳转到相应的jsp页面。(/posweb/WebContent/WEB-INF/zh_CN/pos/LoanBaseInformationQuery.jsp)
Transaction:
一个业务处理功能的入口。
关键点:
    交易id
    引用的模板
    定义的action
    数据交验
    返回页面的渠道
transaction定义:
[html]  view plain  copy
 
  1. <transaction id=“preManagerAdd" template="引用的模版Id">  
  2.         <!--交易级定义的Actions.由模版来确定这些Actions的调用方法。-->  
  3.         <actions>  
  4.             <ref name="act01" >交易级定义的Action</ref>             
  5.         </actions>  
  6.           
  7.         <!--对每一个域的有效性检查-->  
  8.         <fields>  
  9.             <field name="域名1">Style名称</field>  
  10.             。。。           
  11.         </fields>  
  12.         <!--渠道的定义-->  
  13.         <channels>  
  14.             <!--HTTP渠道的定义-->  
  15.             <channel type="http">  
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_34242331/article/details/86360175

智能推荐

UIpath2021.10下载、安装、激活_uipath怎么激活-程序员宅基地

文章浏览阅读4.5k次,点赞2次,收藏6次。uipath激活_uipath怎么激活

DELL 7080MFF 黑苹果安装,优化_7080mff m2网卡-程序员宅基地

文章浏览阅读1w次,点赞2次,收藏10次。基本配置配置:dell 7080MFF (低压版)CPU:10700T内存:16 + 16硬盘:KIOXIA NVME 256GB ,MacKIOXIA-EXCERIA SATA SSD,DataKIOXIA-EXCERIA NVME 512,Win0WIFI:苹果拆机网卡+转接板(直接免驱),转接板需要屏蔽针脚屏幕:DELL UP2516D1. 安装主要参照官方文档司波图大神视频用gibMacOS制作恢复U盘下载OpenCore,OpenCorePkg’s releases_7080mff m2网卡

汇编quad_ARM 汇编-程序员宅基地

文章浏览阅读904次。1. 寄存器1.1 通用寄存器(X0-31)参数寄存器(X0 - X7): 用于传递函数的前面8个参数,多余8个参数的,超出部分通过栈传递返回值寄存器:(X0,X8): 用于保存返回值,如果是基本数据类型,返回值保存在X0,如果是结构体,结果的地址将保存在X8调用者保存的临时寄存器(X9-X15):如果调用者用到这些寄存器,在调用另外一个函数前,调用者必需要将受影响的寄存器保存在自己的堆栈中.它们..._汇编.quad

AAAI2021联邦学习论文集_flame: differentially private federated learning i-程序员宅基地

文章浏览阅读2.3k次。目前,已经开放了AAAI2021的Accept Paper List, 本文精选了14篇**联邦学习(Federated Learning)**的入选论文,分类如下:隐私保护(Private Protection)278: Secure Bilevel Asynchronous Vertical Federated Learning with Backward UpdatingQingsong Zhang, Bin Gu, Cheng Deng, Heng Huang4838: FLAME: Di._flame: differentially private federated learning in the shuffle model

Yarn实现的Hadoop集群高可用_hadoop高可用集群只能打开一个yarn网址-程序员宅基地

文章浏览阅读1.4k次。Yarn实现的Hadoop集群高可用;hadoop ResourceManger;Hadoop集群资源管理系统_hadoop高可用集群只能打开一个yarn网址

hive 修改cluster by算法_K-Means聚类算法原理及Python实践-程序员宅基地

文章浏览阅读580次。“聚类”(Clustering)试图将数据集中的样本划分为若干个不相交的子集,每个子集被称为一个“簇”或者“类”,英文名为Cluster。比如鸢尾花数据集(Iris Dataset)中有多个不同的子品种:Setosa、Versicolor、Virginica,不同品种的一些观测数据是具有明显差异的,我们希望根据这些观测数据将其进行聚类。下图可以看到,不同品种的鸢尾花的花萼(Sepal)和花瓣(Pe..._hive支持knn或者kmeans聚类么?

随便推点

oracle rac启动报错,【案例】Oracle RAC报错ORA-01157的原因和MOS官方解决办法-程序员宅基地

文章浏览阅读384次。天萃荷净Oracle研究中心案例分析:运维DBA反映Oracle RAC启动失败并报错ORA-01157,分析原因为遇到数据文件在其它一台实例,因为权限原因导致不能访问时。在RAC环境中,当数据库OPEN状态时,如果遇到数据文件在其它一台实例,因为权限原因导致不能访问时,如1157报错ORA-01157: cannot identify/lock data file 19 – see DBWR t..._rac ora-01157

generator-mybatis-generator-1.3.6生成实体类和Mapper.xml文件详解_mybatis-generator 1.3.6下载-程序员宅基地

文章浏览阅读3k次,点赞2次,收藏3次。在学习MyBatis的过程中,发现mybatis确实是非常好用的的框架,但是,手写映射文件很容易出错,所以可利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件。这样可以省去很多的功夫,将生成的代码copy到项目工程中即可。当然了,eclipse上也有类似的插件,不过我选择generator是因为其方便,只需要下载一个jar包就好,下面就来说一下构建过程吧: 我的目录结构如下..._mybatis-generator 1.3.6下载

简化Cocos和Native交互利器_native.reflection.callstaticmethod-程序员宅基地

文章浏览阅读955次。背景我们在使用 Cocos 和 Native 进行交互的时候,发现体验并不是特别的友好。如下所示,为我们项目当中的一段代码(代码已脱敏),当检测到发生了 js 异常,我们需要通知 Native 端去做一些处理。jsException: function (scence, msg, stack) { if (cc.sys.isNative && cc.sys.os === cc.sys.OS_ANDROID) { jsb.reflection.callStatic_native.reflection.callstaticmethod

vue3.0 音频插件(vue-aplayer)_vue3aplayer音频-程序员宅基地

文章浏览阅读1.5w次,点赞6次,收藏15次。上篇文章我们说了怎么使用视频插件vue-vedio-player那么我们当然也有音频插件了我们选择使用vue-aplayer同样我们先安装这个插件npm install vue-aplayer -s我们需要在main.js里面导入并引用import vueAplayer from 'vue-aplayer' Vue.use(vueAplayer)那么我们怎..._vue3aplayer音频

VMware Workstation 无法连接到虚拟机。请确保您有权运行该程序、访问该程序使用的所有目录以及访问所有临时文件目录。未能将管道连接到虚拟机: 系统找不到指定的文件_未能将管道连接到虚拟机 系统找不到指定文件-程序员宅基地

文章浏览阅读5.1k次,点赞6次,收藏20次。尝试了下列博客上所有的方法,大概都是要杀死进程什么的,我还卸载VMware重装,都不好用,来来去去折腾了小一天。https://blog.csdn.net/hewenqing1/article/details/104138322?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weight&depth_1-utm_source=distribute.pc_releva_未能将管道连接到虚拟机 系统找不到指定文件

随身WiFi刷入debian系统后挂载SD卡&U盘后安装宝塔面板_debian挂载u盘-程序员宅基地

文章浏览阅读1.7k次。随身WiFi刷入debian系统后挂载SD卡&U盘后安装宝塔面板以下以SD卡为例子修改usb为主动模式vi /usr/sbin/mobian-usb-gadget把下面这行添加到setup() { 的下一行echo host > /sys/kernel/debug/usb/ci_hdrc.0/role重启设备reboot创建挂载目录(www为宝塔默认安装目录)mkdir -p /www插上U盘,查看是否已经识别到fdisk -_debian挂载u盘

推荐文章

热门文章

相关标签