01-13-2010 04:48 AM
01-16-2010 07:06 AM
03-09-2010 04:03 AM
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import org.apache.abdera.Abdera;
import org.apache.abdera.model.Document;
import org.apache.abdera.model.Element;
import org.apache.abdera.model.Entry;
import org.apache.abdera.model.ExtensibleElement;
import org.apache.abdera.model.Feed;
import org.apache.abdera.parser.ParseException;
import org.apache.abdera.parser.Parser;
import org.apache.abdera.protocol.client.AbderaClient;
import org.apache.abdera.protocol.client.ClientResponse;
import org.apache.abdera.protocol.client.RequestOptions;
import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;
public class ClienteAbderaCMIS {
/**
* @param args
* @throws IOException
* @throws ParseException
*/
public static String NS_CMIS_RESTATOM = "http://docs.oasis-open.org/ns/cmis/restatom/200908/";
public static String NS_CMIS_CORE = "http://docs.oasis-open.org/ns/cmis/core/200908/";
public static String CMISRA = "cmisra";
public static String CMIS = "cmis";
public static void main(String[] args) throws ParseException, IOException {
//Obtenemos un parser
Abdera abdera = new Abdera();
Parser parser = abdera.getParser();
//URL de la carpeta (espacio) al que nos conectaremos
URL url = new URL("http://localhost:8080/alfresco/s/cmis/p/User%20Homes/Cecilia%20Albo/children");
//Usuario y password con permisos sobre la carpeta
String credenciales = "admin" + ":" + "admin";
//Abrimos la conexión
URLConnection uconn = url.openConnection();
//Metemos las credenciales (usuario + password) en la cabecera de la petición (cuidado con el espacio en blanco)
uconn.setRequestProperty("Authorization", "Basic" + " " + Base64.encode(credenciales.getBytes()));
//Obtenemos la respuesta del servidor
InputStream content = uconn.getInputStream();
//Parseamos la respuesta
Document<Feed> doc = parser.parse(content);
//Obtenemos el elemento raíz (nombre de la carpeta)
Feed feed = doc.getRoot();
System.out.println(feed.getTitle());
//Obtenemos los elementos hijos del elemento raíz
for(Entry entry : feed.getEntries()){
System.out.println("\t" + entry.getTitle());
}
//Instanciamos una nueva entrada (contenido)
Entry entry = abdera.newEntry();
entry.setTitle("TestAbderaFolder");
entry.setSummary("Test Abdera Folder");
/*
*Creamos el documento
*
*
*<?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/">
<title>Someco</title>
<cmisra:object>
<cmis:properties>
<cmis:propertyId propertyDefinitionId="cmis:objectTypeId">
<cmis:value>cmis:folder</cmis:value>
</cmis:propertyId>
</cmis:properties>
</cmisra:object>
</entry>
*/
ExtensibleElement objElement = entry.addExtension(NS_CMIS_RESTATOM, "object", CMISRA);
ExtensibleElement propsElement = objElement.addExtension(NS_CMIS_CORE, "properties", CMIS);
ExtensibleElement stringElement = propsElement.addExtension(NS_CMIS_CORE, "propertyId", CMIS);
stringElement.setAttributeValue("propertyDefinitionId","cmis:objectTypeId");
Element valueElement = stringElement.addExtension(NS_CMIS_CORE, "value", CMIS);
valueElement.setText("cmis:folder");
//Intanciamos un cliente Abdera
AbderaClient client = new AbderaClient();
RequestOptions options = new RequestOptions();
options.setHeader("Authorization", "Basic" + " " + Base64.encode(credenciales.getBytes()));
ClientResponse response = null;
response = client.post("http://localhost:8080/alfresco/s/cmis/p/User%20Homes/Cecilia%20Albo/Documentos%20Personales/children", entry, options);
}
}
03-10-2010 08:55 AM
org.apache.chemistry.CMISRuntimeException: Remote server returned error code: 405
14:51:44,043 User:admin ERROR [web.scripts.AbstractRuntime] Exception from executeScript - redirecting to status template error: 02100006 Script url /cmis/s/workspace:SpacesStore/i/95e0fc58-7a98-41e6-9c83-2a765253a185 does not support the method POST
org.alfresco.web.scripts.WebScriptException: 02100006 Script url /cmis/s/workspace:SpacesStore/i/95e0fc58-7a98-41e6-9c83-2a765253a185 does not support the method POST
package es.uniovi.pfc.chemistry.test;
import java.io.Serializable;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import org.apache.chemistry.Folder;
import org.apache.chemistry.NameConstraintViolationException;
import org.apache.chemistry.Repository;
import org.apache.chemistry.RepositoryInfo;
import org.apache.chemistry.Type;
import org.apache.chemistry.UpdateConflictException;
import org.apache.chemistry.atompub.client.APPConnection;
import org.apache.chemistry.atompub.client.APPRepositoryService;
public class TestChemistry {
/**
* @param args
*/
public static final String PARAM_USERNAME = "username";
public static final String PARAM_PASSWORD = "password";
public static void main(String[] args) throws NameConstraintViolationException, UpdateConflictException {
String username = "admin";
String password = "admin";
Map<String, Serializable> params = new HashMap<String, Serializable>();
params.put(PARAM_USERNAME, username);
params.put(PARAM_PASSWORD, password);
Repository repository = new APPRepositoryService("http://localhost:8080/alfresco/s/cmis", params)
.getDefaultRepository();
RepositoryInfo repositoryInfo = repository.getInfo();
System.out.println(repositoryInfo.getName());
System.out.println(repositoryInfo.getProductName());
System.out.println(repositoryInfo.getVendorName());
System.out.println(repositoryInfo.getProductVersion());
Collection<Type> types = repository.getTypes();
for (Type type : types) {
System.out.println("Type id:" + type.getId());
}
APPConnection connection = (APPConnection) repository.getConnection(params);
Folder folder = connection.getRootFolder();
System.out.println("Root folder id: " + folder.getId());
System.out.println("Root folder nombre" + folder.getName());
Folder childrenFolder = folder.newFolder("cmis:folder");
childrenFolder.setName("PruebaChemistry");
childrenFolder.save();
}
}
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.