<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Invoking REST API from Java using Jersey in ArcGIS REST APIs and Services Questions</title>
    <link>https://community.esri.com/t5/arcgis-rest-apis-and-services-questions/invoking-rest-api-from-java-using-jersey/m-p/167143#M820</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm working on a proof-of-concept for adding features using the REST API. The first step I tried is to enter the following into the test page to add a Point:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;url: &lt;/SPAN&gt;&lt;PRE class="plain" name="code"&gt;http://&amp;lt;host&amp;gt;/ArcGIS/rest/services/test/FeatureServer/1/addFeatures&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;SPAN&gt;request: &lt;/SPAN&gt;&lt;PRE class="plain" name="code"&gt;[{"geometry":{"x":102.0,"y":0.5},"attributes":{"prop1":"value1","prop2":"value2"}}]&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;SPAN&gt;response: &lt;/SPAN&gt;&lt;PRE class="plain" name="code"&gt;{"addResults" : [{"objectId" : 342, "globalId" : null, "success" : true}]}&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Then I go to the map and see the Point I just added. So it appears to work.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The next step is to do the same thing from Java code which is itself a REST service: so from my REST service I call the addFeatures REST service using Jersey. I'm not going to post the entire source code but just some pertinent snippets.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The code below shows how I create a WebResource with the url for the addFeatures service as above.&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; import javax.ws.rs.core.MediaType;

&amp;nbsp;&amp;nbsp;&amp;nbsp; import org.codehaus.jackson.JsonNode;
&amp;nbsp;&amp;nbsp;&amp;nbsp; import org.codehaus.jackson.jaxrs.JacksonJsonProvider;
&amp;nbsp;&amp;nbsp;&amp;nbsp; import org.codehaus.jackson.node.ArrayNode;
&amp;nbsp;&amp;nbsp;&amp;nbsp; import org.codehaus.jackson.node.JsonNodeFactory;
&amp;nbsp;&amp;nbsp;&amp;nbsp; import org.codehaus.jackson.node.ObjectNode;

&amp;nbsp;&amp;nbsp;&amp;nbsp; import com.sun.jersey.api.client.Client;
&amp;nbsp;&amp;nbsp;&amp;nbsp; import com.sun.jersey.api.client.WebResource;
&amp;nbsp;&amp;nbsp;&amp;nbsp; import com.sun.jersey.api.client.config.ClientConfig;
&amp;nbsp;&amp;nbsp;&amp;nbsp; import com.sun.jersey.api.client.config.DefaultClientConfig;

&amp;nbsp;&amp;nbsp;&amp;nbsp; private WebResource getResource(String url)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ClientConfig config = new DefaultClientConfig();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; config.getClasses().add(JacksonJsonProvider.class);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Client client = Client.create(config);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return client.resource(url);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The following code shows how I invoke the addFeatures service. request is a JsonNode (I'm using Jackson). I print out request to verify that I'm passing a valid request, in this case I get the same string I entered above into the test page.&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("request: " + request);
&amp;nbsp;&amp;nbsp;&amp;nbsp; String response =
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; resource
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .queryParam("f", "json")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .entity(request, MediaType.APPLICATION_JSON)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .post(String.class);
&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("ArcGIS response: " + response);&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;However, the response I get is:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;{"error":{"code":400,"message":"Unable to complete&amp;nbsp; operation.","details":["Invalid parameters"]}}&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This is my first time calling a REST service from Java. I hope there is a simple explanation why I'm getting an error. Is there a log I can see on the ArcGIS server to see what input it's getting from my Java client?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Rico&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 05 Nov 2010 02:34:25 GMT</pubDate>
    <dc:creator>RicoLelina</dc:creator>
    <dc:date>2010-11-05T02:34:25Z</dc:date>
    <item>
      <title>Invoking REST API from Java using Jersey</title>
      <link>https://community.esri.com/t5/arcgis-rest-apis-and-services-questions/invoking-rest-api-from-java-using-jersey/m-p/167143#M820</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm working on a proof-of-concept for adding features using the REST API. The first step I tried is to enter the following into the test page to add a Point:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;url: &lt;/SPAN&gt;&lt;PRE class="plain" name="code"&gt;http://&amp;lt;host&amp;gt;/ArcGIS/rest/services/test/FeatureServer/1/addFeatures&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;SPAN&gt;request: &lt;/SPAN&gt;&lt;PRE class="plain" name="code"&gt;[{"geometry":{"x":102.0,"y":0.5},"attributes":{"prop1":"value1","prop2":"value2"}}]&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;SPAN&gt;response: &lt;/SPAN&gt;&lt;PRE class="plain" name="code"&gt;{"addResults" : [{"objectId" : 342, "globalId" : null, "success" : true}]}&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Then I go to the map and see the Point I just added. So it appears to work.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The next step is to do the same thing from Java code which is itself a REST service: so from my REST service I call the addFeatures REST service using Jersey. I'm not going to post the entire source code but just some pertinent snippets.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The code below shows how I create a WebResource with the url for the addFeatures service as above.&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; import javax.ws.rs.core.MediaType;

&amp;nbsp;&amp;nbsp;&amp;nbsp; import org.codehaus.jackson.JsonNode;
&amp;nbsp;&amp;nbsp;&amp;nbsp; import org.codehaus.jackson.jaxrs.JacksonJsonProvider;
&amp;nbsp;&amp;nbsp;&amp;nbsp; import org.codehaus.jackson.node.ArrayNode;
&amp;nbsp;&amp;nbsp;&amp;nbsp; import org.codehaus.jackson.node.JsonNodeFactory;
&amp;nbsp;&amp;nbsp;&amp;nbsp; import org.codehaus.jackson.node.ObjectNode;

&amp;nbsp;&amp;nbsp;&amp;nbsp; import com.sun.jersey.api.client.Client;
&amp;nbsp;&amp;nbsp;&amp;nbsp; import com.sun.jersey.api.client.WebResource;
&amp;nbsp;&amp;nbsp;&amp;nbsp; import com.sun.jersey.api.client.config.ClientConfig;
&amp;nbsp;&amp;nbsp;&amp;nbsp; import com.sun.jersey.api.client.config.DefaultClientConfig;

&amp;nbsp;&amp;nbsp;&amp;nbsp; private WebResource getResource(String url)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ClientConfig config = new DefaultClientConfig();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; config.getClasses().add(JacksonJsonProvider.class);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Client client = Client.create(config);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return client.resource(url);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The following code shows how I invoke the addFeatures service. request is a JsonNode (I'm using Jackson). I print out request to verify that I'm passing a valid request, in this case I get the same string I entered above into the test page.&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("request: " + request);
&amp;nbsp;&amp;nbsp;&amp;nbsp; String response =
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; resource
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .queryParam("f", "json")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .entity(request, MediaType.APPLICATION_JSON)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .post(String.class);
&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("ArcGIS response: " + response);&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;However, the response I get is:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;{"error":{"code":400,"message":"Unable to complete&amp;nbsp; operation.","details":["Invalid parameters"]}}&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This is my first time calling a REST service from Java. I hope there is a simple explanation why I'm getting an error. Is there a log I can see on the ArcGIS server to see what input it's getting from my Java client?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Rico&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 05 Nov 2010 02:34:25 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-rest-apis-and-services-questions/invoking-rest-api-from-java-using-jersey/m-p/167143#M820</guid>
      <dc:creator>RicoLelina</dc:creator>
      <dc:date>2010-11-05T02:34:25Z</dc:date>
    </item>
    <item>
      <title>Re: Invoking REST API from Java using Jersey</title>
      <link>https://community.esri.com/t5/arcgis-rest-apis-and-services-questions/invoking-rest-api-from-java-using-jersey/m-p/167144#M821</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I figured out my problem after looking at the HTTP traffic. The features data is passed in as a query parameter and not as form data.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;String response =
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; resource
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .queryParam("f", "json")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .queryParam("features", request.toString())
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .post(String.class);&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 08:43:02 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-rest-apis-and-services-questions/invoking-rest-api-from-java-using-jersey/m-p/167144#M821</guid>
      <dc:creator>RicoLelina</dc:creator>
      <dc:date>2021-12-11T08:43:02Z</dc:date>
    </item>
  </channel>
</rss>

