0

我正在尝试使用 wcm API 从 WCM 呈现富文本内容。我有jsp这样做。它为除匿名之外的所有用户组正确呈现。当我查看渲染的内容时,我在富文本中看到损坏的图像。当我登录并查看渲染的内容时,会显示图像。

这是我的代码:

Workspace ws = WCM_API.getRepository().getSystemWorkspace();
ws.login();
DocumentLibrary lib = ws.getDocumentLibrary("Portal Site");
String s1 = "";
String s2 = "";


if (lib!=null) {
    DocumentIdIterator<Document> it = ws.findByName(DocumentTypes.Content,"kino");

    if (it.hasNext()) {
        DocumentId<Document> docid = it.next();

        Content doc = (Content) ws.getById(docid);
        s1 = "Title: " + doc.getTitle() + "\n";

        RichTextComponent c = (RichTextComponent) doc.getComponent("Body");

        s2 = "Text: " + c.getRichText();
    }
} 
out.println(s1);
out.println(s2);

s2 为授权用户输出带有图像的富文本。当我注销并查看 s2 输出时:显示文本但图像损坏

4

2 回答 2

0

请确保在用户级别授予您对所有 RichText 组件和父站点区域的匿名访问权限。并在工作区对象上添加此调用

workspace.useUserAccess(true);
于 2015-06-10T10:40:26.387 回答
0

就我而言,解决方案与访问级别无关!我检查了内容的 url,在这两种情况下它都包含 /myconnect 字(例如:http:ip_address:port/wps/wcm/myconnect/...)我发现 myconnect 是针对授权用户的,而 connect 是针对匿名用户的。(例如:http:ip_address:port/wps/wcm/connect/...) 只需在 wcm 内容的 url 中用 connect 替换 myconnect,我就设法解决了这个问题:

于 2015-07-02T09:56:49.297 回答