使用docker启动tomcat后,再放到geoserver发现,Java Rendering Engine Unknown
GeoServer 2.28.x 及更高版本要求 Java 版本至少为 17。GeoServer 已通过测试,完全支持 Java 17。
在 Tomcat 9.0.55 上的部署测试已成功。
GeoServer 代码依赖于多个库来访问 JDK 内部资源。当作为 Web 应用程序运行时,这似乎无关紧要。但是,如有需要,以下是构建过程中使用的所有打开项的完整列表:
bash
--add-exports=java.desktop/sun.awt.image=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.desktop/java.awt.font=ALL-UNNAMED --add-opens=java.desktop/sun.awt.image=ALL-UNNAMED --add-opens=java.naming/com.sun.jndi.ldap=ALL-UNNAMED --add-opens=java.desktop/sun.java2d.pipe=ALL-UNNAMED
由于我是使用docker启动的tomcat 配置修改如下:
bash
environment:
TZ: Asia/Shanghai
CATALINA_OPTS: >-
-Dorg.geoserver.task.executor.maxPoolSize=200
-Dorg.geoserver.task.executor.corePoolSize=50
JAVA_OPTS: >-
-Xms32g -Xmx32g -XX:+UseG1GC -XX:MaxMetaspaceSize=1g -Djava.awt.headless=true
-DGEOSERVER_DATA_DIR=/data/geoserver_data
-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8
-Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true
-Dorg.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH=true
-DENABLE_HINTS=true -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Dorg.geotools.coverage.jaiext.enabled=true
--add-exports=java.desktop/sun.awt.image=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.desktop/java.awt.font=ALL-UNNAMED --add-opens=java.desktop/sun.awt.image=ALL-UNNAMED --add-opens=java.naming/com.sun.jndi.ldap=ALL-UNNAMED --add-opens=java.desktop/sun.java2d.pipe=ALL-UNNAMED
