【发布时间】:2017-11-17 22:53:59
【问题描述】:
谁能帮我从 PubSub-Message 接收属性?消息显示正确,但没有属性。我的 Receive-Class 如下所示:
public class ReceiveMessageServlet extends HttpServlet {
@Override
public final void doPost(final HttpServletRequest req,
final HttpServletResponse resp)
throws IOException {
// Validating unique subscription token before processing the message
String subscriptionToken = System.getProperty(
Constants.BASE_PACKAGE + ".subscriptionUniqueToken");
if (!subscriptionToken.equals(req.getParameter("token"))) {
resp.setStatus(HttpServletResponse.SC_BAD_REQUEST);
resp.getWriter().close();
return;
}
ServletInputStream inputStream = req.getInputStream();
// Parse the JSON message to the POJO model class
JsonParser parser = JacksonFactory.getDefaultInstance()
.createJsonParser(inputStream);
parser.skipToKey("message");
PubsubMessage message = parser.parseAndClose(PubsubMessage.class);
// Store the message in the datastore
Entity messageToStore = new Entity("PubsubMessage");
messageToStore.setProperty("message",
new String(message.decodeData(), "UTF-8"));
messageToStore.setProperty("receipt-time", System.currentTimeMillis());
DatastoreService datastore =
DatastoreServiceFactory.getDatastoreService();
datastore.put(messageToStore);
// Invalidate the cache
MemcacheService memcacheService =
MemcacheServiceFactory.getMemcacheService();
memcacheService.delete(Constants.MESSAGE_CACHE_KEY);
// Acknowledge the message by returning a success code
resp.setStatus(HttpServletResponse.SC_OK);
resp.getWriter().close();
}
}
我已经用 message.getAttributes() 尝试过,但没有任何成功。
【问题讨论】:
标签: java google-cloud-messaging google-cloud-pubsub