Как вызвать класс сервлета /bin/wcmcommand из Java Class в CQ5
Как вызвать сервлет "/bin/wcmcommand", который был внутри Готового CQ5 Jar из Java Class. HTTPClient и URL Connection, так как я не могу сделать POST-вызов этого сервлета. я получаю код ошибки:500.
2 ответа
Не уверен, что вы имели в виду под "сервлетом, который был внутри коробки из CQ5 Jar" . Что я понял из вашего вопроса, вы хотите позвонить (HTTP GET/POST
) сервлет из класса Java (а не из JSP!).
Я предполагаю, что это Sling Servlet и был зарегистрирован с типом пути / ресурса или любым другим допустимым способом регистрации сервлета.
Если его зарегистрировано с "path
msgstr "вы можете вызвать HTTP-запрос разными способами.
Рекомендации:
Использование java.net.URLConnection для запуска и обработки HTTP-запросов
Этот сервлет OOTB Sling принимает только объект запроса Sling. поэтому нельзя напрямую вызывать с помощью HTTPClient в классе Java, как обычный сервлет. Но моя проблема была решена с помощью связи с сервлетами. Я изменил вызывающий класс с Java-класса на класс сервлетов Sling, затем я общался с помощью сервлет-связи, как это.
RequestDispatcher req = request.getRequestDispatcher("/bin/wcmcommand");
req.include(request,response);
Я хочу вызвать этот сервлет несколько раз с разным значением. Так что я использовал SlingServletRequestWrapper
класс для модификации request.getParameter()
цени каждый звонок.