Я хотел бы создать запланированное веб-задание с использованием Java для архивирования моих данных один раз в день Мой план, чтобы минимизировать зависимости в самом веб-задании, - просто вызвать Http-вызов работающего экземпляра моего основного приложения, чтобы он мог позаботиться обо всем остальном. Проблема, с которой я столкнулся, заключается в том, что после успешной загрузки веб-задания я нажимаю кнопку «Выполнить», она успешно выполняется, а затем сразу же завершается сбоем. Записывается только успех, поэтому я абсолютно не знаю, что является причиной сбоя. Я надеюсь, что кто-то с немного большим опытом может помочь мне разобраться, что мне не хватает.
Java-код выглядит примерно так:
HttpURLConnection httpConnection = null;
Integer responseCode = null;
try {
URL serverUrl = new URL(endpoint);
httpConnection = (HttpURLConnection) serverUrl.openConnection();
httpConnection.setRequestMethod("GET");
responseCode = httpConnection.getResponseCode();
System.out.println("Status: " + responseCode + " - " + httpConnection.getResponseMessage());
return responseCode;
} catch (Exception e) {
if (responseCode != null) {
System.out.println("Status: " + responseCode + " - " + httpConnection.getResponseMessage());
}
e.printStackTrace();
} finally {
if (httpConnection != null) {
httpConnection.disconnect();
}
}
return 400;
Упрощенно, но просто знайте, что оно само по себе прекрасно работает.
Мой процесс состоял в том, чтобы экспортировать этот код как файл jar, а затем сжать файл jar вместе с командным файлом в zip-архив.
Пакетный файл читает:
set JAVA_HOME=D:\Program Files (x86)\Java\jdk1.8.0_202
set CLASSPATH=.;%JAVA_HOME%\lib
set PATH=%JAVA_HOME%\bin;%PATH%
java -jar archive-webjob.jar
И я уже пробовал использовать разные jdks, 1.8.0_202 - самый последний.
В других местах я видел другие файлы, такие как web.config или settings.job, но сам не видел никакой разницы, используя их.
Что касается моих настроек в Azure, то для Always-on установлено значение true, наряду с Tomcat 8.5 (авто), Java 1.8 (авто), 64-бит и минимальными настройками безопасности.
К сожалению, мне было очень трудно найти ресурсы о том, как это сделать. Поэтому, пожалуйста, потерпите меня, если я упускаю что-то очевидное.
К вашему сведению, функции Azure, к сожалению, для меня не обсуждаются, поскольку моя компания не разрешает развертывание с помощью интерфейса командной строки Azure, хотя я уверен, что это было бы отличным решением.
Заранее благодарим за любую полезную информацию.