@Override
  public void service(HttpServletRequest pReq, HttpServletResponse pRes)
      throws ServletException, IOException {
    LOG.debug("service() ");

    try {
      ServletInputStream servletInput = pReq.getInputStream();

      StringBuffer strbuf = new StringBuffer();
      BufferedReader bufRead = new BufferedReader(new InputStreamReader(servletInput));
      String line = null;
      while ((line = bufRead.readLine()) != null) strbuf.append(line);
      bufRead.close();

      LOG.debug("Got Input: " + strbuf.toString());

      // -------------------------------------------------------------
      // Call createDocument with useNamespace flag set to true
      // -------------------------------------------------------------
      Document doc =
          DOMMethods.getDocument(new java.io.StringReader(strbuf.toString()), "UTF-8", true);
      Element docElem = doc.getDocumentElement();

      String response = webServiceDispatcher.handleWebServiceCall(docElem);
      LOG.debug("Got response: " + response);

      pRes.setContentType("text/xml");
      ServletOutputStream out = pRes.getOutputStream();
      BufferedOutputStream bos = new BufferedOutputStream(out);

      byte[] bytes = response.getBytes();
      bos.write(bytes, 0, bytes.length);
      bos.flush();
      bos.close();
    } catch (Exception e) {
      LOG.debug("Got Exception: " + e);
      LOG.error("Reading ServletInputStream threw an Exception " + e);
      throw new ServletException(e.getMessage());
    }
  }