Я пытаюсь использовать GeoTool CoordinateReferenceSystem со следующим кодом:
try {
targetCRS = CRS.decode("EPSG:4326");
logger.info("\nTarget: " + targetCRS.toWKT());
} catch (NoSuchAuthorityCodeException e) {
logger.error(e.toString());
} catch (FactoryException e) {
logger.error(e.toString());
} catch (Exception e) {
logger.error(e.toString());
}
Это работает, когда я запускаю службу в vscode, но когда я развертываю ее в Kubernetes, я получаю:
31.03.2020 20:54:16,985 ОШИБКА (TrackRecordProjector.java:76) — org.opengis.referencing.NoSuchAuthorityCodeException: для объекта типа «EngineeringCRS» не найден код «EPSG:4326» из центра сертификации «EPSG».
Я предполагаю, что это как-то связано с базой данных HSQL, которая содержит эталонные системы.
Я проверил свой JAR, созданный с использованием:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
Папка META-INF/services в JAR содержит две разные записи для org.opengis.referencing.cs.CSAuthorityFactory. Я проверил на основе комментария на этом сайте другой вопрос (Geotools не может найти базу данных HSQL EPSG, выдает ошибку: NoSuchAuthorityCodeException). Однако я не знаю, что это значит и как это исправить.