@Beta
public class NotificationServlet
extends javax.servlet.http.HttpServlet
Beta
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(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, com.google.api.client.util.store.DataStoreFactory), so if you you may
alternatively call that method instead from your HttpServlet.doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) with no loss of
functionality.
public class MyNotificationServlet extends NotificationServlet {
private static final long serialVersionUID = 1L;
public MyNotificationServlet() throws IOException {
super(new SomeDataStoreFactory());
}
}
Sample web.xml setup:
<servlet>
<servlet-name>MyNotificationServlet</servlet-name>
<servlet-class>com.mypackage.MyNotificationServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyNotificationServlet</servlet-name>
<url-pattern>/notifications</url-pattern>
</servlet-mapping>
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:
<servlet>
<servlet-name>NotificationServlet</servlet-name>
<servlet-class>com.google.api.client.googleapis.extensions.servlet.notificationsNotificationServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>NotificationServlet</servlet-name>
<url-pattern>/notifications</url-pattern>
</servlet-mapping>
| Modifier | Constructor and Description |
|---|---|
|
NotificationServlet()
Constructor to be used for testing and demo purposes that 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. |
protected |
NotificationServlet(com.google.api.client.util.store.DataStore<StoredChannel> channelDataStore)
Constructor that allows a specific notification data store to be specified.
|
protected |
NotificationServlet(com.google.api.client.util.store.DataStoreFactory dataStoreFactory)
Constructor which uses
StoredChannel.getDefaultDataStore(DataStoreFactory) on the given
data store factory, which is the normal use case. |
| Modifier and Type | Method and Description |
|---|---|
protected void |
doPost(javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp) |
doDelete, doGet, doHead, doOptions, doPut, doTrace, getLastModified, service, servicepublic NotificationServlet()
throws IOException
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.IOExceptionprotected NotificationServlet(com.google.api.client.util.store.DataStoreFactory dataStoreFactory)
throws IOException
StoredChannel.getDefaultDataStore(DataStoreFactory) on the given
data store factory, which is the normal use case.dataStoreFactory - data store factoryIOExceptionprotected NotificationServlet(com.google.api.client.util.store.DataStore<StoredChannel> channelDataStore)
channelDataStore - notification channel data storeprotected void doPost(javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp)
throws javax.servlet.ServletException,
IOException
doPost in class javax.servlet.http.HttpServletjavax.servlet.ServletExceptionIOExceptionCopyright © 2010-2015 Google. All Rights Reserved.