有人知道如何从java创建露天网站吗?我找到了两个应该创建网站的api调用:
1)POST / alfresco / service / api / sites。这成功创建了一个网站,但当我尝试在露天网站上访问时,它给了我这个错误:
发生了服务器错误。
为什么会发生这种情况有很多原因: 您试图访问不存在的页面 - 检查地址栏中的URL。 您试图访问无法访问的页面,例如专用站点仪表板。 已请求有效页面,但由于内部错误,服务器无法呈现该页面 - 请与管理员联系。
返回信息中心页面
Alfresco Software Inc.©2005-2013保留所有权利。
2)POST / share / service / modules / create-site,这给了我一个未授权的401。我正在传递正确的露天认证票。有没有人有编程方式创建网站的经验?最好用java。
答案 0 :(得分:1)
这在python中对我有用。也许它对你也有帮助。
首先发布到Share的DoLogin页面以获取JSESSIONID Cookie,alflogin和alfusername
h1 = httplib.HTTPConnection(127.0.0.1,8080)
headers = {"Content-type": "application/x-www-form-urlencoded"}
pa = "username="+username+"&password="+password
h1.request("POST","/share/page/dologin",pa,headers)
response = h1.getresponse().getheaders()
现在拆分JSESSION ID,alfusername和alflogin的响应
cookie = jsessionid +"; "+alflogin+"; "alfusername+";"
value = {"title": "Test Side", "visibility":"PUBLIC", "description":"Add descripton here","sitePreset": "MySitePreset", "shortName": "test_side"}
headers2 = {"Content-type":"application/json", "Accept":"application/json", "Cookie": cookie}
# Get Request on any Share Page to get in touch with Share
request.get("http://127.0.0.1:8080/share/page/user/admin/dashboard", auth=(username,password), headers=headers2)
request.post("http://127.0.0.1:8080/share/service/modules/create-site", auth=(username,password), data=json.dumps(value), headers=headers2)
这会创建一个也可以访问的Alfresco网站
答案 1 :(得分:0)
如果您使用Alfresco 4.1.4或更高版本,则该问题可能出现在该版本中引入的CSRF策略中。您可以在此处找到更多信息:http://blogs.alfresco.com/wp/ewinlof/2013/03/11/introducing-the-new-csrf-filter-in-alfresco-share/
同样在这里:http://ecmstuff.blogspot.ch/2012/03/creating-alfresco-share-sites-with.html你可以找到一个非常好的教程,对我有用。 你可以在github上找到工作项目:https://github.com/streetturtle/Alfresco/tree/master/AutomaticSiteCreation