Documentation versions (currently viewingVaadin 24)

Obtaining a Collaboration Kit Instance in a Servlet

When a VaadinService instance isn’t available, it’s impossible to get a CollaborationEngine instance with the getInstance() method. In a servlet, you can get the instance with the getAttribute() method, as long as it’s been configured.

CollaborationEngine ce = (CollaborationEngine) getServletContext()

See the Other Applications in the production configuration documentation for details on how to configure Collaboration Kit.

In the following example, a message posted through a form is added to a topic as a system message:

protected void doPost(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {
    CollaborationEngine ce = (CollaborationEngine) getServletContext()
    if (ce == null) {
                "Collaboration Kit has not yet been initialized");
    // Retrieve message that was sent in this POST request
    String userMessage = req.getParameter("message");
    String message = "An anonymous user posted the following message: "
            + userMessage;
    sendMessageToTopic(ce, message);

public void sendMessageToTopic(CollaborationEngine ce, String message) {
    // Get SystemConnectionContext from Collaboration Kit
    SystemConnectionContext systemConnectionContext = ce.getSystemContext();

    MessageManager messageManager = new MessageManager(
            systemConnectionContext, systemUser, topicId, ce);

    messageManager.submit(message) // Send message to topic
            .whenComplete((a, t) -> {
                // Close the message manager when done