package ch.abacus.flow.web.portlets; import ch.abacus.flow.web.PortletConstants; import ch.abacus.flow.xmlutils.AbaXMLUtils; import com.liferay.portal.kernel.servlet.PortletServlet; import javax.servlet.ServletException; import javax.servlet.ServletInputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; public class XFormsPortletServlet extends PortletServlet { protected void doPost(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException { try { ServletInputStream istream = httpServletRequest.getInputStream(); String data = convertStreamToString(istream); httpServletRequest.setAttribute(PortletConstants.ATTR_XFORMS_SUBMIT, data); } catch (Exception e) { throw new ServletException(e.getMessage()); } super.doPost(httpServletRequest, httpServletResponse); } public static String convertStreamToString(InputStream in) throws Exception { InputStreamReader isr = new InputStreamReader(in, AbaXMLUtils.ENCODING_UFT_8); BufferedReader reader = new BufferedReader(isr); StringBuilder sb = new StringBuilder(); String line; while ((line = reader.readLine()) != null) { sb.append(line).append("\n"); } in.close(); return sb.toString(); } }