public static <T> T post(Object requestObject, Class<T> responseClass, String path) {
    try {

      jerseyWebTarget.path(path);

      Response response =
          jerseyWebTarget
              .request(MediaType.APPLICATION_JSON_TYPE)
              .post(Entity.entity(requestObject, MediaType.APPLICATION_JSON_TYPE));

      if (response.getStatus() != 200) {
        throw new RuntimeException("Failed : HTTP error code : " + response.getStatus());
      }

      System.out.println("Output from Service for path " + path + " .... \n");
      T output = response.readEntity(responseClass);
      System.out.println(ToStringBuilder.reflectionToString(output));

      return output;
    } catch (Exception e) {

      e.printStackTrace();
      return null;
    }
  }
  /**
   * We can inject either proxy or a WebTarget for low level manipulations and assertions.
   *
   * @param webTarget configured resource ready for use, injected by Arquillian
   */
  @Test
  public void createCustomerBareJAXRSResource(
      @ArquillianResteasyResource("rest/customer") JerseyWebTarget webTarget) {
    //        Given
    final Invocation.Builder invocationBuilder = webTarget.request();
    final Invocation invocation =
        invocationBuilder.buildPost(Entity.entity(new Customer(), MediaType.APPLICATION_JSON_TYPE));

    //        When
    final Response response = invocation.invoke();

    //        Then
    assertEquals(deploymentURL + "rest/customer", webTarget.getUri().toASCIIString());
    assertEquals(MediaType.APPLICATION_JSON, response.getMediaType().toString());
    assertEquals(200, response.getStatus());
  }