как загрузить сервлет из основного метода - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть Основной класс, там я делаю запрос API и интегрируюсь с базой данных.Я также создаю сервлет, в котором я хочу получать данные от клиентов и помещать их в базу данных.это основной метод в классе Main:

public static void main(String[] args) throws IOException {

    serverSocket = new ServerSocket(8888); // Server port
    System.out.println("Server started. Listening to the port 8888");

    initProviderList();
    initNewsAppDB();

    Thread newFeedsUpdate = new Thread(new NewFeedsUpdate(providerList));
    newFeedsUpdate.start();
}

это сервлет:

  @WebServlet(name = "GetClientTokenServlet")
public class GetClientTokenServlet extends HttpServlet {

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String token = request.getParameter("token");
        System.out.println(token);
    }

web.xml:

    <?xml version="1.0" encoding="UTF-8"?>
<web-app
        xmlns="http://xmlns.jcp.org/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
        version="4.0">

    <servlet>
        <servlet-name>GetClientTokenServlet</servlet-name>
        <servlet-class>GetClientTokenServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>GetClientTokenServlet</servlet-name>
        <url-pattern>/GetClientTokenServlet</url-pattern>
    </servlet-mapping>
</web-app>

как я могу настроитьGetClientTokenServlet (чтобы иметь возможность прослушивать звонки клиентов) в основной метод?

1 Ответ

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

В большинстве случаев в веб-приложениях на Java нет методов main.Метод main реализуется контейнером сервлета, таким как Tomcat , и это то, что вы на самом деле запускаете.Контейнер сервлета обнаруживает классы вашего приложения и файл web.xml с помощью некоторого метода, часто находя их в файле WAR , который вы поместили в каталог, определенный контейнером сервлета, например в каталог webapps Tomcat.Затем контейнер сервлетов создает экземпляры сервлетов, указанных в вашем файле web.xml.

При этом существует несколько веб-серверов, которые вы можете создавать в качестве компонентов в своем собственном приложении.Сервер, который обычно используется для этой цели - Jetty .Jetty - это веб-сервер, который передает входящие запросы определенным вами «обработчикам».Вы можете заставить Jetty загрузить все ваше веб-приложение из файла WAR и создать сервлеты, определенные в вашем web.xml, или вы можете использовать ServletHandler для регистрации сервлетов вручную;в этом случае вам не нужно web.xml.

...