我正在尝试使用alfresco 4.2.c创建站点。rest api / alfresco / wcservice / api / sites(PUT)我正在使用admin用户,因此权限没有问题。 我能够使用露天共享用户界面成功创建网站
I am trying to create a site using alfresco 4.2.c rest api /alfresco/wcservice/api/sites (PUT) I am using admin user so no issues with permissions. I am able to create site successfully using the alfresco share 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,我
I am getting 500 Internal Server Error on client side code and on alfresco server, I am getting following stack traces.
请帮助您解决此问题。 我想通过远程REST api调用创建一个露天站点
please can you help solve this issue. I want to create an alfresco site, through a remote REST api call
2014-06-17 08:39:38,232错误[freemarker.runtime] [ http-apr-8080-exec-4]模板处理错误:表达式site.shortName在org / alfresco / repository / site / site.site.lib.ftl中的第9行第56列中未定义。
2014-06-17 08:39:38,232 ERROR [freemarker.runtime] [http-apr-8080-exec-4] Template processing error: "Expression site.shortName is undefined on line 9, column 56 in org/alfresco/repository/site/site.lib.ftl."
表达式site.shortName在org / alfresco / repository / site / site.site.lib.ftl中的第9行第56列中未定义。
Expression site.shortName is undefined on line 9, column 56 in org/alfresco/repository/site/site.lib.ftl.
==> $ {url.serviceContext + / api / sites / + site.shortName}转义了$ {jsonUtils.encodeJSONString(url.serviceContext + / api / sites / + site.shortName)} [在第9行,org / alfresco / repository / site / site.lib.ftl中的第17列] 在用户指令siteJSONManagers中[在第2行, org / alfresco / repository / site / site.lib.ftl中的第1列
==> ${url.serviceContext + "/api/sites/" + site.shortName} escaped ${jsonUtils.encodeJSONString(url.serviceContext + "/api/sites/" + site.shortName)} [on line 9, column 17 in org/alfresco/repository/site/site.lib.ftl] in user-directive siteJSONManagers [on line 2, column 1 in org/alfresco/repository/site/site.lib.ftl]
freemarker.core.InvalidReferenceException:表达式site.shortName在org / alfresco / repository / site / site.site.lib.ftl中的第9行第56列中未定义。
freemarker.core.InvalidReferenceException: Expression site.shortName is undefined on line 9, column 56 in org/alfresco/repository/site/site.lib.ftl.
原因:freemarker.core.InvalidReferenceException:表达式site.shortName在org / alfresco / repository / site / 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)
Caused by: freemarker.core.InvalidReferenceException: Expression site.shortName is undefined on line 9, column 56 in org/alfresco/repository/site/site.lib.ftl. at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:125) at freemarker.core.Expression.getStringValue(Expression.java:118) at freemarker.core.AddConcatExpression._getAsTemplateModel(AddConcatExpression.java:98) at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) at freemarker.core.ListLiteral.getModelList(ListLiteral.java:119) at freemarker.core.MethodCall._getAsTemplateModel(MethodCall.java:91) at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) at freemarker.core.Expression.getStringValue(Expression.java:93)
推荐答案解决了这个小难题。
我没有将内容类型添加为 application / json,因此请求发出错误的树,然后转到ftl而不是json
I had not added the content-type as "application/json" hence the request was barking up the wrong tree and going to ftl instead of json
下面的代码可以在
headers.set("Content-Type", "application/json"); String objectToPost = "{\"shortName\":\"firm008\", \"title\":\"firm008\", \"description\":\"firm008\", \"visibility\":\"PRIVATE\", \"isPublic\":\"false\", \"sitePreset\":\"site-dashboard\"}"; System.out.println(objectToPost); RestTemplate restTemplate = new RestTemplate(); HttpHeaders headers = new HttpHeaders(); **headers.set("Content-Type", "application/json");** 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);更多推荐
Alfresco 4.2.c REST API:创建错误的站点
发布评论