Servlets AEM Servlet响应写入程序删除链接
在AEM中,我试图通过get servlet编写一个包含字符串对象的JSON对象,如下所示:Servlets AEM Servlet响应写入程序删除链接,servlets,aem,sling,Servlets,Aem,Sling,在AEM中,我试图通过get servlet编写一个包含字符串对象的JSON对象,如下所示: response.setContentType("application/json"); response.setCharacterEncoding("UTF-8"); response.getWriter().write(jsonObject.toString()); 响应类型为SlingHttpServletResponse 当在浏览器中访问servlet时,aem日志会显示一条警告: 03.08
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(jsonObject.toString());
响应类型为SlingHttpServletResponse
当在浏览器中访问servlet时,aem日志会显示一条警告:
03.08.2015 16:55:27.359 *WARN* [127.0.0.1 [1438617327343] GET /bin/integration.json HTTP/1.1] com.day.cq.rewriter.linkchecker.impl.LinkCheckerImpl Ignoring malformed URI: java.net.URISyntaxException: Illegal character in path at index 0: \
包括上面的链接在内的许多模式都忽略了链接检查器
例如,json中的字符串对象:
pageIntro:'this <a href="http://www.domain.com/my-section/page.html">link</a> doesn't work'
pageIntro:“这不起作用”
变成:
pageIntro:'this link</a> doesn't work'
pageIntro:“此链接不起作用”
任何帮助都将不胜感激
干杯,
Alex通过对AEM 6.0进行快速修改,我无法重现这个问题。 下面是我在servlet中所做的。附加下面的代码段。为了达到这个目标,你还做了什么
import java.io.IOException;
import javax.servlet.ServletException;
import org.apache.felix.scr.annotations.sling.SlingServlet;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.servlets.SlingAllMethodsServlet;
import org.apache.sling.commons.json.JSONException;
import org.apache.sling.commons.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@SlingServlet( label = "Stack Overflow - Sabya Test Servlet",
description = "Used for quick fiddle",
paths="/bin/sabya-servlet.json",
metatype = true
)
public class SabyaTestServlet extends SlingAllMethodsServlet {
private static final long serialVersionUID = 1335893917596088016L;
private static final Logger log = LoggerFactory
.getLogger(SabyaTestServlet.class);
@Override
protected void doGet(SlingHttpServletRequest request,
SlingHttpServletResponse response) throws ServletException,
IOException {
log.trace("Sabya Test Servlet : doGet() starts .. ");
JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("pageIntro", "this <a href='http://www.domain.com/my-section/page.html'>link</a> doesn't work");
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(jsonObject.toString());
} catch (JSONException e) {
log.error("Something ridiculous has happened !! {}" , e);
}
log.trace("Sabya Test Servlet : doGet() ends .. ");
}
}
注意:我相信您使用的是org.apache.sling.commons.json.JSONObject
{
pageIntro: "this <a href='http://www.domain.com/my-section/page.html'>link</a> doesn't work"
}