Está en la página 1de 8

Investigación

Servicios Web que brindan ciertos sitios Web y que se los puede llamar desde
un lenguaje de programación.

Los siguientes ejemplos están realizados en java (NetBeans).

Ejemplo 1. Autenticación y obtención de Stores.


Este ejemplo muestra como autenticar un usuario, proporciona un ejemplo de
CallbackHandler y muestra cómo obtener una lista de stores disponibles.

import
org.alfresco.webservice.repository.RepositoryServiceSoapBin
dingStub;
import org.alfresco.webservice.types.Store;
import org.alfresco.webservice.util.AuthenticationUtils;
import org.alfresco.webservice.util.WebServiceFactory;
/**
* Ejemplo 1.
*
* Connectar al repositorio y obtener una lista de todos
los stores disponibles en el repositorio.
*
* @author Roy Wetherall
*/
public class GetStores extends SamplesBase
{
/**
* Connect to the respository and print out the names
of the available
*
* @param args
*/
public static void main(String[] args)
throws Exception
{
// Iniciar la sesion
AuthenticationUtils.startSession(USERNAME,
PASSWORD);

try
{
// Optener respository service
RepositoryServiceSoapBindingStub
repositoryService =
WebServiceFactory.getRepositoryService();

// Obtener un array of stores disponibles en el


repositorio
Store[] stores = repositoryService.getStores();
if (stores == null)
{
System.out.println("No hay stores
disponibles en el repositorio.");
}
else
{
// Sacar los nombres de todos los stores
disponibles en el repositorio
System.out.println("Los siguientes stores
están disponibles en el repositorio:");
for (Store store : stores)
{
System.out.println(store.getScheme() +
"://" + store.getAddress());
}
}
}
finally
{
// Finalizar la sesion
AuthenticationUtils.endSession();
}
}
}

Ejemplo 2. Búsquedas simples


Este ejemplo muestra como ejecutar búsquedas simples y navegar por los
resultados usando el Repository Web Service.

import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;
import org.alfresco.webservice.repository.QueryResult;
import org.alfresco.webservice.repository.RepositoryFault;
import
org.alfresco.webservice.repository.RepositoryServiceSoapBin
dingStub;
import org.alfresco.webservice.types.NamedValue;
import org.alfresco.webservice.types.Query;
import org.alfresco.webservice.types.Reference;
import org.alfresco.webservice.types.ResultSet;
import org.alfresco.webservice.types.ResultSetRow;
import org.alfresco.webservice.util.AuthenticationUtils;
import org.alfresco.webservice.util.Constants;
import org.alfresco.webservice.util.WebServiceFactory;
/**
* Ejemplo 2
* <p>
* Este ejemplo muestra como ejecutar una busqueda usando
el repository web service y como
* buscar por los nodos padres.
*
* @author Roy Wetherall
*/
public class Query1 extends SamplesBase
{
/**
* Funcion principal
*/
public static void main(String[] args)
throws Exception
{
// Iniciar la sesion
AuthenticationUtils.startSession(USERNAME,
PASSWORD);

try
{
// Asegurarse de que los datos de ejemplo se
han creado
createSampleData();

// Ejecutar la busqueda de ejemplo


executeSearch();
}
finally
{
// Finalizar la sesion
AuthenticationUtils.endSession();
}
}
/**
* Ejecutar una busqueda de prueba y dar un ejemplo de
uso de un consulta paterna.
*
* @return devuelve una referencia
a la carpeta que es el padre de los resultados
* ( usado en los
siguientes ejemplos)
* @throws ServiceException Service exception
* @throws RemoteException Remove exception
* @throws RepositoryFault Repository fault
*/
public static Reference executeSearch() throws
ServiceException, RemoteException, RepositoryFault
{
Reference parentReference = null;

// Obtener la referencia al respository web service


RepositoryServiceSoapBindingStub repositoryService
= WebServiceFactory.getRepositoryService();

// Crear un objeto query, que busque por todos los


items con alfresco en el nombre del texto
Query query = new
Query(Constants.QUERY_LANG_LUCENE, "TEXT:'alfresco
development team'");

// Ejecutar la consulta
QueryResult queryResult =
repositoryService.query(STORE, query, false);

// Mostrar los resultados


ResultSet resultSet = queryResult.getResultSet();
ResultSetRow[] rows = resultSet.getRows();
if (rows == null)
{
System.out.println("No se han encontrado
resultados.");
}
else
{
System.out.println("Resultados de la
consulta:");
outputResultSet(rows);

// Obtener el id del primer resultado


String firstResultId =
rows[0].getNode().getId();
Reference reference = new Reference(STORE,
firstResultId, null);

// Obtener el padre(s) del primer resultado


QueryResult parentQueryResult =
repositoryService.queryParents(reference);

// Obtener el padre del primer resultado


ResultSet parentResultSet =
parentQueryResult.getResultSet();
ResultSetRow[] parentRows =
parentResultSet.getRows();
if (parentRows == null)
{
System.out.println("No se ha encontrado
ningun resultado.");
}
else
{
System.out.println("Resultados de la
consulta de los padres:");
outputResultSet(parentRows);

// devolver el primer padre


String firstParentId =
parentRows[0].getNode().getId();
parentReference = new Reference(STORE,
firstParentId, null);
}
}

return parentReference;
}
/**
* Metodo de ayuda para devolver las filas contenidas
en un conjunto de resultados
*
* @param rows un array de filas
*/
public static void outputResultSet(ResultSetRow[] rows)
{
if (rows != null)
{
for (int x = 0; x < rows.length; x++)
{
ResultSetRow row = rows[x];
NamedValue[] columns = row.getColumns();
for (int y = 0; y < columns.length; y++)
{
System.out.println("row " + x + ": "
+ row.getColumns(y).getName() +
" = "
+
row.getColumns(y).getValue());
}
}
}
}
}

Ejemplo 3. Actualizaciones CML


Este ejemplo muestra cómo construir y ejecutar consultas CML usando el
Repository Web Service.
import
org.alfresco.webservice.repository.RepositoryServiceSoapBin
dingStub;
import org.alfresco.webservice.repository.UpdateResult;
import org.alfresco.webservice.types.CML;
import org.alfresco.webservice.types.CMLAddAspect;
import org.alfresco.webservice.types.CMLCreate;
import org.alfresco.webservice.types.NamedValue;
import org.alfresco.webservice.types.ParentReference;
import org.alfresco.webservice.types.Reference;
import org.alfresco.webservice.util.AuthenticationUtils;
import org.alfresco.webservice.util.Constants;
import org.alfresco.webservice.util.Utils;
import org.alfresco.webservice.util.WebServiceFactory;
/**
* Ejemplo 4
* <p>
* Este ejemplo muestra como construir y ejecutar
consulatas CML usando el respository web service.
*
* @author Roy Wetherall
*/
public class CMLUpdates extends SamplesBase
{
/**
* Fuuncion principal
*/
public static void main(String[] args)
throws Exception
{
AuthenticationUtils.startSession(USERNAME,
PASSWORD);
try
{
// Asegurar que los datos de ejemplo están
creados
createSampleData();

// Obtener repository service


RepositoryServiceSoapBindingStub
repositoryService =
WebServiceFactory.getRepositoryService();

// Crear la estructura CML


// Cuando se ejecute esta consulta de
actualizacion cml creara un nuevo nodo de contenido por
debajo de la
// carpeta especificada y añadira el aspecto
versionable al nuevo nodo
ParentReference parentReference = new
ParentReference(STORE, null,
"/app:company_home/cm:sample_folder",
Constants.ASSOC_CONTAINS, Constants.ASSOC_CONTAINS);
NamedValue[] properties = new
NamedValue[]{Utils.createNamedValue(Constants.PROP_NAME,
System.currentTimeMillis() + "_WebServiceSample4.txt")};
CMLCreate create = new CMLCreate("id1",
parentReference, null, null, null, Constants.TYPE_CONTENT,
properties);
CMLAddAspect addAspect = new
CMLAddAspect(Constants.ASPECT_VERSIONABLE, null, null,
"id1");
CML cml = new CML();
cml.setCreate(new CMLCreate[]{create});
cml.setAddAspect(new
CMLAddAspect[]{addAspect});

// Execute the update


UpdateResult[] updateResults =
repositoryService.update(cml);

for (UpdateResult updateResult : updateResults)


{
String sourceId = "none";
Reference source =
updateResult.getSource();
if (source != null)
{
sourceId = source.getUuid();
}

String destinationId = "none";


Reference destination =
updateResult.getDestination();
if (destination != null)
{
destinationId = destination.getUuid();
}

System.out.println(
"Command = " +
updateResult.getStatement() +
"; Source = " + sourceId +
"; Destination = " +
destinationId);
}
}
finally
{
// Finalizar la sesion
AuthenticationUtils.endSession();
}
}
}

También podría gustarte