У меня есть список поставщиков данных, созданный из потока. Теперь я разобрал его в JSON и хочу передать AmChart через вызов SpringBoot restful. Я не уверен, как я могу вызвать вызов для генерации ответа JSON из потока. Я сделал это так, как показано в приведенном ниже коде, но когда я вызываю URL-адрес в Postman, он генерирует нулевой ответ, а не имеет JSON. Может ли кто-нибудь сказать мне, как правильно разместить каждый раздел? Большое спасибо.
Тема
public void run(Contract con) {
m_client.eConnect("localhost", 7497, 123);
final EReader reader = new EReader(m_client, m_signal);
reader.start();
Thread t1 = new Thread() {
@Override
public void run() {
while (m_client.isConnected()) {
m_signal.waitForSignal();
try {
reader.processMsgs();
} catch (Exception e) {
System.out.println("Exception: " + e.getMessage());
}
}
}
};
t1.start();
m_client.reqHistoricalData(1, con,
LocalDate.now().format(DateTimeFormatter.BASIC_ISO_DATE)+ " 16:00:00",
"1 D", "1 min", "MIDPOINT", 1, 1, false, null);
m_client.reqMktData(1, con, "", false, false, null);
try {
Thread.sleep(1000);
Gson gson=new GsonBuilder().setPrettyPrinting().create();
setOhlcJson(gson.toJson(allOHLC));
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
JSON ожидаемый ответ:
[
{
"date": "20200506 10:08:00",
"open": 1.0837,
"high": 1.083785,
"low": 1.083685,
"close": 1.083775,
"volume": -1
},
{
"date": "20200506 10:09:00",
"open": 1.083775,
"high": 1.08395,
"low": 1.083775,
"close": 1.083935,
"volume": -1
},
{
"date": "20200506 10:10:00",
"open": 1.083935,
"high": 1.08399,
"low": 1.083885,
"close": 1.083905,
"volume": -1
},
{
"date": "20200506 10:11:00",
"open": 1.083905,
"high": 1.08393,
"low": 1.083815,
"close": 1.083845,
"volume": -1
},
{
"date": "20200506 10:12:00",
"open": 1.083845,
"high": 1.083845,
"low": 1.08378,
"close": 1.083815,
"volume": -1
},
{
"date": "20200506 10:13:00",
"open": 1.083815,
"high": 1.083815,
"low": 1.083805,
"close": 1.08381,
"volume": -1
}
]
Контроллер SpringBoot:
@GetMapping("/candlestick")
public static HashMap<String, Object> getAllPlot(String json) {
HashMap<String, Object> map = new HashMap<String, Object>();
Test app = new Test();
Contract con = new Contract();
con.symbol("EUR");
con.exchange("IDEALPRO");
con.secType("CASH");
con.currency("USD");
app.run(con);
String json = app.getOhlcJson();
HashMap<String, Object> map = new HashMap<String, Object>();
System.out.println("Here goes: "+ json);
map.put("data", json);
return map;
}
AmCharts
// Load data
chart.dataSource.url = "http://localhost:8080/api/candlestick/";
chart.dataSource.parser = new am4core.JSONParser;
chart.dataSource.parser.options.emptyAs = 0;