我按照此处的指南从 Maven Archetype 创建了一个新的 Jersey HTTP 服务器。一切都很好,资源按预期返回字符串,这里是资源:
package com.example;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("myresource")
public class MyResource {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String getIt() {
return "Hello from my Server";
}
}
我按照此处的指南使用下载的 ArcGIS Runtime SDK。我创建了以下简单的 Java 类来确定几何(圆、矩形、多边形……)内部是否有一个点:
package geoC;
import com.esri.arcgisruntime.geometry.Geometry;
import com.esri.arcgisruntime.geometry.GeometryEngine;
import com.esri.arcgisruntime.geometry.Point;
import com.esri.arcgisruntime.geometry.SpatialReferences;
public class checkInside {
public static void main(String[] args) {
Point pt = new Point( -0.04473405456542423, 39.98776978688296, SpatialReferences.getWgs84());
String rectangleJson = "{\"xmin\":-0.05225854142896743,\"ymin\":39.98251082423102,\"xmax\":-0.02856927140946811,\"ymax\":39.993164240959295,\"spatialReference\":{\"wkid\":4326}}";
Geometry rectangle = (Geometry) Geometry.fromJson(rectangleJson);
//check if the point is inside the rectangle or not
boolean decision = GeometryEngine.contains( rectangle, pt );
System.out.println(decision);
}
}
此类工作正常,根据位置输入产生“真”或“假”。
当我尝试合并第一段和第二段代码时出现问题,我将第二段代码的内容放在第一段代码中:
package com.example;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import com.esri.arcgisruntime.geometry.Geometry;
import com.esri.arcgisruntime.geometry.GeometryEngine;
import com.esri.arcgisruntime.geometry.Point;
import com.esri.arcgisruntime.geometry.SpatialReferences;
@Path("myresource")
public class MyResource {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String getIt() {
Point pt = new Point( -0.04473405456542423, 39.98776978688296, SpatialReferences.getWgs84());
String rectangleJson = "{\"xmin\":-0.05225854142896743,\"ymin\":39.98251082423102,\"xmax\":-0.02856927140946811,\"ymax\":39.993164240959295,\"spatialReference\":{\"wkid\":4326}}";
Geometry rectangle = (Geometry) Geometry.fromJson(rectangleJson);
boolean decision = GeometryEngine.contains( rectangle, pt );
System.out.println(decision);
return "Hello from my Server";
}
}
mvn compile ---> 构建成功
mvn exec:java ---> 构建失败
错误是:无法在项目 TestArcGISJersey 上执行目标 org.codehaus.mojo:exec-maven-plugin:1.2.1:java (default-cli):执行 Java 类时发生异常。null:InvocationTargetException:com/esri/arcgisruntime/geometry/Geometry:com.esri.arcgisruntime.geometry.Geometry -> [帮助 1]
此外,如果我评论 2 行(布尔决策 = ... + System.out.println(...) )然后 mvn exec:java 成功执行,但是当我向资源发送 GET 请求时,请求失败而不是得到预期的字符串。
有人在这里有任何想法吗?非常感谢。