@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()); } }
@Override public void init() { LOG.debug("WebServiceServlet.init..."); // ============================================================================== // get the web service configuration // using the ObjectFactory get the IWebServiceHandlers // ============================================================================== String tmp = getInitParameter("WebServiceConfigurationFile"); if (tmp != null && tmp.trim().length() > 0) { this.webServiceConfigurationFile = tmp; } String config = FileMethods.readFile(webServiceConfigurationFile); if (config != null) { ApplicationManager appManager = ApplicationManager.getInstance(); IObjectFactory objFactory = appManager.createObjectFactory(webServiceFactory, objectFactoryClass, config); List<Object> webServiceHandlers = objFactory.getApplicationObjects("SOAPWebServiceHandler"); if (webServiceHandlers != null) { for (int i = 0; i < webServiceHandlers.size(); i++) { Object obj = webServiceHandlers.get(i); if (obj instanceof ISOAPWebServiceHandler) { ISOAPWebServiceHandler webServiceHandler = (ISOAPWebServiceHandler) obj; webServiceDispatcher.addWebServiceHandler(webServiceHandler); } else { LOG.error("Object " + obj + " is NOT an instance of ISOAPWebServiceHandler!"); } } } else { LOG.debug("NO WebServiceHandlers found!"); } } }