Im den oben genannten Fehler bekommen:ERR: Es kann keine Antwort extrahieren: keinen geeigneten HttpMessageConverter
Controller:
@Component
public class NiftyController {
@Autowired
private RestProxyTemplate restTemplate;
@Autowired
private NiftyDAO niftyDAO;
int count=1;
@Scheduled(fixedDelay=5000)
//@Scheduled(cron="*/5 * * * * ?")
public void loadNiftyData() throws URISyntaxException {
System.out.println("Method executed at every 5 seconds. Current time is : "+ new Date());
System.out.println("Executed " +count++ +" Times");
URI uri = new URI("https://www.nseindia.com/live_market/dynaContent/live_watch/stock_watch/niftyStockWatch.json");
ResponseEntity<NiftyDTO> niftyResponse = restTemplate.getRestTemplate().exchange(uri, HttpMethod.GET, null, NiftyDTO.class);
NiftyDTO nifties = niftyResponse.getBody();
System.out.println(nifties.getTrdVolumesum());
//List<Nifty> saveNifty = niftyDAO.save(nifties);
//return (Nifty) nifties;
}
}
Ich mag die Daten aus dem obigen Link holen und in der Datenbank speichern
DTO Klasse
@JsonIgnoreProperties({"latestData","data"})
public class NiftyDTO {
private float trdVolumesumMil;
private String time;
private int declines;
private float trdValueSum;
private float trdValueSumMil;
private int unchanged;
private float trdVolumesum;
private int advances;
public float getTrdVolumesumMil() {
return trdVolumesumMil;
}
public void setTrdVolumesumMil(float trdVolumesumMil) {
this.trdVolumesumMil = trdVolumesumMil;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public int getDeclines() {
return declines;
}
public void setDeclines(int declines) {
this.declines = declines;
}
public float getTrdValueSum() {
return trdValueSum;
}
public void setTrdValueSum(float trdValueSum) {
this.trdValueSum = trdValueSum;
}
public float getTrdValueSumMil() {
return trdValueSumMil;
}
public void setTrdValueSumMil(float trdValueSumMil) {
this.trdValueSumMil = trdValueSumMil;
}
public int getUnchanged() {
return unchanged;
}
public void setUnchanged(int unchanged) {
this.unchanged = unchanged;
}
public float getTrdVolumesum() {
return trdVolumesum;
}
public void setTrdVolumesum(float trdVolumesum) {
this.trdVolumesum = trdVolumesum;
}
public int getAdvances() {
return advances;
}
public void setAdvances(int advances) {
this.advances = advances;
}
}
RestProxyTemplate:
@Component
public final class RestProxyTemplate {
RestTemplate restTemplate;
@PostConstruct
public void init(){
restTemplate = new RestTemplate();
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
InetSocketAddress address = new InetSocketAddress("MY PROXY GOES HERE",8080);
Proxy proxy = new Proxy(Proxy.Type.HTTP,address);
factory.setProxy(proxy);
restTemplate.setRequestFactory(factory);
}
public RestTemplate getRestTemplate() {
return restTemplate;
}
}
Fehlerprotokoll:
Method executed at every 5 seconds. Current time is : Mon Jun 05 10:45:38 IST 2017
Executed 1 Times
2017-06-05 10:45:38.141 INFO 108988 --- [ main]
s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8090 (http)
2017-06-05 10:45:38.153 INFO 108988 --- [ main]
com.MyApplication.portfolio.PMSApplication : Started PMSApplication in 5.041 seconds (JVM running for 5.573)
2017-06-05 10:45:39.028 ERROR 108988 --- [pool-2-thread-1] o.s.s.s.TaskUtils$LoggingErrorHandler : Unexpected error occurred in scheduled task.
org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type [class com.MyApplication.portfolio.controller.NiftyDTO] and content type [text/plain]
at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:109) ~[spring-web-4.2.8.RELEASE.jar:4.2.8.RELEASE]
at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:835) ~[spring-web-4.2.8.RELEASE.jar:4.2.8.RELEASE]
at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:819) ~[spring-web-4.2.8.RELEASE.jar:4.2.8.RELEASE]
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:599) ~[spring-web-4.2.8.RELEASE.jar:4.2.8.RELEASE]
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:572) ~[spring-web-4.2.8.RELEASE.jar:4.2.8.RELEASE]
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:493) ~[spring-web-4.2.8.RELEASE.jar:4.2.8.RELEASE]
at com.MyApplication.portfolio.controller.NiftyController.loadNiftyData(NiftyController.java:44) ~[classes/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_92]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_92]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_92]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_92]
at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:65) ~[spring-context-4.2.8.RELEASE.jar:4.2.8.RELEASE]
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) ~[spring-context-4.2.8.RELEASE.jar:4.2.8.RELEASE]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_92]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [na:1.8.0_92]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_92]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [na:1.8.0_92]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_92]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_92]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_92]
Im erhalten die No Sutiable HttpMessageConverter für den Antworttyp gefunden, kann jemand die mögliche Lösung für dieses vorschlagen ??
Wie sieht die Antwort aus? Was ist der Inhaltstyp der Antwort? Sie können die 'RestTemplate' sicher über den unterstützten Inhaltstyp oder Codiertyp überprüfen oder der Inhalt der Antwort kann korrekt gehandhabt werden. Post-Detail-Informationen würden helfen. –
Ich bekomme keine Antwort. – DeathPulse
Also, wie soll der Frühling damit umgehen? –