2016-11-30 8 views
0

ガイドhereに従って、Maven Archetypeから新しいJersey HTTPサーバーを作成しました。すべてはここに、リソースが期待通りの文字列を返し、罰金である資源である:Grizzly HTTP Server(Jersey)でArcGIS Runtime SDK for Javaを組み込んだときにエラーが発生しました

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のランタイムSDKを使用するようにガイドhereを追いました。このクラスは、「true」または「false」の生産、正常に動作します

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); 
    } 
} 

:私はポイントジオメトリ(円、矩形、多角形、...)の内側かでかどうかを判断するには、以下の簡単なJavaクラスを作成しました場所の入力によって異なります。

問題は、私は、第1及びコードの第2部分を結合しようとしたとき、私は、コードの最初の部分のコードの第2部分の内容を入れて生じる:

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コンパイル--- > BUILDのSUCCESS

MVN幹部:javaの---> BUILD障害

エラーがあります。exec-mavenの-プラグイン:1.2.1:ゴールorg.codehaus.mojoを実行に失敗しましたJava(デフォルト-CLI )on TestArcGISJersey:Javaクラスの実行中に例外が発生しました。 null:InvocationTargetException:com/esri/arcgisruntime/geometry /ジオメトリ:com.esri.arcgisruntime.geometry.Geometry-> [Help 1]

また、2行のコメントを付けると(ブール値の決定= ... +システム.out.println(...))mvn exec:javaは正常に実行されますが、GET要求をリソースに送信すると、期待されるStringを取得するのではなく要求が失敗しました。

誰もがここにアイデアはありますか?どうもありがとうございました。

答えて

0

まだライセンスを取得していないようですが、すべてのArcGIS製品にライセンスが必要であることを覚えておいてください。

https://developers.arcgis.com/java/latest/guide/license-your-app.htm

// license with a license key 
ArcGISRuntimeEnvironment.setLicense("runtimelite,1000,rud#########,day-month-year,####################"); 

私は親切にあなたがArcGISの開発(JAVA 100.0.0のためのArcGISランタイム)があり"License your app"

あなたはこのような行が必要であることを見ることができますから、この手順に従うことをお勧め

Maven ArchetypeのJersey HTTPサーバーでArcGISランタイムを使用することについてよくわかりません。追加のテストが必要になり、常にサーバーログを調べます。

0

ArcGIS Runtime SDK for Javaは、サーバー環境で使用するAPIとして適していません。いくつかのAPIが機能するかもしれませんが、このユースケースはサポートされていません。 APIはサーバーコンテナでの使用のために設計されていません。

ただし、ここで説明した使用例については、こちらのJava Geometry APIオープンソースプロジェクトをご覧ください。https://github.com/Esri/geometry-api-java

しかし、これは現実のことであり、サーバ開発のための実行可能な解決策であると想定するのは当たり前のことです。とても大きな質問です!

関連する問題