目录
- 1.前言
- 2.GeoServer服务迁移一般流程
- 3.遇到问题
- 4.原因分析
- 5.解决办法
- 6.根本原因分析
- 7.总结
1.前言
这几天我在迁移 GeoServer 服务的时候发现,报了一个错,EncryptionOperationNotPossibleException ,这个错误的大概意思是加密操作不可用异常,经过我半天的折腾,总算解决了,来记录一下。
2.GeoServer服务迁移一般流程
GeoServer 服务迁移本来是很常见的操作,即把命名空间(workspace)对应名称的文件夹整个拷贝到另一个 GeoServer 下就可以了。然后如果是发布的文件,那么就改相应的文件路径,如果发布的是数据库,改数据库的连接参数就行。之前我们也一直都是这样操作的,毫无问题。
3.遇到问题
既然报错了,而且给出了详细的错误信息,那么查找相应的原因就是了。最怕的是,不正常,还不报错,那才令人头疼。
4.原因分析
我开始怀疑是版本问题导致的,第一台 GeoServer 和第二台 GeoServer 的版本不一致,导致了解密出现了问题。密码信息记录在woskspace 下 datastore.xml 文件中,见下图:
为了验证这一猜想,我又使用了相同版本的 GeoServer 的进行了测试,但是仍然会出现这个问题,这就有点令人匪夷所思了。到目前为止我们还是看不出来具体的问题。先接着往下走。
5.解决办法
解决办法就是把上图中 passwd 那一行给删了就行了,此时再重新启动 GeoServer 就不会报错了,数据存储也能顺利加载了,但是此时预览会报错,因此我们打开数据存储页面,修改相应的参数就行了。
6.根本原因分析
首先我们来看修改 passwd 前是:
crypt1:+4SscdUYqFAop5901oe8vw==
修改后 passwd 是:
crypt1:S6+aAp0jLEzeCR3ZIc4C5w==
发现了什么?两台 GeoServer 连接同一个 postgis ,他们加密后的密码是不一样的,所以之前我们才一直连不上,从而报错。原来这才是根本原因。哈哈哈,总算找到他了,他妹的,离了个大谱。
7.总结
本文我们通过对比两台 GeoServer 连接同一台 postgis ,最终发现了加密后结果不一致的问题,也解决了数据迁移过程中的报错问题,对我们的部署工作起到了很大的帮助。好了,本文就讲到这里,回见~