【发布时间】:2014-06-17 03:13:47
【问题描述】:
我正在尝试使用 alfresco 4.2.c rest api /alfresco/wcservice/api/sites (PUT) 创建一个站点 我使用的是管理员用户,所以权限没有问题。 我能够使用 alfresco 共享 UI 成功创建站点
String objectToPost = "{\"shortName\":\"firm007\", \"title\":\"firm007\", \"description\":\"firm007\", \"visibility\":\"PRIVATE\", \"isPublic\":\"false\", \"sitePreset\":\"site-dashboard\"}";
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
HttpEntity<String> entity = new HttpEntity<String>(objectToPost,headers);
String url = PRE_URL + "/alfresco/wcservice/api/sites"+"?alf_ticket="+ TICKET;
String response = restTemplate.exchange(url,HttpMethod.POST, entity, String.class, new Object[] {}).toString();
System.out.println("Created SITE response is =" + response);
我在客户端代码上收到 500 Internal Server Error 在露天服务器上,我正在跟踪堆栈跟踪。
请您帮忙解决这个问题。 我想通过远程 REST api 调用创建一个露天网站
2014-06-17 08:39:38,232 错误 [freemarker.runtime] [http-apr-8080-exec-4] 模板处理错误:“表达式 site.shortName 在 org/ 第 9 行第 56 列未定义/ alfresco/repository/site/site.lib.ftl。”
表达式 site.shortName 在 org/alfresco/repository/site/site.lib.ftl 的第 9 行第 56 列未定义。
有问题的指令:
==> ${url.serviceContext + "/api/sites/" + site.shortName} 转义 ${jsonUtils.encodeJSONString(url.serviceContext + "/api/sites/" + site.shortName)} [on org/alfresco/repository/site/site.lib.ftl 中的第 9 行第 17 列] 在用户指令站点JSONManagers [在 org/alfresco/repository/site/site.lib.ftl 中的第 2 行,第 1 列]
在用户指令 siteLib.siteJSON [on 2 line, column 1 in org/alfresco/repository/site/sites.post.json.ftl]
面向程序员的 Java 回溯:
freemarker.core.InvalidReferenceException:表达式 site.shortName 在 org/alfresco/repository/site/site.lib.ftl 的第 9 行第 56 列未定义。
原因:freemarker.core.InvalidReferenceException:表达式 site.shortName 在 org/alfresco/repository/site/site.lib.ftl 的第 9 行第 56 列未定义。 在 freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:125) 在 freemarker.core.Expression.getStringValue(Expression.java:118) 在 freemarker.core.AddConcatExpression._getAsTemplateModel(AddConcatExpression.java:98) 在 freemarker.core.Expression.getAsTemplateModel(Expression.java:89) 在 freemarker.core.ListLiteral.getModelList(ListLiteral.java:119) 在 freemarker.core.MethodCall._getAsTemplateModel(MethodCall.java:91) 在 freemarker.core.Expression.getAsTemplateModel(Expression.java:89) 在 freemarker.core.Expression.getStringValue(Expression.java:93)
【问题讨论】: