У меня есть приложение с пружинной загрузкой, которое развернуто на той же машине, что и двигатель Camunda bpm.Движок развернут на WildFly, приложение весенней загрузки находится в своем собственном Tomcat.
Приложение пытается выполнить POST-запрос к API-интерфейсу движка camunda, но через 50 секунд оно получает ошибку 504, но в то же времямеханизм получает данные и работает нормально, как если бы запрос был успешным.
Если запрос возвращает код ошибки, например 400, приложение получает ответ мгновенно.Только тогда, когда запрос будет успешным, время ожидания истекло.
Я попытался выполнить запрос к движку от Почтальона, он работает нормально и отвечает примерно за 100 мс.
Я пытался сделать это сJAXRS WS и HttpURLConnection.Они оба ведут себя абсолютно одинаково.
В чем может быть проблема с тайм-аутом, но также с одновременной работой?
String baseUrl = configurationBean.getSettingValue("PORTAL_BASE_URL");
baseUrl += "/engine-rest/message";
URL url = new URL(baseUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setConnectTimeout(120000);
conn.setReadTimeout(120000);
conn.setInstanceFollowRedirects(false);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
OutputStream os = conn.getOutputStream();
os.write(json.getBytes());
os.flush();
if (conn.getResponseCode() != HttpURLConnection.HTTP_CREATED) {
throw new RuntimeException("Failed : HTTP error code : "
+ conn.getResponseCode());
}
BufferedReader br = new BufferedReader(new InputStreamReader(
(conn.getInputStream())));
String output;
while ((output = br.readLine()) != null) {
System.out.println(output);
}
conn.disconnect();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}