Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
This page details the steps necessary to create a REST client, using eclipse, that is able to communicate with the holiday web service.

...

1.  Create a new project using eclipse

2.  Add the Jersey jars to the buildpath.

2.  Go to Run Configurations

  • a.  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):

...

  For the client I used [Jersey|http://jersey.java.net/], and downloaded the client and core jars [here|http://jersey.java.net/nonav/documentation/latest/chapter_deps.html#core_client].

*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|http://magicmonster.com/kb/prg/java/ssl/pkix_path_building_failed.html],
            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)

...

3.  Ensure the web service is running, and then run the project. This should generate the necessary files for creating a client.

PKIX path building error:
IF there is a PKIX path building failed: SunCertPathBuilderException the web services security certificate has not been added to Java's cacerts file (file of trusted websites). This is required as our test servers are using a self-signed certificate which is not viewed as a valid certificate by Java.
Adding the certificate can be done as described here.

This could also be because you are not running the project with the arguments:

                            -Djavax.net.ssl.trustStore=/path/to/keystore
                            -Djavax.net.ssl.trustStorePassword=changeit (default password is changeit)

...



*4.  Create the main method*

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