在EOS项目中禁用BPS服务

简介: 在安装EOS Platform的时候,会有选择插件的界面,包括bps、cap、mobile(7.3提供)、sso。当选择的bps之后,在EOS的default包(应该称为基础包)中,将包含BPS的内容。EOS导出EAR包的原理是,将新建的EOS项目中的内容添加到default包中,然后将default整体导出为EAR包。在某些使用EOS项目中没有用到BPS,并且不需要BPS引擎启动,需要通过修改配置,禁用BPS服务。

在安装EOS Platform的时候,会有选择插件的界面,包括bps、cap、mobile(7.3提供)、sso。当选择的bps之后,在EOS的default包(应该称为基础包)中,将包含BPS的内容。EOS导出EAR包的原理是,将新建的EOS项目中的内容添加到default包中,然后将default整体导出为EAR包。在某些使用EOS项目中没有用到BPS,并且不需要BPS引擎启动,需要通过修改配置,禁用BPS服务。


1 直捣黄龙 - 修改EAR包

导出的EAR包中,包含了所有的内容,所以想要禁用BPS服务,可以直接修改EAR包。


设项目名称为project,导出的EAR包为project.ear。


在project.ear/project.war/WEB-INF/_srv/work/system/com.primeton.workflow.core/META-INF中,handler-contribution.xml文件中配置了BPS服务启动的功能:


<handlers>
  <handler handle-class="com.primeton.workflow.api.listener.WFStartUpListener"/>
  <handler handle-class="com.primeton.workflow.message.startup.WFStartUpListenerMessage"/>
</handlers>

删除或注销所有的handler配配置,下面的内容即可:

<handlers>
</handlers>

这样在启动部署EAR的时候,不会启动BPS服务了。


2 釜底抽薪 - 修改default包

每次修改EAR包实在太麻烦,干脆直接把default包中关于BPS服务的内容删除得了。


设EOS Platform的安装目录为EOS_HOME,需要修改的文件在:%EOS_HOME%\ide\eclipse\dropins\PLATFORM_7.2.0.0\plugins\com.primeton.studio.ear.core_7.1.0.0\template\ear\default\war\WEB-INF_srv\work\system\com.primeton.workflow.core\META-INF。


与第一步中相同,修改handler-contribution.xml,将所有的handler删除或注销。因为这里是default包,建议采用注销:


<handlers>
  <!--
  <handler handle-class="com.primeton.workflow.api.listener.WFStartUpListener"/>
  <handler handle-class="com.primeton.workflow.message.startup.WFStartUpListenerMessage"/>
  -->
</handlers>

3 斩草除根 - 清理

通过上面两种方式后,可以在EOS项目部署的过程中禁用BPS服务,但是EOS项目中还是包含了BPS的其他内容,并且导出的EAR包中存在其他内容,虽然现在硬盘不值钱,但是作为有洁癖的程序员,绝对不希望这样。那就手动清理EOS项目及EAR包。


3.1 清理构建库

在EOS项目上右键,点击属性,选择Java 构建路径,选择选项卡库,删除BPS Libraries、CAP程序全量库。


image.png


3.2 清理配置文件

在EOS项目的系统配置文件夹中,保存了系统级的配置文件,需要清理一些BPS相关的配置文件,包括:log4j-wf.xml、wfengine-config.xml、wfsys-config.xml三个配置文件。

image.png



3.3 清理BPS配置内容

在第2步中已经删除了BPS相关配置文件,但是在公共的配置文件中,还存在BPS相关的内容需要清理。


3.3.1 log4j-trace.xml

在log4j-trace.xml中存在bps日志打印配置,全部删除:


<!-- bpslogger -->
<logger additivity="false" name="com.primeton.bps">
    <level value="ERROR"/>
    <appender-ref ref="ROLLING_FILE"/>
  <appender-ref ref="CONSOLE"/>
</logger>
<logger additivity="false" name="com.eos.workflow">
    <level value="ERROR"/>
    <appender-ref ref="ROLLING_FILE"/>
  <appender-ref ref="CONSOLE"/>
</logger>
<logger additivity="false" name="com.primeton.workflow">
    <level value="ERROR"/>
    <appender-ref ref="ROLLING_FILE"/>
  <appender-ref ref="CONSOLE"/>
</logger>

3.3.2 user-config.xml

3.3.2.1 登录过滤

在user-config.xml中需要修改(修改也算是清理的一种吧)的是关于登录过滤器的内容:


<group name="Login-Filter">
    <!-- pages that can be accessed by any one including those not login -->
    <configValue key="Exclude">/ap/sce/help/tabsTree.jsp,/ap/see/form/swfupload/upload.jsp,/gocom/cap/auth/see/login/login/login.jsp,/login/login.jsp,/login/clientLoginFailure.jsp,/login/clientLoginSuccess.jsp,/common/**.jsp,/index.jsp,/common.remote,/jmxDefault.jmx,/common.download,/gocom/cap/workflow/client/login/main/login.jsp,**/com.primeton.workflow.client.UserLogin.flow,**/org.gocom.cap.auth.see.login.login.flow,**/org.gocom.components.coframe.auth.LoginManager.login.biz.ext,**/org.gocom.components.coframe.auth.login.login.flow</configValue>
    <configValue key="Include">*.flow,*.flowx,*.jsp,*.html,*.ajax,*.ext,*.action,*.beanx</configValue>
    <!-- the page to display when user not login -->
    <configValue key="LoginPage">/coframe/auth/login/login.jsp</configValue>
</group>

修改为:


<group name="Login-Filter">
    <!-- pages that can be accessed by any one including those not login -->
    <configValue key="Exclude">/common/**.jsp,/index.jsp,/common.remote,/jmxDefault.jmx,/common.download</configValue>
    <configValue key="Include">*.flow,*.flowx,*.jsp,*.html,*.ajax,*.ext,*.action,*.beanx</configValue>
    <!-- the page to display when user not login -->
    <configValue key="LoginPage">/index.jsp</configValue>
</group>

3.3.2.2 SSO及CAP

需要删除关于SSO和CAP所需数据源的相关配置:


<module name="Party">
  <group name="SSO">
    <configValue key="RemoteIp"></configValue>
    <configValue key="RemotePort"></configValue>
    <configValue key="AppName"></configValue>
    <configValue key="passwordEncoder">com.primeton.cap.sso.encrypt.MD5PasswordEncoder
    </configValue>
  </group>
</module>
<module name="Cap">
  <group name="DataSouceName">
    <!-- 系统数据源映射配置 -->
    <!--<configValue key="System">default</configValue> -->
    <!-- 用户数据源映射配置 -->
    <!--<configValue key="User">default</configValue> -->
  </group>
</module>

3.3.2.3 门户(Portal)模式

因为上面删除了SSO登录,在登录过滤中设置*.jsp的文件需要登录,所以这里暂时将项目修改为门户(Portal)模式:


<group name="Accessed-Mode">
  <configValue key="Portal">false</configValue>
</group>

修改为:


<group name="Accessed-Mode">
  <configValue key="Portal">true</configValue>
</group>

3.4 删除工作流相关文件

生成的EOS项目中,默认生成工作流相关的web内容和bps配置文件夹,直接删除。

image.png



3.5 清理EAR包 - 慎用

最后就是清理EAR包中的内容了,因为我这里是一个空项目,可以很清楚的看到那些是默认的内容,如果是在正式项目中,可能就不是很明显了,所以需要不要轻易走这步。


除了自己创建的文件夹、common、css、WEB-INF之外,其他的全部可以删除,因为删除内容过多,所以需要谨慎。


image.png


4 总结

通过上面几步,可以禁用BPS服务,并一定程度的清理EAR包中的内容,但是不负责任的说,并不能完全清理,就像Windows系统,即使再高级的垃圾清理软件,也不能把所有垃圾清理干净。


所以需要在创建项目前,规划好是否真的不需要BPS服务,如果是,那就废点功夫,重新安装一个干净的EOS Platform,这样导出的EAR包绝对是干净的。


5 补充

其实在上面删除的过程中,并没有将所有有关BPS工作流的内容删除。在project.ear/project.war/WEB-INF/_srv/work/system中,有几个bps、workflow相关的文件夹,在 1 直捣黄龙 - 修改EAR包 中,也是修改的这个文件夹中的内容,其实可以直接将这些文件夹删除。

image.png

目录
打赏
0
0
0
0
5
分享
相关文章
3dMax2023序列号密钥激活补丁
3D Max 2023已经正式发布了,由Autodesk公司开发的一款专业高效的三维制作软件,集三维建模、动画和渲染三大功能于一体,目前广泛应用于工业设计、建筑设计、三维动画、广告、影视、多媒体制作、游戏、辅助教学以及工程可视化等领域。我还是比较习惯用2023的版本。Autodesk 3ds Max 2023激活补丁分享!
5101 0
【Azure Batch】在中国区批处理服务(Mooncake Batch Account)上实验自动池(Auto Pool)的创建/删除
【Azure Batch】在中国区批处理服务(Mooncake Batch Account)上实验自动池(Auto Pool)的创建/删除
DLS11 网关中继器(LTE-LoRA) 数据发送机制
DLS11 是 LoRA-LTE 网关设备,专用于接收其它 LoRA 设备发来的数据包存储并在预定的时间间隔后统一发送(目前支持 VSxxx、NLM3、NLM5、NLM6 的 LoRA 数据包格式)。发送的方式有:UART、TCP、EMAIL、FTP、RF,通过设置寄存器 SEND_WAY 的值来选择。在发送数据时,还可以通过修改寄存器 DAT_PRO 来选择数据包的格式,当发送方式为 UART、TCP、RF 时建议使用 HEX 或者 STR1.0 格式,当为 EMAIL、FTP 时仅可使用 STR2.0 格式。
DLS11 网关中继器(LTE-LoRA) 数据发送机制
L2TP预共享秘钥不起作用
配置完成后windows连接正常,只是预共享秘钥无论怎么填都可以连上,哪位大侠帮看看是哪里的问题,是不是漏了什么配置
EOS主网正式激活,前21个节点已出炉
EOS主网区块链已正式激活上线。 6月15日凌晨1:50分,EOS主网区块链投票率成功超过所需要的15%,确定了第一批维护这个分布式网络的个体或实体名单(区块生产者),从而为EOS长达数周的主网启动工作画上句号,这也是加密货币市场有史以来最复杂的一次。
1168 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等