Reputation: 355
I use Alfresco Community4.0.e, chemistry-opencmis-client 0.7.0,primefaces 3.4.1 i want to add "Edit offline" feature to my attachment Files in my web application to do this I try to use the Web Scripts "checkedout" but I couldn't find the proper way to invoke this Web Scripts I run this Web Scripts through "CMIS WorkBench" and I tried to read the log I found that alfresco invoke this Web Scripts like this
DEBUG ent.bindings.spi.http.DefaultHttpInvoker: POST http://fateh:8080/alfresco/service/cmis/checkedout
TRACE ent.bindings.spi.http.DefaultHttpInvoker: POST http://fateh:8080/alfresco/service/cmis/checkedout > Headers: {null=[HTTP/1.1 201 Created], Date=[Tue, 16 Jul 2013 10:38:53 GMT],Transfer-Encoding=[chunked], Location=[http://fateh:8080/alfresco/service/cmis/pwc/s/workspace:SpacesStore/..., Content-Type=[application/atom+xml;type=entry;charset=UTF-8], Server=[Apache-Coyote/1.1],Pragma=[no-cache], Cache-Control=[no-cache]}
i try to write code to match what i understand from the log but it not working -_-
public String cancelCheckOut(String objID) throws JSONException{
try{
HttpPost httpPost = new HttpPost("http://"+Constant.getAlfrescoIpConcatPort()+"/alfresco/service/cmis/checkedout");
//StringEntity requestEntity =new StringEntity(json);
//httpPost.setEntity(requestEntity);
httpPost.setHeader("Transfer-Encoding", "chunked");
httpPost.setHeader("Content-type", "application/atom+xml");
httpPost.setHeader("Location", "http://50.17.228.246:80/alfresco/service/cmis/pwc/s/workspace:SpacesStore/i/5b4772c9-8d8d-4fab-a7b9-5fe5d25b45f1");
httpPost.setHeader("Content-Type", "application/atom+xml;type=entry;charset=UTF-8");
httpPost.setHeader("Pragma", "no-cache");
httpPost.setHeader("Cache-Control", "no-cache");
System.out.println("Http post "+ httpPost.toString());
HttpResponse response = client.execute(httpPost);
System.out.println("response "+ response.toString());
HttpEntity entity = response.getEntity();
if (entity != null) {
return "done";
}
}catch (Exception ex) {
System.out.println(ex.getLocalizedMessage());
} finally {
client.getConnectionManager().shutdown();
}
return "failed";
}
Any help?
Upvotes: 0
Views: 711
Reputation: 355
I found more Easy Way to create Private Working copy Because I not used before curl query
Session session = CMISUtils.getSession();
Document doc = (Document) session.getObject(session.createObjectId(attachment.getIdAttachment()));
Document pwc = (Document) session.getObject(doc.checkOut());
Upvotes: 0
Reputation: 60203
Just to explicit on alfrescian's answer, here is what you have to write before client.execute:
String data = "what alfrescian wrote";
httpPost.setEntity(new StringEntity(data));
Upvotes: 0
Reputation: 4079
You'll have to add add a payload to your POST to specify the document you'd like to checkout, e.g.:
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom"
xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200908/"
xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/">
<cmisra:object>
<cmis:properties>
<cmis:propertyId propertyDefinitionId="cmis:objectId">
<cmis:value>workspace:/SpacesStore/5b4772c9-8d8d-4fab-a7b9-5fe5d25b45f1</cmis:value>
</cmis:propertyId>
</cmis:properties>
</cmisra:object>
</entry>
curl query to check out a document using the CMIS protocol
Upvotes: 2