Hallo Zusammen,
ich habe ein Servlet das Nachrichten über PubSub empfängt. Ich möchte nun diese Messages in einer SQL Tabelle speichern. Der Zugriff (Datenbankconnection) funktioniert, da ich den Traffic auf dem Server sehen kann und und der Zugriff und der Insert mit einer einfachen Klassen auch klappt aber leider nicht über das Servlet.
Kann mir eventuell hier einer weiterhelfen? Ich verzweifel schier....
Mein Servlet sieht wie folgt aus:
ich habe ein Servlet das Nachrichten über PubSub empfängt. Ich möchte nun diese Messages in einer SQL Tabelle speichern. Der Zugriff (Datenbankconnection) funktioniert, da ich den Traffic auf dem Server sehen kann und und der Zugriff und der Insert mit einer einfachen Klassen auch klappt aber leider nicht über das Servlet.
Kann mir eventuell hier einer weiterhelfen? Ich verzweifel schier....
Mein Servlet sieht wie folgt aus:
Code:
@SuppressWarnings("serial")
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();
Connection con = DBConnection.connection();
try {
Statement stmt = con.createStatement();
stmt.executeUpdate("INSERT INTO message(input)" + "VALUES ('" + messageToStore + "')");
} catch (Exception e) {
e.printStackTrace();
}
}
}