0

我正在运行两个 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'的问题”。但是为什么它在测试系统上工作呢?

4

1 回答 1

1
Caused by: javax.jcr.NoSuchWorkspaceException:

That gives you the clue. Most likely whatever you have in content.image1 doesn't contain valid workspace name in your prod env while it does in your test env. Basically I think it's the data issue, not the script issue.

于 2013-05-29T04:45:16.483 回答