Я столкнулся с невероятно очень неприятной ошибкой. Это работало без проблем в пятницу, и я развернул его прошлой ночью, сегодня обнаружил, что измененная временная метка неправильно отформатирована для iso8690 (приложение, которое переваривает канал, очень строгое), поэтому я переформатировал его и создал банку для тестирования. Эта ошибка возникает:
05110009 Failed to execute script 'classpath*:alfresco/site-webscripts/org/foo/components/dashlets/recent-docs.get.js': 05110008 SyntaxError: illegally formed XML syntax (jar:file:/usr/share/tomcat6/shared/lib/recent-docs.jar!/alfresco/site-webscripts/org/foo/components/dashlets/recent-docs.get.js#20(eval)#1)
Поэтому я возвращаю изменения, и отображается точно такая же ошибка. Может ли кто-нибудь сказать мне, почему я получаю это? Я даже скопировал оригинальную банку обратно, та же ошибка.
Вот пример вывода JSON, сгенерированного веб-скриптом репо:
{
"documents":
[
{
"site": "swsdp",
"nodeRef": "workspace://SpacesStore/1a0b110f-1e09-4ca2-b367-fe25e4964a4e",
"id": "1a0b110f-1e09-4ca2-b367-fe25e4964a4e",
"name": "Project Contract.pdf",
"title": "Project Contract for Green Enery",
"creator": "abeecher",
"description": "Conract for the Green Energy project",
"categories": [
],
"created": "15 Feb 2011 21:26:54 PM (UTC)",
"modified": "14 Jun 2011 10:28:54 AM (UTC)"
},
{
"site": "swsdp",
"nodeRef": "workspace://SpacesStore/05dedd34-9d9d-48d9-9af6-c81b555541c9",
"id": "05dedd34-9d9d-48d9-9af6-c81b555541c9",
"name": "WebSiteReview.mp4",
"title": "WebSiteReview.mp4",
"creator": "abeecher",
"description": "This is a video of the mock up to show the planned structure for the new web site.",
"categories": [
],
"created": "08 Mar 2011 10:35:10 AM (UTC)",
"modified": "08 Mar 2011 10:37:43 AM (UTC)"
}
]
}
И поделиться материалом веб-скрипта
recent-docs.get.desc.xml
<shortname>Recently Modified Documents</shortname>
<description>Retrieve Recently Modified content for a site</description>
<url>/components/recent-docs?site={site}</url>
<arg>
<shortname>site</shortname>
<description><![CDATA[site name]]></description>
</arg>
<format default="html">argument</format>
<authentication>user</authentication>
<transaction>required</transaction>
<cache>
<neverCache>false</neverCache>
<mustRevalidate/>
</cache>
</webscript>
recent-docs.get.js
function main()
{
for (var arg in args)
{
if (arg == "site")
{
model.site = args[arg];
}
}
// call the repository to get recent documents
var connector = remote.connect("alfresco");
var json = connector.call("/recent-docs?site=" + escape(model.site));
if (json.status == 200)
{
obj = eval("(" + json + ")");
model.docs = obj["documents"];
}
else
{
obj = eval("(" + json + ")");
obj.name = "Error";
model.docs = obj;
}
}
main();
recent-docs.get.atom.ftl
<feed xmlns="http://www.w3.org/2005/Atom">
<generator version="${server.version}">Alfresco (${server.edition})</generator>
<link rel="self" href="${absurl(url.full)?xml}" />
<id>${absurl(url.full)?xml}</id>
<title>Site: ${site}</title>
<subtitle>Alfresco Recently Modified Documents</subtitle>
<updated>${xmldate(date)}</updated>
<icon>${absurl(url.context)}/res/themes/default/images/app-logo-48.png</icon>
<#list docs as child>
<entry xmlns='http://www.w3.org/2005/Atom'>
<title>${child.name?html}</title>
<link href="${absurl(url.context)}/page/document-details?nodeRef=${child.nodeRef}"/>
<id>urn:uuid:${child.id}</id>
<updated>${child.modified}</updated>
<summary>
${msg("feed.uploaded", child.name, child.creator)}<br />
<#if child.modifier?exists>${msg("feed.modified", child.modified, child.modifier)}<br /></#if>
${child.description!""}<br />
<#if child.categories[0]?exists>
${msg("feed.categories")} <#list child.categories as category> ${category.name}<#if category_has_next>, </#if></#list></#if><br />
</summary>
<author>
<name>${child.creator}</name>
</author>
</entry>
</#list>
</feed>
Я безуспешно пытался взломать это, пытаясь сделать разные вещи, у меня есть набор изменений, чтобы исправить шаблон атома, чтобы он был действительным документом атома, но мне нужно выяснить, почему появляется эта ошибка. Я думаю, это потому, что я не конвертирую все в строку в веб-скрипте репо (только время изменения/создания), но неясно, как мне его подготовить.
Обновить Я изменил шаблон атома для работы на стороне репозитория, и результат является действительным XML, так что, по крайней мере, это работает. Что касается общего доступа, я все еще вижу синтаксическую ошибку, которая вызывает проблемы, поскольку я планирую создать с ней дашлет.