You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ja...@apache.org on 2007/03/28 07:07:46 UTC
svn commit: r523176 -
/ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/XmlRpcEventHandler.java
Author: jaz
Date: Tue Mar 27 22:07:45 2007
New Revision: 523176
URL: http://svn.apache.org/viewvc?view=rev&rev=523176
Log:
implemented echo back in XML-RPC; will return back the request in a valid XML-RPC XML message; use the query string ?echo to any request to enable this; note the request will not actually run, just echo
Modified:
ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/XmlRpcEventHandler.java
Modified: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/XmlRpcEventHandler.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/XmlRpcEventHandler.java?view=diff&rev=523176&r1=523175&r2=523176
==============================================================================
--- ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/XmlRpcEventHandler.java (original)
+++ ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/XmlRpcEventHandler.java Tue Mar 27 22:07:45 2007
@@ -35,9 +35,7 @@
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.IOException;
+import java.io.*;
import java.util.Map;
import java.util.Locale;
import java.util.Iterator;
@@ -62,14 +60,47 @@
}
public String invoke(String eventPath, String eventMethod, HttpServletRequest request, HttpServletResponse response) throws EventHandlerException {
- try {
- this.execute(this.getXmlRpcConfig(request), new HttpStreamConnection(request, response));
- } catch (XmlRpcException e) {
- Debug.logError(e, module);
- throw new EventHandlerException(e.getMessage(), e);
- }
+ String report = request.getParameter("echo");
+ if (report != null) {
+ StringBuffer buf = new StringBuffer();
+ try {
+ // read the inputstream buffer
+ String line;
+ BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream()));
+ while ((line = reader.readLine()) != null) {
+ buf.append(line).append("\n");
+ }
+ } catch (Exception e) {
+ throw new EventHandlerException(e.getMessage(), e);
+ }
+ Debug.logInfo("Echo: " + buf.toString(), module);
- return null;
+ // echo back the request
+ try {
+ response.setContentType("text/xml");
+ Writer out = response.getWriter();
+ out.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
+ out.write("<methodResponse>");
+ out.write("<params><param>");
+ out.write("<value><string><![CDATA[");
+ out.write(buf.toString());
+ out.write("]]></string></value>");
+ out.write("</param></params>");
+ out.write("</methodResponse>");
+ out.flush();
+ } catch (Exception e) {
+ throw new EventHandlerException(e.getMessage(), e);
+ }
+ } else {
+ try {
+ this.execute(this.getXmlRpcConfig(request), new HttpStreamConnection(request, response));
+ } catch (XmlRpcException e) {
+ Debug.logError(e, module);
+ throw new EventHandlerException(e.getMessage(), e);
+ }
+ }
+
+ return null;
}
protected void setResponseHeader(ServerStreamConnection con, String header, String value) {