...
This
...
page
...
details
...
the
...
steps
...
necessary
...
to
...
create
...
a
...
REST
...
client,
...
using
...
eclipse,
...
that
...
is
...
able
...
to
...
communicate
...
with
...
the
...
holiday
...
web
...
service.
...
For the client I used Jersey, and downloaded the client and core jars here.
1. Create a new project using eclipse
2. Add the Jersey jars to the buildpath.
3. Go to run configurations and add the Jersey jars to the classpath
NOTE: When creating a client for the test server it is required that you add the test site's certificate to the keystore as described here,
and then run the project with arguments (In Eclipse these should be added to the VM arguments of your project's run
configuration):
-Djavax.net.ssl.trustStore=/path/to/keystore
...
-Djavax.net.ssl.trustStorePassword=changeit
...
(default
...
password
...
is
...
changeit)
...
4.
...
Create the main method
import javax.ws.rs.core.MultivaluedMap;
...
import
...
com.sun.jersey.api.client.Client;
...
import
...
com.sun.jersey.api.client.ClientResponse;
...
import
...
com.sun.jersey.api.client.WebResource;
...
import
...
com.sun.jersey.core.util.MultivaluedMapImpl;
...
public
...
class
...
holidayClientMain
...
{
public static void main(String
...
[
...
]
...
args)
...
{
try {
Client client = Client.create();
...
WebResource webResource = client.resource("https://www.test.hawaii.edu/its/ws/holiday/rest/closest");
...
MultivaluedMap<String, String> parameters = new MultivaluedMapImpl();
parameters.add("date",
...
"2012-01-01");
...
parameters.add("isObserved",
...
"true");
...
ClientResponse response = webResource.queryParams(parameters).accept("application.json").get(ClientResponse.class);
...
if (response.getStatus()
...
!=
...
200)
...
{
throw new RuntimeException("Failed
...
:
...
HTTP
...
error
...
code
...
:
...
"
...
+
...
response.getStatus());
...
}
String output = response.getEntity(String.class);
...
System.out.println("Output
...
from
...
Server
...
....
...
\n");
...
System.out.println(output);
...
}
catch (Exception e) {
e.printStackTrace();
...
}
}
}