版权声明:转载请注明出处 https://blog.csdn.net/geol200709/article/details/84570923
需求:原来 Tomcat 是通过 docker 部署的 ,然后 geoserver 跑在该 Tomcat 上。最后发现,发布道路图层label(标签)时,由于道路名是中文的,label 无论怎么设置,显示都是乱码,各种搜索之后,都找不到原因,而在自己机子(win7)测试,竟然能正常显示。最后猜测,docker 没有中文字体,docker 玩得不深,不想继续折腾,就直接在 Ubuntu 里面安装 Tomcat (ubuntu 已装中文字体)。
接下来需要做的是,把之前的geoserver所有发布的服务迁移到新的。
geoserver 在Tomcat 安装很方便,直接把 geoserver.war
丢进 Tomcat,在 /tomcat/webapps/
下面便会自动生成 geoserver 文件夹。
-
把原来docker 下的Tomcat里面的
geoserver.war
拷贝到新的Tomcat,这样为了保证GeoServer版本一致,版本不一致的情况没测试过。 -
把geoserver目录的data下面所有文件删除,并将原来的data文件夹拷贝过来
$ sudo cp -a /docker_root/tomcat/webapps/geoserver/data/* /opt/tomcat8/webapps/geoserver/data
- 重启Tomcat
$ /opt/tomcat8/bin/shutdown.sh
$ /opt/tomcat8/bin/startup.sh
这时打开 http://localhost:8080/geoserver
。使用原来的账号登录,按理能出来原来所有图层及样式。但是没有。
猜想:应该是docker生成的文件,权限级别比较高,所以部分文件没有权限读取。于是执行以下命令:
$ sudo chmod -R 777 /opt/tomcat8/webapps/geoserver/data/
再次重启Tomcat,并重新登录,成功看到了原来的图层及样式
再查看原来的 label 图层,中文字体正常显示!done