【问题标题】:Magnolia CMS: Problems calling function 'cmsfn:linkForWorkspace'Magnolia CMS:调用函数“cmsfn:linkForWorkspace”时出现问题
【发布时间】:2013-05-28 08:54:18
【问题描述】:

我正在运行两个 Magnolia 环境(一个用于测试,一个用于生产,都是 4.5.2 CE)。现在在我的测试安装中,我的脚本运行良好。在另一个(生产性)环境中,即使我从良好的工作测试环境中复制了所有内容,我也会遇到模板错误。

我的脚本:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="cmsfn" uri="http://magnolia-cms.com/taglib/templating-components/cmsfn" %>

<c:set var="imageLink1" value="${cmsfn:linkForWorkspace(content.image1,content.image1DmsUUID)}"/>
<c:if test="${cmsfn:isPublicInstance()}">
    <c:set var="imageLink1" value="${fn:replace(imageLink1, 'magnoliaPublic', 'content')}" />
</c:if>

以下是仅在生产系统上失败的原因(来自 catalina.out): http://pastebin.com/ANtEjBCW

你看,错误是“调用函数'cmsfn:linkForWorkspace'的问题”。但是为什么它在测试系统上工作呢?

【问题讨论】:

    标签: jsp content-management-system magnolia


    【解决方案1】:
    Caused by: javax.jcr.NoSuchWorkspaceException:
    

    这给了你线索。 content.image1 中的任何内容很可能在您的 prod 环境中不包含有效的工作区名称,而在您的测试环境中包含。基本上我认为是数据问题,而不是脚本问题。

    【讨论】:

    • 你好,一月!感谢您的回答;)正如您所建议的工作区可能有问题,我打印了 content.image1content.image1DmsUUID 以查看是否返回“dms “就像在我的测试环境中一样。我愿意!所以不知何故,它没有找到“dms”工作区,对吗?
    • 是的,没错,您的 prod 系统中的数据缺少“工作区”名称。我不确定您是如何创建数据的,但您似乎使用了 DAMHandler。如果您没有更改默认配置,那么用户可以在 DMS 和上传之间进行选择,因此很有可能在您的测试环境中,您有链接到 DMS 的图像,在您的产品环境中,用户选择更改图片并手动上传了一些。您应该检查产品数据到底是什么。
    猜你喜欢
    • 2017-02-26
    • 1970-01-01
    • 1970-01-01
    • 2021-08-22
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 2017-07-17
    • 1970-01-01
    相关资源
    最近更新 更多