我正在做一个运行在JBoss 7.1.1上的遗留项目,我使用的是geotools库(14.5版本)。
当项目部署时,我得到很多这样的警告
WARN [org.jboss.as.server.deployment] (MSC service thread 1-2) JBAS015893: Encountered invalid class name 'org.geotools.referencing.operation.transform.WarpTransform2D$Provider' for service type 'org.geotools.referencing.operation.MathTransformProvider'
当我试图执行与geotools相关的代码时,我会返回
Problem asking Directory of spatial files (shapefiles) if it can process request:java.lang.NoSuchMethodError: org.geotools.data.DataUtilities.canProcess(Ljava/util/Map;[Lorg/geotools/data/DataAccessFactory$Param;)Z: java.lang.NoSuchMethodError: org.geotools.data.DataUtilities.canProcess(Ljava/util/Map;[Lorg/geotools/data/DataAccessFactory$Param;)Z
我怀疑这是一些库依赖的问题,但我不知道如何继续修复它。
项目使用ant作为构建工具。它构建一个EAR包,当展开该包时,它包含一个包含所有相关库的lib
文件夹,包括上面报告为有问题的那些库。我认为在EAR、JAR和WAR子包中包含的MANIFEST.MF
中没有什么值得一提的。
有什么办法可以调试和解决这个问题吗?
谢谢!
这可能是很多事情(如果看不到项目依赖关系,就很难确定是哪一个)。
- 您可能缺少一个引用jar -请参阅FAQ了解更多细节 在向WAR文件和JAR文件中添加JAR时,您可能无法正确处理
- 你可能需要额外的文件来让JBOSS工作,看看这个页面,看看GeoServer(它是使用GeoTools构建的)是如何做到的。
META-INF/services
文件-请参阅此常见问题解答。并且,您可能需要考虑升级到当前支持的版本,例如23。X或24.x.