Alfresco 4.2.c REST API:创建错误的站点 [英] Alfresco 4.2.c rest api: create site giving error

查看:66
本文介绍了Alfresco 4.2.c REST API:创建错误的站点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用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:创建错误的站点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆