package com.hazelcast.jca.examples.servlet; import com.hazelcast.core.IMap; import com.hazelcast.jca.HazelcastConnection; import javax.annotation.Resource; import javax.resource.ResourceException; import javax.resource.cci.ConnectionFactory; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; @WebServlet("/Hello") public class Hello extends HttpServlet { private static final long serialVersionUID = -8314035702649252239L; @Resource(mappedName = "java:/HazelcastCF") protected ConnectionFactory connectionFactory; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html"); PrintWriter out = resp.getWriter(); out.write("<h1>Hazelcast JCA Example</h1>"); out.write("<form action='?' method='GET'><input name='action' value='put' type='hidden' />" + "<input type='text' name='data' /><input type='submit' value='PUT' /></form>"); out.write("<a href='?action=clear'>CLEAR</a>"); out.write("<br />"); out.write("<br />"); HazelcastConnection hzConn = null; try { hzConn = getConnection(); IMap<Integer, String> map = hzConn.getMap("example"); String action = req.getParameter("action"); if ("put".equals(action)) { map.put(map.size(), req.getParameter("data")); } else if ("clear".equals(action)) { map.clear(); } out.write("MAP: <br />"); for (int i = 0; i < map.size(); i++) { out.write(i + "=>" + map.get(i) + "<br />"); } } finally { closeConnection(hzConn); closeWriter(out); } } private void closeWriter(PrintWriter out) { if (out != null) { out.close(); } } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } private HazelcastConnection getConnection() { HazelcastConnection c = null; try { return (HazelcastConnection) connectionFactory.getConnection(); } catch (ResourceException e) { throw new RuntimeException(e); } } private void closeConnection(HazelcastConnection hzConn) { if (hzConn != null) { try { hzConn.close(); } catch (ResourceException e) { throw new RuntimeException(e); } } } }