parent
27a4304092
commit
8f997a5319
3 changed files with 111 additions and 114 deletions
|
@ -30,7 +30,7 @@ public class Constants extends CoreLibConstants {
|
|||
|
||||
public static final int DEFAULT_ADMIN_PAGE_SIZE = 25;
|
||||
|
||||
public static final String WEB_API_VERSION = "3";
|
||||
public static final String WEB_API_VERSION = "4";
|
||||
|
||||
public static final String LOGIN_INFO = "jp.sf.fess.LoginInfo";
|
||||
|
||||
|
|
|
@ -18,6 +18,8 @@ package jp.sf.fess.api.json;
|
|||
|
||||
import java.io.IOException;
|
||||
import java.io.StringWriter;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
@ -42,6 +44,7 @@ import jp.sf.fess.util.FacetResponse.Field;
|
|||
import jp.sf.fess.util.MoreLikeThisResponse;
|
||||
import jp.sf.fess.util.WebApiUtil;
|
||||
|
||||
import org.apache.commons.lang.StringEscapeUtils;
|
||||
import org.seasar.framework.util.StringUtil;
|
||||
import org.seasar.struts.util.RequestUtil;
|
||||
import org.seasar.struts.util.ResponseUtil;
|
||||
|
@ -127,15 +130,14 @@ public class JsonApiManager extends BaseApiManager implements WebApiManager {
|
|||
final MoreLikeThisResponse moreLikeThisResponse = WebApiUtil
|
||||
.getObject("moreLikeThisResponse");
|
||||
|
||||
buf.append("\"query\":\"");
|
||||
buf.append(escapeJsonString(query));
|
||||
buf.append("\",");
|
||||
buf.append("\"execTime\":");
|
||||
buf.append("\"query\":");
|
||||
buf.append(escapeJson(query));
|
||||
buf.append(",\"execTime\":");
|
||||
buf.append(execTime);
|
||||
buf.append(',');
|
||||
if (StringUtil.isNotBlank(queryId)) {
|
||||
buf.append("\"queryId\":");
|
||||
buf.append(escapeJsonString(queryId));
|
||||
buf.append(escapeJson(queryId));
|
||||
buf.append(',');
|
||||
}
|
||||
buf.append("\"pageSize\":");
|
||||
|
@ -172,12 +174,9 @@ public class JsonApiManager extends BaseApiManager implements WebApiManager {
|
|||
} else {
|
||||
first2 = false;
|
||||
}
|
||||
buf.append('\"');
|
||||
buf.append(escapeJsonString(name));
|
||||
buf.append("\":\"");
|
||||
buf.append(escapeJsonString(entry.getValue()
|
||||
.toString()));
|
||||
buf.append('\"');
|
||||
buf.append(escapeJson(name));
|
||||
buf.append(':');
|
||||
buf.append(escapeJson(entry.getValue()));
|
||||
}
|
||||
}
|
||||
buf.append('}');
|
||||
|
@ -196,9 +195,9 @@ public class JsonApiManager extends BaseApiManager implements WebApiManager {
|
|||
} else {
|
||||
first1 = false;
|
||||
}
|
||||
buf.append("{\"name\":\"");
|
||||
buf.append(escapeJsonString(field.getName()));
|
||||
buf.append("\",\"result\":[");
|
||||
buf.append("{\"name\":");
|
||||
buf.append(escapeJson(field.getName()));
|
||||
buf.append(",\"result\":[");
|
||||
boolean first2 = true;
|
||||
for (final Map.Entry<String, Long> entry : field
|
||||
.getValueCountMap().entrySet()) {
|
||||
|
@ -207,9 +206,9 @@ public class JsonApiManager extends BaseApiManager implements WebApiManager {
|
|||
} else {
|
||||
first2 = false;
|
||||
}
|
||||
buf.append("{\"value\":\"");
|
||||
buf.append(escapeJsonString(entry.getKey()));
|
||||
buf.append("\",\"count\":");
|
||||
buf.append("{\"value\":");
|
||||
buf.append(escapeJson(entry.getKey()));
|
||||
buf.append(",\"count\":");
|
||||
buf.append(entry.getValue());
|
||||
buf.append('}');
|
||||
}
|
||||
|
@ -230,9 +229,9 @@ public class JsonApiManager extends BaseApiManager implements WebApiManager {
|
|||
} else {
|
||||
first1 = false;
|
||||
}
|
||||
buf.append("{\"value\":\"");
|
||||
buf.append(escapeJsonString(entry.getKey()));
|
||||
buf.append("\",\"count\":");
|
||||
buf.append("{\"value\":");
|
||||
buf.append(escapeJson(entry.getKey()));
|
||||
buf.append(",\"count\":");
|
||||
buf.append(entry.getValue());
|
||||
buf.append('}');
|
||||
}
|
||||
|
@ -250,9 +249,9 @@ public class JsonApiManager extends BaseApiManager implements WebApiManager {
|
|||
} else {
|
||||
first = false;
|
||||
}
|
||||
buf.append("{\"id\":\"");
|
||||
buf.append(escapeJsonString(mltEntry.getKey()));
|
||||
buf.append("\",\"result\":[");
|
||||
buf.append("{\"id\":");
|
||||
buf.append(escapeJson(mltEntry.getKey()));
|
||||
buf.append(",\"result\":[");
|
||||
boolean first1 = true;
|
||||
for (final Map<String, Object> document : mltEntry
|
||||
.getValue()) {
|
||||
|
@ -272,12 +271,9 @@ public class JsonApiManager extends BaseApiManager implements WebApiManager {
|
|||
} else {
|
||||
first2 = false;
|
||||
}
|
||||
buf.append('\"');
|
||||
buf.append(escapeJsonString(entry.getKey()));
|
||||
buf.append("\":\"");
|
||||
buf.append(escapeJsonString(entry.getValue()
|
||||
.toString()));
|
||||
buf.append('\"');
|
||||
buf.append(escapeJson(entry.getKey()));
|
||||
buf.append(':');
|
||||
buf.append(escapeJson(entry.getValue()));
|
||||
}
|
||||
}
|
||||
buf.append('}');
|
||||
|
@ -321,13 +317,11 @@ public class JsonApiManager extends BaseApiManager implements WebApiManager {
|
|||
} else {
|
||||
first1 = false;
|
||||
}
|
||||
buf.append("{\"label\":\"");
|
||||
buf.append(escapeJsonString(labelMap
|
||||
.get(Constants.ITEM_LABEL)));
|
||||
buf.append("\", \"value\":\"");
|
||||
buf.append(escapeJsonString(labelMap
|
||||
.get(Constants.ITEM_VALUE)));
|
||||
buf.append("\"}");
|
||||
buf.append("{\"label\":");
|
||||
buf.append(escapeJson(labelMap.get(Constants.ITEM_LABEL)));
|
||||
buf.append(", \"value\":");
|
||||
buf.append(escapeJson(labelMap.get(Constants.ITEM_VALUE)));
|
||||
buf.append('}');
|
||||
}
|
||||
buf.append(']');
|
||||
}
|
||||
|
@ -387,11 +381,11 @@ public class JsonApiManager extends BaseApiManager implements WebApiManager {
|
|||
final SuggestResponseList srList = (SuggestResponseList) entry
|
||||
.getValue();
|
||||
|
||||
buf.append("{\"token\":\"");
|
||||
buf.append(escapeJsonString(entry.getKey()));
|
||||
buf.append("\", \"fn\":\"");
|
||||
buf.append(escapeJsonString(fn));
|
||||
buf.append("\", \"startOffset\":");
|
||||
buf.append("{\"token\":");
|
||||
buf.append(escapeJson(entry.getKey()));
|
||||
buf.append(", \"fn\":");
|
||||
buf.append(escapeJson(fn));
|
||||
buf.append(", \"startOffset\":");
|
||||
buf.append(Integer.toString(srList.getStartOffset()));
|
||||
buf.append(", \"endOffset\":");
|
||||
buf.append(Integer.toString(srList.getEndOffset()));
|
||||
|
@ -406,10 +400,8 @@ public class JsonApiManager extends BaseApiManager implements WebApiManager {
|
|||
} else {
|
||||
first2 = false;
|
||||
}
|
||||
buf.append('"');
|
||||
buf.append(escapeJsonString(suggester
|
||||
buf.append(escapeJson(suggester
|
||||
.convertResultString(value)));
|
||||
buf.append('"');
|
||||
}
|
||||
buf.append("]}");
|
||||
}
|
||||
|
@ -461,9 +453,9 @@ public class JsonApiManager extends BaseApiManager implements WebApiManager {
|
|||
} else {
|
||||
buf.append(',');
|
||||
}
|
||||
buf.append("{\"field\":\"")
|
||||
.append(escapeJsonString(fEntry.getKey()))
|
||||
.append("\",\"analysis\":[");
|
||||
buf.append("{\"field\":")
|
||||
.append(escapeJson(fEntry.getKey()))
|
||||
.append(",\"analysis\":[");
|
||||
boolean first2 = true;
|
||||
for (final Map.Entry<String, List<Map<String, Object>>> aEntry : fEntry
|
||||
.getValue().entrySet()) {
|
||||
|
@ -472,9 +464,9 @@ public class JsonApiManager extends BaseApiManager implements WebApiManager {
|
|||
} else {
|
||||
buf.append(',');
|
||||
}
|
||||
buf.append("{\"name\":\"")
|
||||
.append(escapeJsonString(aEntry.getKey()))
|
||||
.append("\",\"data\":[");
|
||||
buf.append("{\"name\":")
|
||||
.append(escapeJson(aEntry.getKey()))
|
||||
.append(",\"data\":[");
|
||||
boolean first3 = true;
|
||||
for (final Map<String, Object> dataMap : aEntry
|
||||
.getValue()) {
|
||||
|
@ -495,9 +487,7 @@ public class JsonApiManager extends BaseApiManager implements WebApiManager {
|
|||
} else {
|
||||
buf.append(',');
|
||||
}
|
||||
buf.append('\"')
|
||||
.append(escapeJsonString(key))
|
||||
.append("\":")
|
||||
buf.append(escapeJson(key)).append(':')
|
||||
.append(escapeJson(value));
|
||||
}
|
||||
}
|
||||
|
@ -547,9 +537,7 @@ public class JsonApiManager extends BaseApiManager implements WebApiManager {
|
|||
} else {
|
||||
first1 = false;
|
||||
}
|
||||
buf.append("\"");
|
||||
buf.append(escapeJsonString(word));
|
||||
buf.append("\"");
|
||||
buf.append(escapeJson(word));
|
||||
}
|
||||
buf.append(']');
|
||||
} catch (final Exception e) {
|
||||
|
@ -615,9 +603,7 @@ public class JsonApiManager extends BaseApiManager implements WebApiManager {
|
|||
if (i > 0) {
|
||||
buf.append(',');
|
||||
}
|
||||
buf.append('"');
|
||||
buf.append(docIdList.get(i));
|
||||
buf.append('"');
|
||||
buf.append(escapeJson(docIdList.get(i)));
|
||||
}
|
||||
buf.append(']');
|
||||
}
|
||||
|
@ -659,9 +645,8 @@ public class JsonApiManager extends BaseApiManager implements WebApiManager {
|
|||
if (status == 0) {
|
||||
buf.append(body);
|
||||
} else {
|
||||
buf.append("\"message\":\"");
|
||||
buf.append(escapeJsonString(errMsg));
|
||||
buf.append('\"');
|
||||
buf.append("\"message\":");
|
||||
buf.append(escapeJson(errMsg));
|
||||
}
|
||||
buf.append('}');
|
||||
buf.append('}');
|
||||
|
@ -678,6 +663,10 @@ public class JsonApiManager extends BaseApiManager implements WebApiManager {
|
|||
}
|
||||
|
||||
protected String escapeJson(final Object obj) {
|
||||
if (obj == null) {
|
||||
return "null";
|
||||
}
|
||||
|
||||
final StringBuilder buf = new StringBuilder(255);
|
||||
if (obj instanceof List<?>) {
|
||||
buf.append('[');
|
||||
|
@ -708,8 +697,12 @@ public class JsonApiManager extends BaseApiManager implements WebApiManager {
|
|||
|| obj instanceof Float || obj instanceof Double
|
||||
|| obj instanceof Short) {
|
||||
buf.append(obj);
|
||||
} else if (obj == null) {
|
||||
buf.append("\"\"");
|
||||
} else if (obj instanceof Date) {
|
||||
final SimpleDateFormat sdf = new SimpleDateFormat(
|
||||
Constants.DATE_FORMAT_ISO_8601_EXTEND);
|
||||
buf.append('\"')
|
||||
.append(StringEscapeUtils.escapeXml(sdf.format(obj)))
|
||||
.append('\"');
|
||||
} else {
|
||||
buf.append('\"').append(escapeJsonString(obj.toString()))
|
||||
.append('\"');
|
||||
|
@ -718,9 +711,6 @@ public class JsonApiManager extends BaseApiManager implements WebApiManager {
|
|||
}
|
||||
|
||||
protected String escapeJsonString(final String str) {
|
||||
if (str == null) {
|
||||
return "";
|
||||
}
|
||||
|
||||
final StringWriter out = new StringWriter(str.length() * 2);
|
||||
int sz;
|
||||
|
@ -730,11 +720,14 @@ public class JsonApiManager extends BaseApiManager implements WebApiManager {
|
|||
|
||||
// handle unicode
|
||||
if (ch > 0xfff) {
|
||||
out.write("\\u" + hex(ch));
|
||||
out.write("\\u");
|
||||
out.write(hex(ch));
|
||||
} else if (ch > 0xff) {
|
||||
out.write("\\u0" + hex(ch));
|
||||
out.write("\\u0");
|
||||
out.write(hex(ch));
|
||||
} else if (ch > 0x7f) {
|
||||
out.write("\\u00" + hex(ch));
|
||||
out.write("\\u00");
|
||||
out.write(hex(ch));
|
||||
} else if (ch < 32) {
|
||||
switch (ch) {
|
||||
case '\b':
|
||||
|
@ -759,9 +752,11 @@ public class JsonApiManager extends BaseApiManager implements WebApiManager {
|
|||
break;
|
||||
default:
|
||||
if (ch > 0xf) {
|
||||
out.write("\\u00" + hex(ch));
|
||||
out.write("\\u00");
|
||||
out.write(hex(ch));
|
||||
} else {
|
||||
out.write("\\u000" + hex(ch));
|
||||
out.write("\\u000");
|
||||
out.write(hex(ch));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -17,6 +17,8 @@
|
|||
package jp.sf.fess.api.xml;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
@ -118,14 +120,14 @@ public class XmlApiManager extends BaseApiManager implements WebApiManager {
|
|||
.getObject("moreLikeThisResponse");
|
||||
|
||||
buf.append("<query>");
|
||||
buf.append(StringEscapeUtils.escapeXml(query));
|
||||
buf.append(escapeXml(query));
|
||||
buf.append("</query>");
|
||||
buf.append("<exec-time>");
|
||||
buf.append(execTime);
|
||||
buf.append("</exec-time>");
|
||||
if (StringUtil.isNotBlank(queryId)) {
|
||||
buf.append("<query-id>");
|
||||
buf.append(StringEscapeUtils.escapeXml(queryId));
|
||||
buf.append(escapeXml(queryId));
|
||||
buf.append("</query-id>");
|
||||
}
|
||||
buf.append("<page-size>");
|
||||
|
@ -148,13 +150,11 @@ public class XmlApiManager extends BaseApiManager implements WebApiManager {
|
|||
final String name = entry.getKey();
|
||||
if (StringUtil.isNotBlank(name) && entry.getValue() != null
|
||||
&& getQueryHelper().isApiResponseField(name)) {
|
||||
final String tagName = StringUtil.decamelize(name)
|
||||
.replaceAll("_", "-").toLowerCase();
|
||||
final String tagName = convertTagName(name);
|
||||
buf.append('<');
|
||||
buf.append(tagName);
|
||||
buf.append('>');
|
||||
buf.append(StringEscapeUtils.escapeXml(entry.getValue()
|
||||
.toString()));
|
||||
buf.append(escapeXml(entry.getValue()));
|
||||
buf.append("</");
|
||||
buf.append(tagName);
|
||||
buf.append('>');
|
||||
|
@ -169,15 +169,14 @@ public class XmlApiManager extends BaseApiManager implements WebApiManager {
|
|||
if (facetResponse.getFieldList() != null) {
|
||||
for (final Field field : facetResponse.getFieldList()) {
|
||||
buf.append("<field name=\"");
|
||||
buf.append(StringEscapeUtils.escapeXml(field.getName()));
|
||||
buf.append(escapeXml(field.getName()));
|
||||
buf.append("\">");
|
||||
for (final Map.Entry<String, Long> entry : field
|
||||
.getValueCountMap().entrySet()) {
|
||||
buf.append("<value count=\"");
|
||||
buf.append(entry.getValue());
|
||||
buf.append(escapeXml(entry.getValue()));
|
||||
buf.append("\">");
|
||||
buf.append(StringEscapeUtils.escapeXml(entry
|
||||
.getKey()));
|
||||
buf.append(escapeXml(entry.getKey()));
|
||||
buf.append("</value>");
|
||||
}
|
||||
buf.append("</field>");
|
||||
|
@ -189,9 +188,9 @@ public class XmlApiManager extends BaseApiManager implements WebApiManager {
|
|||
for (final Map.Entry<String, Long> entry : facetResponse
|
||||
.getQueryCountMap().entrySet()) {
|
||||
buf.append("<value count=\"");
|
||||
buf.append(entry.getValue());
|
||||
buf.append(escapeXml(entry.getValue()));
|
||||
buf.append("\">");
|
||||
buf.append(StringEscapeUtils.escapeXml(entry.getKey()));
|
||||
buf.append(escapeXml(entry.getKey()));
|
||||
buf.append("</value>");
|
||||
}
|
||||
buf.append("</query>");
|
||||
|
@ -203,7 +202,7 @@ public class XmlApiManager extends BaseApiManager implements WebApiManager {
|
|||
for (final Map.Entry<String, List<Map<String, Object>>> mltEntry : moreLikeThisResponse
|
||||
.entrySet()) {
|
||||
buf.append("<result id=\"");
|
||||
buf.append(StringEscapeUtils.escapeXml(mltEntry.getKey()));
|
||||
buf.append(escapeXml(mltEntry.getKey()));
|
||||
buf.append("\">");
|
||||
for (final Map<String, Object> document : mltEntry
|
||||
.getValue()) {
|
||||
|
@ -212,14 +211,13 @@ public class XmlApiManager extends BaseApiManager implements WebApiManager {
|
|||
.entrySet()) {
|
||||
if (StringUtil.isNotBlank(entry.getKey())
|
||||
&& entry.getValue() != null) {
|
||||
final String tagName = StringUtil
|
||||
.decamelize(entry.getKey())
|
||||
.replaceAll("_", "-").toLowerCase();
|
||||
final String tagName = convertTagName(entry
|
||||
.getKey());
|
||||
buf.append('<');
|
||||
buf.append(tagName);
|
||||
buf.append('>');
|
||||
buf.append(StringEscapeUtils.escapeXml(entry
|
||||
.getValue().toString()));
|
||||
buf.append(escapeXml(entry.getValue()
|
||||
.toString()));
|
||||
buf.append("</");
|
||||
buf.append(tagName);
|
||||
buf.append('>');
|
||||
|
@ -245,6 +243,12 @@ public class XmlApiManager extends BaseApiManager implements WebApiManager {
|
|||
writeXmlResponse(status, buf.toString(), errMsg);
|
||||
}
|
||||
|
||||
private String convertTagName(final String name) {
|
||||
final String tagName = StringUtil.decamelize(name).replaceAll("_", "-")
|
||||
.toLowerCase();
|
||||
return tagName;
|
||||
}
|
||||
|
||||
protected void processLabelRequest(final HttpServletRequest request,
|
||||
final HttpServletResponse response, final FilterChain chain) {
|
||||
int status = 0;
|
||||
|
@ -260,12 +264,10 @@ public class XmlApiManager extends BaseApiManager implements WebApiManager {
|
|||
for (final Map<String, String> labelMap : labelTypeItems) {
|
||||
buf.append("<label>");
|
||||
buf.append("<name>");
|
||||
buf.append(StringEscapeUtils.escapeXml(labelMap
|
||||
.get(Constants.ITEM_LABEL)));
|
||||
buf.append(escapeXml(labelMap.get(Constants.ITEM_LABEL)));
|
||||
buf.append("</name>");
|
||||
buf.append("<value>");
|
||||
buf.append(StringEscapeUtils.escapeXml(labelMap
|
||||
.get(Constants.ITEM_VALUE)));
|
||||
buf.append(escapeXml(labelMap.get(Constants.ITEM_VALUE)));
|
||||
buf.append("</value>");
|
||||
buf.append("</label>");
|
||||
}
|
||||
|
@ -320,30 +322,28 @@ public class XmlApiManager extends BaseApiManager implements WebApiManager {
|
|||
if (suggester != null) {
|
||||
buf.append("<suggest>");
|
||||
buf.append("<token>");
|
||||
buf.append(StringEscapeUtils.escapeXml(entry
|
||||
.getKey()));
|
||||
buf.append(escapeXml(entry.getKey()));
|
||||
buf.append("</token>");
|
||||
buf.append("<fn>");
|
||||
buf.append(StringEscapeUtils.escapeXml(fn));
|
||||
buf.append(escapeXml(fn));
|
||||
buf.append("</fn>");
|
||||
buf.append("<start-offset>");
|
||||
buf.append(StringEscapeUtils.escapeXml(Integer
|
||||
.toString(srList.getStartOffset())));
|
||||
buf.append(escapeXml(Integer.toString(srList
|
||||
.getStartOffset())));
|
||||
buf.append("</start-offset>");
|
||||
buf.append("<end-offset>");
|
||||
buf.append(StringEscapeUtils.escapeXml(Integer
|
||||
.toString(srList.getEndOffset())));
|
||||
buf.append(escapeXml(Integer.toString(srList
|
||||
.getEndOffset())));
|
||||
buf.append("</end-offset>");
|
||||
buf.append("<num-found>");
|
||||
buf.append(StringEscapeUtils.escapeXml(Integer
|
||||
.toString(srList.getNumFound())));
|
||||
buf.append(escapeXml(Integer.toString(srList
|
||||
.getNumFound())));
|
||||
buf.append("</num-found>");
|
||||
buf.append("<result>");
|
||||
for (final String value : srList) {
|
||||
buf.append("<value>");
|
||||
buf.append(StringEscapeUtils
|
||||
.escapeXml(suggester
|
||||
.convertResultString(value)));
|
||||
buf.append(escapeXml(suggester
|
||||
.convertResultString(value)));
|
||||
buf.append("</value>");
|
||||
}
|
||||
buf.append("</result>");
|
||||
|
@ -390,13 +390,12 @@ public class XmlApiManager extends BaseApiManager implements WebApiManager {
|
|||
.entrySet()) {
|
||||
|
||||
buf.append("<field name=\"")
|
||||
.append(StringEscapeUtils.escapeXml(fEntry.getKey()))
|
||||
.append("\">");
|
||||
.append(escapeXml(fEntry.getKey())).append("\">");
|
||||
for (final Map.Entry<String, List<Map<String, Object>>> aEntry : fEntry
|
||||
.getValue().entrySet()) {
|
||||
buf.append("<analysis name=\"")
|
||||
.append(StringEscapeUtils.escapeXml(aEntry
|
||||
.getKey())).append("\">");
|
||||
.append(escapeXml(aEntry.getKey()))
|
||||
.append("\">");
|
||||
for (final Map<String, Object> dataMap : aEntry
|
||||
.getValue()) {
|
||||
buf.append("<token>");
|
||||
|
@ -406,8 +405,7 @@ public class XmlApiManager extends BaseApiManager implements WebApiManager {
|
|||
final Object value = dEntry.getValue();
|
||||
if (StringUtil.isNotBlank(key) && value != null) {
|
||||
buf.append("<value name=\"")
|
||||
.append(StringEscapeUtils
|
||||
.escapeXml(key))
|
||||
.append(escapeXml(key))
|
||||
.append("\">")
|
||||
.append(escapeXml(value))
|
||||
.append("</value>");
|
||||
|
@ -453,7 +451,7 @@ public class XmlApiManager extends BaseApiManager implements WebApiManager {
|
|||
buf.append(body);
|
||||
} else {
|
||||
buf.append("<message>");
|
||||
buf.append(StringEscapeUtils.escapeXml(errMsg));
|
||||
buf.append(escapeXml(errMsg));
|
||||
buf.append("</message>");
|
||||
}
|
||||
buf.append("</response>");
|
||||
|
@ -478,6 +476,10 @@ public class XmlApiManager extends BaseApiManager implements WebApiManager {
|
|||
.append(escapeXml(entry.getValue())).append("</value>");
|
||||
}
|
||||
buf.append("</data>");
|
||||
} else if (obj instanceof Date) {
|
||||
final SimpleDateFormat sdf = new SimpleDateFormat(
|
||||
Constants.DATE_FORMAT_ISO_8601_EXTEND);
|
||||
buf.append(StringEscapeUtils.escapeXml(sdf.format(obj)));
|
||||
} else if (obj != null) {
|
||||
buf.append(StringEscapeUtils.escapeXml(obj.toString()));
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue