Сервлет Доступ RoboHelp.zip - PullRequest
       2

Сервлет Доступ RoboHelp.zip

0 голосов
/ 28 февраля 2019

Этот вопрос является конкретным вопросом программирования, а также некоторыми общими советами.

Специальный вопрос программирования:

Я пишу очень маленькое приложение, которое вызывает JSP к сервлету в ApacheTomcat 9, динамический веб-модуль версии 4.0.

Если пользователь нажимает кнопку справки в JSP, процедура POST возвращается к сервлету Java.Метод doPost в сервлете вызывает метод showHelp.Все это прекрасно работает.

Я хотел, чтобы метод showHelp (запрос HttpsServletRequest, ответ HttpsServletResponse) открывал zip (AdminHelp.zip), содержащий файлы справки, созданные RoboHelp, начиная с index.htm.Я поместил каталог WEB-INF / help в путь сборки.Когда конструктор ZipFile пытается открыть файл AdminHelp.zip, я получаю следующую ошибку:

\ Web-INF \ help \ AdminHelp.zip (системе не удается найти указанный путь)

Поскольку WEB-INF \ help находится в пути сборки, а соседние каталоги WEB-INF \ css и WEB-INF \ classes работают, я не вижу, что мне не хватает?

private void showHelp(HttpServletRequest request, HttpServletResponse response)
        throws IOException, URISyntaxException {

    ZipFile zipFile = null;
    InputStream stream = null;
    try {
        zipFile = new ZipFile("/WEB-INF/help/AdminHelp.zip");
        stream = zipFile.getInputStream(zipFile.getEntry("index.htm"));

        // Need code here to get help pages back to client.

        RequestDispatcher dispatcher = request.getRequestDispatcher("/ShowHelp.jsp");
        try {
        dispatcher.forward(request, response);
        } catch (ServletException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        }
    } catch (Exception ex) {
        System.out.println(ex.getMessage());
    } finally {

        if(stream != null)
        stream.close();
        if(zipFile != null)
        zipFile.close();
    }
}

Общий совет Вопрос:

Есть ли более простой способ предоставить пользователю файлы RoboHelp?Я задавался вопросом об установке файлов и каталогов RoboHelp, которые начинаются с index.htm, а затем о предоставлении ссылки.Кажется, мне нужен сервер Apache httpd, чтобы это работало.Интересно, не стоит ли устанавливать веб-сервер на коробку, которая предоставляет только простой веб-сервис с использованием сервлета под Tomcat.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...