The key is in the javadocs of GenericServlet: "Defines a generic, protocol-independent servlet." The original authors of the servlet spec envisioned other protocols besides HTTP. So far, there haven't been any other protocols, but that's going to change with Servlet API 3.0 and its support for SIP.
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com