实用私包部署经验总结---屌丝语言风
金蝶云社区-Tina_李培
Tina_李培
4人赞赏了该文章 4,534次浏览 未经作者许可,禁止转载编辑于2015年07月15日 11:19:07

一.教你自己判断如何部署私包:
私包普遍部署路径:接受到私包后,如果想自己确定私包的部署路径,可以参照这个规则, 先用好压打开,一般是com\kingdee\eas\***\**\”A”\”B”\****.”C”此时如果判断我的私包应该部署在哪里呢?\ (1):B直接是server那么,应该是服务端的包,此时再进入看是元数据还是代码,如果C的位置是.class,则证明是代码,此时,需要将包部署在\server\lib\sp路径下,就ok了,如果C的位置不是.class,则证明是元数据包,此时需要将包部署在\server\metas\sp\server\deploy\fileserver.ear\easWebClient\metas\sp路径下。重启服务和客户端才可以生效。 (2):B的位置是client,则是客户端的包,此时同理,看C的位置是.class则部署在\server\deploy\fileserver.ear\easWebClient\lib\sp,如果不是,则部署在\server\metas\sp\server\deploy\fileserver.ear\easWebClient\metas\sp (3):A的位置有东西(有领域),但是B的位置已经没了,直接到了C这里,此时是一般的工具包,需要在\server\lib\sp和\server\deploy\fileserver.ear\easWebClient\lib\sp两个位置都部署,并且重启服务器和客户端才可以生效。 (4):B的位置既有Client又有Server,且C的位置是.class则部署在\server\lib\sp和\server\deploy\fileserver.ear\easWebClient\lib\sp,是开发大大们把包融合在一起了,方便部署和记录。 (5):B的位置同样都有,C的位置不是.class那么是元数据的包,放在\server\metas\sp\server\deploy\fileserver.ear\easWebClient\metas\sp,这种情况还是比较少的。 (6):C的位置是.properties 是代码包,这种类型一般是调整界面的位置使用的,部署在\server\deploy\fileserver.ear\easWebClient\lib\sp下就好。
二. 告诉你为什么要这么做!
上面的路径,可以统计为四个:代码包:\server\lib\sp;\server\deploy\fileserver.ear\easWebClient\lib\sp元数据包:\server\metas\sp;\server\deploy\fileserver.ear\easWebClient\metas\sp。又可以分为服务端的包:\server*,客户端的包:\server\metas\sp;\server\deploy\fileserver.ear\easWebClient\*。 那么为什么要这么放呢,且听在下慢慢道来:在eas\server\lib目录下,基本上就是要加载的代码,一般是common;patch;server;sp,这四个包,common和server是本来就有的,是系统默认加载的东西,patch是补丁中的,sp是私包和二次开发加载的包,也就是说,这四个包的加载顺序是sp>patch>server,common。patch中的东西是不可以动的,因为启动服务会自检,patch中的版本号不一致是不会允许启动服务的,所以,一般私包和二次开发的东西会放在sp下,那么它的加载方式是什么样的呢? 在lib目录下每个子级目录下,都会有个_classpath的压缩包文件,此文件若打开查看,你会发现它其实是一个记录当前目录下文件名和包名的配置文件,是在eas启动服务的时候生成和更新的,也相当于是个目录!在sp下的私包和二次开发类,在启动服务的时候会记录在系统中,客户端的私包也会在启动客户端的同时同步到客户端本地,这个过程中,会将客户端适用的代码和元数据放置在客户端对应的路径下,实现较快速和方便的加载的目的。

三.既然你这么做,我可以怎么做

上面说到,加载的方式和方法,那么,我们可以怎么快捷一点儿的使用呢?小编一时间想到的都写出来了,欢迎大家补充哈。1. server下的代码包部署后可以不重启客户端。因为服务端的代码包不同步到客户端,所以你在上次有问题的界面,先重现次问题,然后部署私包重启服务,客户端点重新连接,再来一次,你会发现直接就好用了哦!2. 私包中新增字段,可是botp中没有这个字段。这种问题是元数据加载导致的,元数据加载单据中存在的字段,后台的字段是加载后台的元数据实体的,而前台类似botp,编码规则等字段,是加载的前台元数据实体(应该性能会好点儿吧andsoso),所以如果元数据只部署在了后台而没部署在前台,在前台加载的时候就会看不见,so。。。类似的还有套打query。3. 私包部署后服务无法启动,这个问题曾经遇到过一次,在新的服务器上第一次部署私包很有可能出现这个情况,第一次嘛,服务器也会有点儿害羞的 (✿◡‿◡)。这种原因应该是bos加载私包的时候生成那个目录文件出错导致的,出门左转去找bos开发们来询问怎么办吧4. 私包部署后,又确信路径没错,但是私包不起作用。普遍是因为私包损坏导致的,这种情况比第三种还多,查看私包是否顺坏,你用好压打开,如果直接报损坏,恭喜你,问题找打了,在邮箱里再下载一个试试吧,一般是下载后在本地复制剪切或者粘贴到远程的服务器过程中导致损坏的,这个情况不多见,但还是可能的。如果好压打开没损坏,直接能打开到最后一个文件,那么建议下载一个GUI(反编译工具),把jar包丢进去,如果看见的是一堆一堆的英文天书,那么私包是没有损坏的,如果丢进去什么都没有,那么证明是class文件损坏了,再再邮箱里重现下载一个吧。如果私包也没坏,就是不起作用,联系对应发包的开发大大吧,虽然他也得找半天,不过他肯定会给你找到原因的。5. 其实这才是终极办法,最后的method,既然你不仁,别怪我不义(开玩笑)的终极办法。因为私包加载的时候是区分你部署包中具体内容的,也就是说不是你部署了它就完全加载,它也挑能用的来,不用的它不理,那么,既然你不理,我们就可以把拿来的私包不管什么三七二十一,四个目录统统放一边,那么ok,没问题,重启服务和客户端吧,好用的~
PS:好压只是举例,绝非广告宣传!~~

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0