List of usage examples for org.springframework.web.client RestTemplate getForObject
@Override @Nullable public <T> T getForObject(URI url, Class<T> responseType) throws RestClientException
From source file:com.concentricsky.android.khanacademy.data.remote.KAEntityFetcherTask.java
@Override protected T doInBackground(Void... arg0) { // call API and fetch an entity tree (commonly the tree rooted at the root topic) RestTemplate restTemplate = new RestTemplate(); if (consumer != null) { restTemplate.setRequestFactory(new SpringRequestFactory(consumer)); }//from w ww . j a v a2 s .c o m // TODO : Set up stream parsing. // RequestCallback callback = new RequestCallback() { // // public void doWithRequest(ClientHttpRequest request) // throws IOException { // // TODO Auto-generated method stub // // } // // }; // // ResponseExtractor<T> extractor = new ResponseExtractor<T>() { // // public T extractData(ClientHttpResponse response) // throws IOException { // // InputStream stream = response.getBody(); // // // return null; // } // // }; // // restTemplate.execute(url, HttpMethod.GET, requestCallback, responseExtractor) // Provide a converter to the restTemplate to get automagic json --> pojo deserialization. // Provide a mapper to the converter so we can register the custom Video deserializer. Otherwise, the default ObjectMapper would do fine. ObjectMapper mapper = new ObjectMapper(); mapper.registerModule(new VideoDeserializerModule()); MappingJacksonHttpMessageConverter converter = new MappingJacksonHttpMessageConverter(); converter.setObjectMapper(mapper); restTemplate.getMessageConverters().add(converter); ModelBase entity = null; try { entity = restTemplate.getForObject(this.url, ModelBase.class); } catch (HttpClientErrorException e) { e.printStackTrace(); exception = e; // meanwhile, entity is null, so we let that return naturally. } catch (ResourceAccessException e) { // This one happens on Nexus 7 if we have set a SpringRequestFactory but get no Auth challenge. // org.springframework.web.client.ResourceAccessException: I/O error: No authentication challenges found; nested exception is java.io.IOException: No authentication challenges found e.printStackTrace(); Log.e(LOG_TAG, "url was " + url); exception = e; } T result; try { result = (T) entity; } catch (ClassCastException e) { e.printStackTrace(); exception = e; result = null; } Log.d(LOG_TAG, "Response received. Returning entity."); return result; }
From source file:com.kixeye.chassis.transport.HybridServiceTest.java
@Test public void testHybridService() throws Exception { Map<String, Object> properties = new HashMap<String, Object>(); properties.put("websocket.enabled", "true"); properties.put("websocket.port", "" + SocketUtils.findAvailableTcpPort()); properties.put("websocket.hostname", "localhost"); properties.put("http.enabled", "true"); properties.put("http.port", "" + SocketUtils.findAvailableTcpPort()); properties.put("http.hostname", "localhost"); AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); StandardEnvironment environment = new StandardEnvironment(); environment.getPropertySources().addFirst(new MapPropertySource("default", properties)); context.setEnvironment(environment); context.register(PropertySourcesPlaceholderConfigurer.class); context.register(TransportConfiguration.class); context.register(TestCombinedService.class); WebSocketClient wsClient = new WebSocketClient(); RestTemplate httpClient = new RestTemplate(); try {/*w ww. j av a 2 s .co m*/ context.refresh(); final MessageSerDe serDe = context.getBean(ProtobufMessageSerDe.class); final WebSocketMessageRegistry messageRegistry = context.getBean(WebSocketMessageRegistry.class); messageRegistry.registerType("stuff", TestObject.class); wsClient.start(); httpClient.setInterceptors(Lists.newArrayList(LOGGING_INTERCEPTOR)); List<HttpMessageConverter<?>> messageConverters = new ArrayList<>(); for (MessageSerDe messageSerDe : context.getBeansOfType(MessageSerDe.class).values()) { messageConverters.add(new SerDeHttpMessageConverter(messageSerDe)); } messageConverters.add(new StringHttpMessageConverter(StandardCharsets.UTF_8)); httpClient.setMessageConverters(messageConverters); QueuingWebSocketListener webSocket = new QueuingWebSocketListener(serDe, messageRegistry, null); Session session = wsClient .connect(webSocket, new URI("ws://localhost:" + properties.get("websocket.port") + "/protobuf")) .get(5000, TimeUnit.MILLISECONDS); Envelope envelope = new Envelope("getStuff", null, null, null); session.getRemote().sendBytes(ByteBuffer.wrap(serDe.serialize(envelope))); TestObject response = webSocket.getResponse(5, TimeUnit.SECONDS); Assert.assertNotNull(response); Assert.assertEquals("stuff", response.value); byte[] rawStuff = serDe.serialize(new TestObject("more stuff")); envelope = new Envelope("setStuff", "stuff", null, ByteBuffer.wrap(rawStuff)); session.getRemote().sendBytes(ByteBuffer.wrap(serDe.serialize(envelope))); response = webSocket.getResponse(5, TimeUnit.SECONDS); Assert.assertNotNull(response); Assert.assertEquals("stuff", response.value); envelope = new Envelope("getStuff", null, null, null); session.getRemote().sendBytes(ByteBuffer.wrap(serDe.serialize(envelope))); response = webSocket.getResponse(5, TimeUnit.SECONDS); Assert.assertNotNull(response); Assert.assertEquals("more stuff", response.value); response = httpClient.getForObject( new URI("http://localhost:" + properties.get("http.port") + "/stuff/"), TestObject.class); Assert.assertNotNull(response); Assert.assertEquals("more stuff", response.value); response = httpClient.postForObject( new URI("http://localhost:" + properties.get("http.port") + "/stuff/"), new TestObject("even more stuff"), TestObject.class); Assert.assertNotNull(response); Assert.assertEquals("more stuff", response.value); response = httpClient.getForObject( new URI("http://localhost:" + properties.get("http.port") + "/stuff/"), TestObject.class); Assert.assertNotNull(response); Assert.assertEquals("even more stuff", response.value); } finally { try { wsClient.stop(); } finally { context.close(); } } }
From source file:org.springframework.cloud.stream.binder.rabbit.RabbitBinderCleanerTests.java
@Test public void testCleanStream() { final RabbitBindingCleaner cleaner = new RabbitBindingCleaner(); final RestTemplate template = RabbitManagementUtils.buildRestTemplate("http://localhost:15672", "guest", "guest"); final String stream1 = UUID.randomUUID().toString(); String stream2 = stream1 + "-1"; String firstQueue = null;/*from www. j a v a2 s . co m*/ CachingConnectionFactory connectionFactory = rabbitWithMgmtEnabled.getResource(); RabbitAdmin rabbitAdmin = new RabbitAdmin(connectionFactory); for (int i = 0; i < 5; i++) { String queue1Name = AbstractBinder.applyPrefix(BINDER_PREFIX, stream1 + ".default." + i); String queue2Name = AbstractBinder.applyPrefix(BINDER_PREFIX, stream2 + ".default." + i); if (firstQueue == null) { firstQueue = queue1Name; } URI uri = UriComponentsBuilder.fromUriString("http://localhost:15672/api/queues") .pathSegment("{vhost}", "{queue}").buildAndExpand("/", queue1Name).encode().toUri(); template.put(uri, new AmqpQueue(false, true)); uri = UriComponentsBuilder.fromUriString("http://localhost:15672/api/queues") .pathSegment("{vhost}", "{queue}").buildAndExpand("/", queue2Name).encode().toUri(); template.put(uri, new AmqpQueue(false, true)); uri = UriComponentsBuilder.fromUriString("http://localhost:15672/api/queues") .pathSegment("{vhost}", "{queue}") .buildAndExpand("/", AbstractBinder.constructDLQName(queue1Name)).encode().toUri(); template.put(uri, new AmqpQueue(false, true)); TopicExchange exchange = new TopicExchange(queue1Name); rabbitAdmin.declareExchange(exchange); rabbitAdmin.declareBinding(BindingBuilder.bind(new Queue(queue1Name)).to(exchange).with(queue1Name)); exchange = new TopicExchange(queue2Name); rabbitAdmin.declareExchange(exchange); rabbitAdmin.declareBinding(BindingBuilder.bind(new Queue(queue2Name)).to(exchange).with(queue2Name)); } final TopicExchange topic1 = new TopicExchange( AbstractBinder.applyPrefix(BINDER_PREFIX, stream1 + ".foo.bar")); rabbitAdmin.declareExchange(topic1); rabbitAdmin.declareBinding(BindingBuilder.bind(new Queue(firstQueue)).to(topic1).with("#")); String foreignQueue = UUID.randomUUID().toString(); rabbitAdmin.declareQueue(new Queue(foreignQueue)); rabbitAdmin.declareBinding(BindingBuilder.bind(new Queue(foreignQueue)).to(topic1).with("#")); final TopicExchange topic2 = new TopicExchange( AbstractBinder.applyPrefix(BINDER_PREFIX, stream2 + ".foo.bar")); rabbitAdmin.declareExchange(topic2); rabbitAdmin.declareBinding(BindingBuilder.bind(new Queue(firstQueue)).to(topic2).with("#")); new RabbitTemplate(connectionFactory).execute(new ChannelCallback<Void>() { @Override public Void doInRabbit(Channel channel) throws Exception { String queueName = AbstractBinder.applyPrefix(BINDER_PREFIX, stream1 + ".default." + 4); String consumerTag = channel.basicConsume(queueName, new DefaultConsumer(channel)); try { waitForConsumerStateNot(queueName, 0); cleaner.clean(stream1, false); fail("Expected exception"); } catch (RabbitAdminException e) { assertThat(e).hasMessageContaining("Queue " + queueName + " is in use"); } channel.basicCancel(consumerTag); waitForConsumerStateNot(queueName, 1); try { cleaner.clean(stream1, false); fail("Expected exception"); } catch (RabbitAdminException e) { assertThat(e).hasMessageContaining("Cannot delete exchange "); assertThat(e).hasMessageContaining("; it has bindings:"); } return null; } private void waitForConsumerStateNot(String queueName, int state) throws InterruptedException { int n = 0; URI uri = UriComponentsBuilder.fromUriString("http://localhost:15672/api/queues") .pathSegment("{vhost}", "{queue}").buildAndExpand("/", queueName).encode().toUri(); while (n++ < 100) { @SuppressWarnings("unchecked") Map<String, Object> queueInfo = template.getForObject(uri, Map.class); if (!queueInfo.get("consumers").equals(Integer.valueOf(state))) { break; } Thread.sleep(100); } assertThat(n < 100).withFailMessage("Consumer state remained at " + state + " after 10 seconds"); } }); rabbitAdmin.deleteExchange(topic1.getName()); // easier than deleting the binding rabbitAdmin.declareExchange(topic1); rabbitAdmin.deleteQueue(foreignQueue); connectionFactory.destroy(); Map<String, List<String>> cleanedMap = cleaner.clean(stream1, false); assertThat(cleanedMap).hasSize(2); List<String> cleanedQueues = cleanedMap.get("queues"); // should *not* clean stream2 assertThat(cleanedQueues).hasSize(10); for (int i = 0; i < 5; i++) { assertThat(cleanedQueues.get(i * 2)).isEqualTo(BINDER_PREFIX + stream1 + ".default." + i); assertThat(cleanedQueues.get(i * 2 + 1)).isEqualTo(BINDER_PREFIX + stream1 + ".default." + i + ".dlq"); } List<String> cleanedExchanges = cleanedMap.get("exchanges"); assertThat(cleanedExchanges).hasSize(6); // wild card *should* clean stream2 cleanedMap = cleaner.clean(stream1 + "*", false); assertThat(cleanedMap).hasSize(2); cleanedQueues = cleanedMap.get("queues"); assertThat(cleanedQueues).hasSize(5); for (int i = 0; i < 5; i++) { assertThat(cleanedQueues.get(i)).isEqualTo(BINDER_PREFIX + stream2 + ".default." + i); } cleanedExchanges = cleanedMap.get("exchanges"); assertThat(cleanedExchanges).hasSize(6); }
From source file:org.apache.griffin.core.job.JobServiceImpl.java
/** * call livy to update jobInstance table in mysql. * @param group//from www.j a v a 2 s . com * @param jobName */ public void syncInstancesOfJob(String group, String jobName) { //update all instance info belongs to this group and job. List<JobInstance> jobInstanceList = jobInstanceRepo.findByGroupNameAndJobName(group, jobName); for (JobInstance jobInstance : jobInstanceList) { if (!LivySessionStates.isActive(jobInstance.getState())) { continue; } String uri = sparkJobProps.getProperty("livy.uri") + "/" + jobInstance.getSessionId(); RestTemplate restTemplate = new RestTemplate(); String resultStr = null; try { resultStr = restTemplate.getForObject(uri, String.class); } catch (Exception e) { LOGGER.error("spark session " + jobInstance.getSessionId() + " has overdue, set state as unknown!\n" + e); //if server cannot get session from Livy, set State as unknown. jobInstance.setState(LivySessionStates.State.unknown); jobInstanceRepo.save(jobInstance); continue; } TypeReference<HashMap<String, Object>> type = new TypeReference<HashMap<String, Object>>() { }; HashMap<String, Object> resultMap; try { resultMap = GriffinUtil.toEntity(resultStr, type); } catch (IOException e) { LOGGER.error("jobInstance jsonStr convert to map failed. " + e); continue; } try { if (resultMap != null && resultMap.size() != 0) { jobInstance.setState(LivySessionStates.State.valueOf(resultMap.get("state").toString())); jobInstance.setAppId(resultMap.get("appId").toString()); jobInstance.setAppUri(sparkJobProps.getProperty("spark.uri") + "/cluster/app/" + resultMap.get("appId").toString()); } } catch (Exception e) { LOGGER.warn(group + "," + jobName + "job Instance has some null field (state or appId). " + e); continue; } jobInstanceRepo.save(jobInstance); } }
From source file:org.apache.servicecomb.demo.jaxrs.client.CodeFirstRestTemplateJaxrs.java
private void testDefaultPath(RestTemplate template, String cseUrlPrefix) { int result = template.getForObject(cseUrlPrefix.substring(0, cseUrlPrefix.length() - 1), Integer.class); TestMgr.check(100, result);/*from w ww. ja va 2 s. co m*/ }
From source file:org.apache.servicecomb.demo.springmvc.client.CodeFirstRestTemplateSpringmvc.java
private void testFallback(RestTemplate template, String cseUrlPrefix) { long start = System.currentTimeMillis(); String result = template.getForObject(cseUrlPrefix + "/fallback/returnnull/hello", String.class); TestMgr.check(result, "hello"); result = template.getForObject(cseUrlPrefix + "/fallback/returnnull/throwexception", String.class); TestMgr.check(result, null);/* w ww .j a va 2s. c o m*/ result = template.getForObject(cseUrlPrefix + "/fallback/throwexception/hello", String.class); TestMgr.check(result, "hello"); try { result = template.getForObject(cseUrlPrefix + "/fallback/throwexception/throwexception", String.class); TestMgr.check(false, true); } catch (Exception e) { TestMgr.check(e.getCause().getMessage(), BizkeeperExceptionUtils .createBizkeeperException(BizkeeperExceptionUtils.SERVICECOMB_BIZKEEPER_FALLBACK, null, "springmvc.codeFirst.fallbackThrowException") .getMessage()); } result = template.getForObject(cseUrlPrefix + "/fallback/fromcache/hello", String.class); TestMgr.check(result, "hello"); result = template.getForObject(cseUrlPrefix + "/fallback/fromcache/hello", String.class); TestMgr.check(result, "hello"); result = template.getForObject(cseUrlPrefix + "/fallback/fromcache/throwexception", String.class); TestMgr.check(result, "hello"); result = template.getForObject(cseUrlPrefix + "/fallback/force/hello", String.class); TestMgr.check(result, "mockedreslut"); // This test case is fallback testing and will return null if failed. // In order to check if failed due to some unexpected timeout exception, check the time. TestMgr.check(System.currentTimeMillis() - start < 10000, true); }
From source file:org.apache.servicecomb.demo.springmvc.client.CodeFirstRestTemplateSpringmvc.java
private void testResponseEntity(String microserviceName, RestTemplate template, String cseUrlPrefix) { Map<String, Object> body = new HashMap<>(); Date date = new Date(); body.put("date", date); CseHttpEntity<Map<String, Object>> httpEntity = new CseHttpEntity<>(body); httpEntity.addContext("contextKey", "contextValue"); String srcName = RegistryUtils.getMicroservice().getServiceName(); ResponseEntity<Date> responseEntity = template.exchange(cseUrlPrefix + "responseEntity", HttpMethod.POST, httpEntity, Date.class); TestMgr.check(date, responseEntity.getBody()); TestMgr.check("h1v " + srcName, responseEntity.getHeaders().getFirst("h1")); TestMgr.check("h2v " + srcName, responseEntity.getHeaders().getFirst("h2")); checkStatusCode(microserviceName, 202, responseEntity.getStatusCode()); responseEntity = template.exchange(cseUrlPrefix + "responseEntity", HttpMethod.PATCH, httpEntity, Date.class); TestMgr.check(date, responseEntity.getBody()); TestMgr.check("h1v " + srcName, responseEntity.getHeaders().getFirst("h1")); TestMgr.check("h2v " + srcName, responseEntity.getHeaders().getFirst("h2")); checkStatusCode(microserviceName, 202, responseEntity.getStatusCode()); int retryResult = template.getForObject(cseUrlPrefix + "retrySuccess?a=2&b=3", Integer.class); TestMgr.check(retryResult, 5);//from w w w .j a v a2 s.c o m }
From source file:org.apache.servicecomb.demo.springmvc.server.CodeFirstSpringmvc.java
@RequestMapping(path = "/prometheusForTest", method = RequestMethod.GET) public String prometheusForTest() { RestTemplate defaultRestTemplate = new RestTemplate(); return defaultRestTemplate.getForObject("http://localhost:9696/metrics", String.class); }
From source file:org.cloudfoundry.identity.uaa.cache.ExpiringUrlCache.java
@Override public byte[] getUrlContent(String uri, final RestTemplate template) { try {/*from w w w . j ava 2 s.c o m*/ final URI netUri = new URI(uri); CacheEntry entry = cache.getIfPresent(uri); byte[] metadata = entry != null ? entry.getData() : null; long now = ticker.getCurrentTimeMillis(); if (metadata == null || (now - entry.getTimeEntered()) > this.expiringTimeMillis) { logger.debug("Fetching metadata for " + uri); metadata = template.getForObject(netUri, byte[].class); cache.put(uri, new CacheEntry(now, metadata)); } return metadata; } catch (RestClientException x) { logger.warn("Unable to fetch metadata for " + uri, x); return null; } catch (URISyntaxException e) { throw new IllegalArgumentException(e); } }
From source file:org.springframework.cloud.stream.binder.rabbit.admin.RabbitBindingCleaner.java
private List<Map<String, Object>> listAllQueues(String adminUri, String vhost, RestTemplate restTemplate) { URI uri = UriComponentsBuilder.fromUriString(adminUri + "/api").pathSegment("queues", "{vhost}") .buildAndExpand(vhost).encode().toUri(); @SuppressWarnings("unchecked") List<Map<String, Object>> queues = restTemplate.getForObject(uri, List.class); return queues; }