Запуск класса сервлета из другого класса - PullRequest
1 голос
/ 18 сентября 2009

Я только что получил класс сервлетов, работающий в Eclipse. Я тестировал его, развертывая его с помощью App Engine, и он подсказывал мне работать как веб-приложение. Теперь я хочу запустить этот код из другого класса. Поэтому я создал другой класс и поставил «TestServlet ts = new TestServlet ();» в основной функции. Когда я бегу, ничего не происходит. Нужно ли вызывать метод TestGervlet "doGet" или это связано с тем, что основной класс не запускается как веб-приложение?

Ответы [ 3 ]

0 голосов
/ 18 сентября 2009

Хмм ... ты не должен этим заниматься. Извлеките общую логику в отдельный класс POJO (простой старый объект Java) и вызовите ее из вашего сервлета и другого класса.

Инстанцирование / вызов сервлетов вручную НЕ является хорошей идеей.

0 голосов
/ 18 сентября 2009

Вызов doGet (или doPost, или любого другого видимого метода) в экземпляре объекта сервлета выполнит содержащий код. Однако следует помнить, что поведение может отличаться от запуска сервлета в веб-контейнере, если в коде используется какая-либо из «проводных» контекстных переменных.

По номинальной стоимости я бы предложил вам рефакторинг, чтобы получить код, который вам требуется в общем методе, и вызов как из вашего сервлета, так и из вашего основного класса.

0 голосов
/ 18 сентября 2009

Вам нужен контейнер сервлета, если вы хотите запустить его по-настоящему. Я бы предложил использовать Winstone http://winstone.sourceforge.net. Это небольшой, быстрый контейнер с нулевой конфигурацией для запуска и запуска вашего сервлета.

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