You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Geoserver迁移至Tomcat后自定义字体字符无法正常加载问题

解决方案与排查步骤

1. 检查Tomcat用户的字体目录权限

Tomcat运行用户可能没有读取系统字体目录的权限,执行以下命令确认:

# 查看Tomcat运行用户
ps aux | grep tomcat9
# 检查字体目录及文件权限
ls -ld /usr/share/fonts/truetype/folder_name
ls -l /usr/share/fonts/truetype/folder_name/*.ttf

若权限不足,执行命令修改:

sudo chmod -R 644 /usr/share/fonts/truetype/folder_name/*.ttf
sudo chmod 755 /usr/share/fonts/truetype/folder_name

修改后重启Tomcat。

2. 在SLD中明确指定字体完整名称

系统字体的文件名和实际字体名称可能不一致,通过fc-list命令获取字体的正式名称:

fc-list | grep "你的字体关键词"

在SLD的<TextSymbolizer>中指定该名称:

<Font>
  <CssParameter name="font-family">字体正式名称</CssParameter>
  <CssParameter name="font-size">12</CssParameter>
</Font>

3. 配置JDK字体加载路径

编辑OpenJDK的字体配置文件/usr/lib/jvm/java-1.11.0-openjdk-amd64/jre/lib/fontconfig.properties(若不存在则创建),添加以下内容(替换为你的字体名称):

allfonts.1=你的字体正式名称
sequence.allfonts=default,1

保存后重启Tomcat。

4. 将字体直接放入GeoServer资源目录

将.ttf字体文件复制到/var/lib/tomcat9/webapps/geoserver/WEB-INF/fonts(无此文件夹则创建),然后修改GeoServer的web.xml文件(位于/var/lib/tomcat9/webapps/geoserver/WEB-INF/),添加字体目录配置:

<context-param>
  <param-name>GEOSERVER_FONT_DIR</param-name>
  <param-value>WEB-INF/fonts</param-value>
</context-param>

重启Tomcat后,在GeoServer管理界面的字体列表中确认字体已加载,再测试渲染效果。

5. 设置Tomcat JVM字体路径参数

编辑/etc/default/tomcat9文件,添加JVM参数指定字体路径:

JAVA_OPTS="${JAVA_OPTS} -Dsun.java2d.fontpath=/usr/share/fonts/truetype/folder_name"

保存后重启Tomcat。


内容的提问来源于stack exchange,提问作者Luis García

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 01:45:35