因为was本身的缓存机制,如果不正确的删除的应用war包后,重新发布时,可能会提示:配置库中已存在应用程序导致发布失败。
项目中,同时存在标准版本ebank以及多个独立版本ebank_xxx,某天发现ebank被删除,重新发布时,遇到was报错“配置库中已存在应用程序”:
这时需要删除ebank缓存,同时避免删除其他ebank_xxx应用配置。
执行命令在was配置目录查找“ebank.war”配置
cd /washome/IBM/WebSphere/AppServer/profiles/AppSrv01/
find . -name 'ebank.war'
查询结果如下
./wstemp/48690/workspace/cells/lfyhcell/applications/ebank.ear.ear/deployments/ebank.ear/ebank.war
./temp/wscache/ebank_YBD/ebank.war
./temp/wscache/ebank_YZM/ebank.war
./temp/wscache/ebank_pwd/ebank.war
./temp/wscache/ebank.ear/ebank.war
./temp/lfyhnode/server1/ebank_YBD/ebank.war
./temp/lfyhnode/server1/ebank_SDJ/ebank.war
./temp/lfyhnode/server1/ebank_YSD/ebank.war
./temp/lfyhnode/server1/ebank_YZM/ebank.war
./temp/lfyhnode/server1/ebank_pwd/ebank.war
./temp/lfyhnode/server1/ebank.ear/ebank.war
./config/cells/lfyhcell/applications/ebank_pwd.ear/deployments/ebank_pwd/ebank.war
./config/cells/lfyhcell/applications/ebank_YZM.ear/deployments/ebank_YZM/ebank.war
./config/cells/lfyhcell/applications/ebank.ear.ear/deployments/ebank.ear/ebank.war
./config/cells/lfyhcell/applications/ebank_YBD.ear/deployments/ebank_YBD/ebank.war
./config/cells/lfyhcell/applications/ebank.ear/deployments/ebank/ebank.war
./config/temp/download/cells/lfyhcell/applications/ebank_pwd.ear/deployments/ebank_pwd/ebank.war
./config/temp/download/cells/lfyhcell/applications/ebank_YSD.ear/deployments/ebank_YSD/ebank.war
./config/temp/download/cells/lfyhcell/applications/ebank_YZM.ear/deployments/ebank_YZM/ebank.war
./config/temp/download/cells/lfyhcell/applications/ebank.ear.ear/deployments/ebank.ear/ebank.war
./config/temp/download/cells/lfyhcell/applications/ebank_SDJ.ear/deployments/ebank_SDJ/ebank.war
./config/temp/download/cells/lfyhcell/applications/ebank_YBD.ear/deployments/ebank_YBD/ebank.war
./config/temp/download/cells/lfyhcell/applications/ebank.ear/deployments/ebank/ebank.war
删除与ebank有关的配置
rm -rf ./config/cells/lfyhcell/applications/ebank.ear/deployments/ebank/ebank.war
rm -rf ./config/temp/download/cells/lfyhcell/applications/ebank.ear/deployments/ebank/ebank.war
重启was服务,试图发布应用,依然报错。
继续查找配置ebank
cd /washome/IBM/WebSphere/AppServer/profiles/AppSrv01
find . -name 'ebank'
查找结果
./wstemp/2989316/workspace/cells/lfyhcell/blas/ebank
./wstemp/2989316/workspace/cells/lfyhcell/applications/ebank.ear/deployments/ebank
./wstemp/2989316/workspace/cells/lfyhcell/cus/ebank
./wstemp/0/workspace/cells/lfyhcell/blas/ebank
./wstemp/0/workspace/cells/lfyhcell/applications/ebank.ear/deployments/ebank
./wstemp/0/workspace/cells/lfyhcell/cus/ebank
./wstemp/112902979/workspace/cells/lfyhcell/blas/ebank
./wstemp/112902979/workspace/cells/lfyhcell/applications/ebank.ear/deployments/ebank
./wstemp/112902979/workspace/cells/lfyhcell/cus/ebank
./wstemp/62130991/workspace/cells/lfyhcell/blas/ebank
./wstemp/62130991/workspace/cells/lfyhcell/applications/ebank.ear/deployments/ebank
./wstemp/62130991/workspace/cells/lfyhcell/cus/ebank
./wstemp/-1422235966/workspace/cells/lfyhcell/blas/ebank
./wstemp/-1422235966/workspace/cells/lfyhcell/applications/ebank.ear/deployments/ebank
./wstemp/-1422235966/workspace/cells/lfyhcell/cus/ebank
./wstemp/112902980/workspace/cells/lfyhcell/blas/ebank
./wstemp/112902980/workspace/cells/lfyhcell/applications/ebank.ear/deployments/ebank
./wstemp/112902980/workspace/cells/lfyhcell/cus/ebank
./wstemp/48690/workspace/cells/lfyhcell/blas/ebank
./wstemp/48690/workspace/cells/lfyhcell/applications/ebank.ear/deployments/ebank
./wstemp/48690/workspace/cells/lfyhcell/cus/ebank
./wstemp/3680/workspace/cells/lfyhcell/blas/ebank
./wstemp/3680/workspace/cells/lfyhcell/applications/ebank.ear/deployments/ebank
./wstemp/3680/workspace/cells/lfyhcell/cus/ebank
./config/cells/lfyhcell/blas/ebank
./config/cells/lfyhcell/applications/ebank.ear/deployments/ebank
./config/cells/lfyhcell/applications/ebank.ear/deltas/ebank
./config/cells/lfyhcell/cus/ebank
./config/temp/download/cells/lfyhcell/blas/ebank
./config/temp/download/cells/lfyhcell/applications/ebank.ear/deployments/ebank
./config/temp/download/cells/lfyhcell/cus/ebank
经核实,均为ebank相关配置,执行删除操作
find . -name 'ebank'|xargs rm -rf
重启was服务,发布应用成功!
注意事项:
1.正确的删除操作是在was控制台点击卸载按钮操作,而不是在Linux系统执行删除命令删除war包,这样才能清除缓存。
2.执行find . -name ‘xxx’|xargs rm -rf删除命令删除配置前,先检查一遍,无误后再删除。