com.google.api.client.util.Beta
Support for subscribing to topics and receiving notifications on servlet-based platforms using
jakarta.servlet namespace.
Beta
Thread-safe Webhook Servlet to receive notifications using the jakarta.servlet namespace.
In order to use this servlet you should create a class inheriting from NotificationServlet and register the servlet in your web.xml.
It is a simple wrapper around WebhookUtils#processWebhookNotification, so if you you
may alternatively call that method instead from your HttpServlet#doPost with no loss of
functionality. Example usage:
WARNING: by default it uses MemoryDataStoreFactory#getDefaultInstance() which means it
will NOT persist the notification channels when the servlet process dies, so it is a BAD CHOICE
for a production application. But it is a convenient choice when testing locally, in which case
you don't need to override it, and can simply reference it directly in your web.xml file. For
example:
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[],[],null,["# Package com.google.api.client.googleapis.extensions.servlet.notifications.jakarta (2.8.1)\n\nVersion latestkeyboard_arrow_down\n\n- [2.8.1 (latest)](/java/docs/reference/google-api-client/latest/com.google.api.client.googleapis.extensions.servlet.notifications.jakarta)\n- [2.8.0](/java/docs/reference/google-api-client/2.8.0/com.google.api.client.googleapis.extensions.servlet.notifications.jakarta)\n- [2.7.2](/java/docs/reference/google-api-client/2.7.2/com.google.api.client.googleapis.extensions.servlet.notifications.jakarta)\n- [2.6.0](/java/docs/reference/google-api-client/2.6.0/com.google.api.client.googleapis.extensions.servlet.notifications.jakarta)\n- [2.5.1](/java/docs/reference/google-api-client/2.5.1/com.google.api.client.googleapis.extensions.servlet.notifications.jakarta)\n- [2.4.1](/java/docs/reference/google-api-client/2.4.1/com.google.api.client.googleapis.extensions.servlet.notifications.jakarta)\n- [2.1.2](/java/docs/reference/google-api-client/2.1.2/com.google.api.client.googleapis.extensions.servlet.notifications.jakarta)\n- [2.0.1](/java/docs/reference/google-api-client/2.0.1/com.google.api.client.googleapis.extensions.servlet.notifications.jakarta)\n- [1.35.2](/java/docs/reference/google-api-client/1.35.2/com.google.api.client.googleapis.extensions.servlet.notifications.jakarta)\n- [1.34.1](/java/docs/reference/google-api-client/1.34.1/com.google.api.client.googleapis.extensions.servlet.notifications.jakarta)\n- [1.33.4](/java/docs/reference/google-api-client/1.33.4/com.google.api.client.googleapis.extensions.servlet.notifications.jakarta) \n[com.google.api.client.util.Beta](https://cloud.google.com/java/docs/reference/google-http-client/latest/com.google.api.client.util.Beta.html) \n\nSupport for subscribing to topics and receiving notifications on servlet-based platforms using\n`jakarta.servlet` namespace.\n\nClasses\n-------\n\n### [NotificationServlet](/java/docs/reference/google-api-client/latest/com.google.api.client.googleapis.extensions.servlet.notifications.jakarta.NotificationServlet)\n\nBeta \n\nThread-safe Webhook Servlet to receive notifications using the `jakarta.servlet` namespace.\n\nIn order to use this servlet you should create a class inheriting from [NotificationServlet](/java/docs/reference/google-api-client/latest/com.google.api.client.googleapis.extensions.servlet.notifications.jakarta.NotificationServlet) and register the servlet in your web.xml.\n\nIt is a simple wrapper around [WebhookUtils#processWebhookNotification](/java/docs/reference/google-api-client/latest/com.google.api.client.googleapis.extensions.servlet.notifications.WebhookUtils#com_google_api_client_googleapis_extensions_servlet_notifications_WebhookUtils_processWebhookNotification_), so if you you\nmay alternatively call that method instead from your HttpServlet#doPost with no loss of\nfunctionality. **Example usage:** \n\n\n public class MyNotificationServlet extends NotificationServlet {\n\n private static final long serialVersionUID = 1L;\n\n public MyNotificationServlet() throws IOException {\n super(new SomeDataStoreFactory());\n }\n }\n \n**Sample web.xml setup:** \n\n\n {@literal \u003c}servlet{@literal\u003e}\n {@literal \u003c}servlet-name{@literal\u003e}MyNotificationServlet{@literal \u003c} ervlet-name{@literal=\"\"\u003e}\n {@literal \u003c}servlet-class{@literal\u003e}\n com.mypackage.MyNotificationServlet\n {@literal \u003c} ervlet-class{@literal=\"\"\u003e}\n {@literal \u003c} ervlet{@literal=\"\"\u003e}\n {@literal \u003c}servlet-mapping{@literal\u003e}\n {@literal \u003c}servlet-name{@literal\u003e}MyNotificationServlet{@literal \u003c} ervlet-name{@literal=\"\"\u003e}\n {@literal \u003c}url-pattern{@literal\u003e}/notifications{@literal \u003c} rl-pattern{@literal=\"\"\u003e}\n {@literal \u003c} ervlet-mapping{@literal=\"\"\u003e}\n \nWARNING: by default it uses MemoryDataStoreFactory#getDefaultInstance() which means it\nwill NOT persist the notification channels when the servlet process dies, so it is a BAD CHOICE\nfor a production application. But it is a convenient choice when testing locally, in which case\nyou don't need to override it, and can simply reference it directly in your web.xml file. For\nexample: \n\n\n {@literal \u003c}servlet{@literal\u003e}\n {@literal \u003c}servlet-name{@literal\u003e}NotificationServlet{@literal \u003c} ervlet-name{@literal=\"\"\u003e}\n {@literal \u003c}servlet-class{@literal\u003e}\n com.google.api.client.googleapis.extensions.servlet.notificationsNotificationServlet\n {@literal \u003c} ervlet-class{@literal=\"\"\u003e}\n {@literal \u003c} ervlet{@literal=\"\"\u003e}\n {@literal \u003c}servlet-mapping{@literal\u003e}\n {@literal \u003c}servlet-name{@literal\u003e}NotificationServlet{@literal \u003c} ervlet-name{@literal=\"\"\u003e}\n {@literal \u003c}url-pattern{@literal\u003e}/notifications{@literal \u003c} rl-pattern{@literal=\"\"\u003e}\n {@literal \u003c} ervlet-mapping{@literal=\"\"\u003e}\n \n### [WebhookUtils](/java/docs/reference/google-api-client/latest/com.google.api.client.googleapis.extensions.servlet.notifications.jakarta.WebhookUtils)\n\nBeta \n\nUtilities for Webhook notifications using the `jakarta.servlet` namespace."]]