关于GeoTools的 Can't load a service for category "MathTransformFactory"解决方案

时间:2022-09-03 22:56:53

最近在使用GeoServer做GIS开发,使用过程中就出现了设置投影的时候,报出了标题上的错误。很郁闷……

public CoordinateReferenceSystem SetC() throws IOException {
           String wkt =
            "PROJCS[\"UTM_Zone_10N\", " + "GEOGCS[\"WGS84\", " + 
"DATUM[\"WGS84\", " +
            "SPHEROID[\"WGS84\", 6378137.0, 298.257223563]], " +
            "PRIMEM[\"Greenwich\", 0.0], " +
            "UNIT[\"degree\",0.017453292519943295], " +
            "AXIS[\"Longitude\",EAST], " + "AXIS[\"Latitude\",NORTH]], " +
            "PROJECTION[\"Transverse_Mercator\"], " +
            "PARAMETER[\"semi_minor\", 6356752.314245179], " +
            "PARAMETER[\"central_meridian\", -123.0], " +
            "PARAMETER[\"latitude_of_origin\", 0.0], " +
            "PARAMETER[\"scale_factor\", 0.9996], " +
            "PARAMETER[\"false_easting\", 500000.0], " +
            "PARAMETER[\"false_northing\", 0.0], " + 
"UNIT[\"metre\",1.0], " +
            "AXIS[\"x\",EAST], " + "AXIS[\"y\",NORTH]]";
              
       try {
              CoordinateReferenceSystem crs = CRS.parseWKT(wkt1);
              return crs;
        } catch (FactoryException parse) {
            throw (IOException)new IOException("Unabled to parse WKTEXT 
into a CRS:" +
                                               wkt).initCause(parse);
        }
    }

In line ...CRS.parseWKT(wkt1) was catched exception.

WARNING: Can't load a service for category "MathTransformFactory". Cause 
is "NoClassDefFoundError: javax/measure/converter/ConversionException".
Exception in thread "AWT-EventQueue-0" 
org.geotools.factory.FactoryNotFoundException: No factory of kind 
"MathTransformFactory" found.
    at 
org.geotools.factory.FactoryRegistry.getServiceProvider(FactoryRegistry.java:374)
    at 
org.geotools.factory.FactoryCreator.getServiceProvider(FactoryCreator.java:143)
    at 
org.geotools.referencing.ReferencingFactoryFinder.getFactory(ReferencingFactoryFinder.java:193)
    
atorg.geotools.referencing.ReferencingFactoryFinder.getMathTransformFactory(ReferencingFactoryFinder.java:503)
    at 
org.geotools.referencing.factory.ReferencingObjectFactory.getMathTransformFactory(ReferencingObjectFactory.java:152)
    at 
org.geotools.referencing.factory.ReferencingObjectFactory.createFromWKT(ReferencingObjectFactory.java:1084)
    at org.geotools.referencing.CRS.parseWKT(CRS.java:435)
    .......
    .......
 
最后才发现:
 
  少拷了两个与其相关的jar包:jsr-275-1.0-beta-2.jar和vecmath-1.3.1.jar。把这两个jar包拷贝到bin目录下就没有问题了