package example;
import java.util.logging.Logger;
import java.util.concurrent.BlockingQueue;
import java.io.PrintWriter;
import java.io.IOException;
import javax.servlet.GenericServlet;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.ServletException;
import javax.inject.Inject;
import javax.inject.Named;
public class MessageServlet extends GenericServlet {
private static final Logger log =
Logger.getLogger(MessageServlet.class.getName());
@Inject @Named("my_queue")
private BlockingQueue _sender;
private int _count;
/**
* Sends the message.
*/
public void service(ServletRequest request, ServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
try {
sendMessage(out);
} catch (Exception e) {
throw new ServletException(e);
}
}
private void sendMessage(PrintWriter out)
throws IOException, InterruptedException
{
String message = "sample message: " + _count++;
out.println("message: " + message + "<br>");
log.info("sending: " + message);
_sender.put(message);
out.println("last message (0ms): " + MyListener.getLastMessage() + "<br>");
log.info("complete send");
Thread.sleep(100);
out.println("last message (100ms): " + MyListener.getLastMessage() + "<br>");
}
}