public static DefaultOAuth2AccessToken getToken(String userName, String password) { Form form = new Form(); form.add("username", userName); form.add("password", password); form.add("client_id", "nbiaRestAPIClient"); form.add("client_secret", "ItsBetweenUAndMe"); form.add("grant_type", "password"); ClientConfig cc = new DefaultClientConfig(); cc.getClasses().add(JacksonJsonProvider.class); Client client = Client.create(); WebResource resource = client.resource(APIURLHolder.getUrl() + "/nbia-api/oauth/token"); ClientResponse response = resource .accept(MediaType.APPLICATION_JSON) .type(MediaType.APPLICATION_FORM_URLENCODED) .post(ClientResponse.class, form); // check response status code if (response.getStatus() != 200) { throw new RuntimeException("Failed : HTTP error code : " + response.getStatus()); } // display response String output = response.getEntity(String.class); output = "[" + output + "]"; List<DefaultOAuth2AccessToken> myObjects; try { myObjects = mapper.readValue(output, new TypeReference<List<DefaultOAuth2AccessToken>>() {}); } catch (Exception e) { e.printStackTrace(); return null; } return myObjects.get(0); }