Встроенная Jetty на Windows, оставляя временные файлы - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть несколько сервисов, реализованных с использованием встроенной пристани, которые вызывают проблемы с дисковым пространством при работе в Windows Server. Кажется, проблема в том, что временные файлы и папки не очищаются ни при завершении потока сервера, ни при остановке процесса сервера.

Например, если я запускаю свой сервис с использованием учетной записи локального пользователя в Windows, папка создается в C: \ Windows \ Temp для каждого запущенного мной сервиса с шаблоном имени axis-. В этих папках находятся копии файла .jar для конкретной службы - одна копия для каждого запроса, обработанного службой.

Поскольку я не развертываю их с помощью контейнера сервлета (нет файла WAR), у меня нет файлов конфигурации для управления поведением Jetty. Есть ли другой программный способ управления очисткой временных файлов?

вот пример моего сервисного кодирования - все они имеют одинаковый шаблон.

Server quoteServer = new Server(ratingServerPort);
    HandlerList handlers = new HandlerList();
    PingHandler pingHandler = new PingHandler();
    pingHandler.setLogger(log);
    handlers.addHandler(pingHandler);

    QuoteHandler quoteHandler = new QuoteHandler();
    quoteHandler.setLogger(log);
    quoteHandler.setMongo(mongo);
    quoteHandler.setMorphia(morphia);
    quoteHandler.setMongoHostname(mongoHostname);
    quoteHandler.setMongoPort(mongoPort);
    quoteHandler.setMileageHost(mileageHost);
    quoteHandler.setMileagePort(mileagePort);
    quoteHandler.setTransitURL(transitURL);
    quoteHandler.setAuthKeys(authKeys);
    handlers.addHandler(quoteHandler);

    BangitHandler bangit = new BangitHandler();
    handlers.addHandler(bangit);

    quoteServer.setHandler(handlers);

    try {
        quoteServer.start();
        quoteServer.join();
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

1 Ответ

0 голосов
/ 17 сентября 2018

Только на основе WebAppContext развертывания создают временные файлы в самой Jetty.

(любезно предоставлено спецификацией сервлета и внутренним классом WebInfConfiguration).

Если имя файла начинается с axis-, это, вероятно, временный каталог, создаваемый библиотеками осей, которые, вероятно, имеется в вашем проекте.

См. Предыдущие ответы по этому вопросу ( ответ 2 по @ anton и ответ 3 по @ code-mode кажется более подходящим для вашего конкретного варианта использования, чем принятый ответ)...

Как удалить TMP-файлы оси Apache без перезапуска

...