Servicio de Creación vía HTTP
Para crear un documento a través de servicios HTTP, realice un POST a la siguiente URL:
http://<server>/thuban-web/http-services?service=documentService&clase=<NombreClase>&name=<DocName>&fields=<Campos>&extension=<Extension>
Reemplace la información entre "<>" por los siguientes parámetros:
NombreClase
El nombre de la clase documental que desea crear.
DocName
El nombre externo del documento.
Campos
Un listado de campo-valor siendo “|” (pipe) el separador entre pares e “=” (igual) el separador entre campo y valor. El nombre del campo corresponde con el ID del campo en Thuban Admin. Por ejemplo: NRO_DOC=12121212|ESTADO=APROBADO
Extensión
La extensión del archivo que desea subir.
El cuerpo del mensaje debe contener el archivo a subir. El mime type del cuerpo debe ser “application/octet-stream”. A continuación puede ver un ejemplo de uso del servicio para la herramienta SOAPUI.
<?xml version="1.0" encoding="UTF-8" ?>
<con:soapui-project name="Thuban" resourceRoot="${projectDir}" soapui-version="4.0.0" abortOnError="false" runType="SEQUENTIAL" xmlns:con="http://eviware.com/soapui/config">
<con:settings />
<con:interface xsi:type="con:RestService" wadlVersion="http://wadl.dev.java.net/2009/02" name="Create Document" type="rest" basePath="/thuban-web/http-services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<con:settings />
<con:definitionCache type="TEXT" rootPart="" />
<con:endpoints>
<con:endpoint>http://cairo:9669</con:endpoint>
</con:endpoints>
<con:resource name="Create Documento Resource" path="">
<con:settings />
<con:parameters />
<con:method name="Method 1" method="POST">
<con:settings />
<con:parameters>
<con:parameter>
<con:name>service</con:name>
<con:value>documentService</con:value>
<con:style>QUERY</con:style>
<con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:string</con:type>
<con:default>documentService</con:default>
<con:path xsi:nil="true" />
<con:description xsi:nil="true" />
</con:parameter>
<con:parameter>
<con:name>fields</con:name>
<con:value>TEXTO1_6_0DEV3=TEST SERVICE</con:value>
<con:style>QUERY</con:style>
<con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:string</con:type>
<con:default>TEXTO1_6_0DEV3=TEST SERVICE</con:default>
<con:path xsi:nil="true" />
<con:description xsi:nil="true" />
</con:parameter>
<con:parameter>
<con:name>extension</con:name>
<con:value>TXT</con:value>
<con:style>QUERY</con:style>
<con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:string</con:type>
<con:default>TXT</con:default>
<con:path xsi:nil="true" />
<con:description xsi:nil="true" />
</con:parameter>
<con:parameter>
<con:name>name</con:name>
<con:value>DocPrueba</con:value>
<con:style>QUERY</con:style>
<con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:string</con:type>
<con:default>DocPrueba</con:default>
<con:path xsi:nil="true" />
<con:description xsi:nil="true" />
</con:parameter>
<con:parameter>
<con:name>clase</con:name>
<con:value>6cero4</con:value>
<con:style>QUERY</con:style>
<con:default>6cero4</con:default>
</con:parameter>
</con:parameters>
<con:representation type="RESPONSE">
<con:mediaType>text/html</con:mediaType>
<con:status>200</con:status>
<con:params />
<con:element>html</con:element>
</con:representation>
<con:representation type="REQUEST">
<con:mediaType>application/octet-stream</con:mediaType>
<con:params />
</con:representation>
<con:representation type="FAULT">
<con:mediaType>text/html</con:mediaType>
<con:status>500 404</con:status>
<con:params />
<con:element>html</con:element>
</con:representation>
<con:representation type="RESPONSE">
<con:mediaType xsi:nil="true" />
<con:status>200</con:status>
<con:params />
<con:element>data</con:element>
</con:representation>
<con:request name="Request 1" mediaType="application/octet-stream" postQueryString="false">
<con:settings>
<con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Authorization" value="Basic YWRtaW46" xmlns="http://eviware.com/soapui/config"/></con:setting>
</con:settings>
<con:endpoint>http://cairo:9669</con:endpoint>
<con:request>HOLA ARCHIVO</con:request>
<con:credentials>
<con:username />
<con:password />
<con:domain />
</con:credentials>
<con:jmsConfig JMSDeliveryMode="PERSISTENT" />
<con:jmsPropertyConfig />
<con:parameters>
<con:entry key="extension" value="TXT" />
<con:entry key="name" value="DocPrueba" />
</con:parameters>
</con:request>
</con:method>
</con:resource>
</con:interface>
<con:endpointStrategy xsi:type="con:DefaultEndpointStrategy" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<con:endpoint mode="COMPLEMENT" username="admin" domain="">http://cairo:9669</con:endpoint>
</con:endpointStrategy>
<con:properties />
<con:wssContainer />
<con:sensitiveInformation />
</con:soapui-project>
Servicio de creación de documentos en código Java
Crea el documento, indexa los campos indicados en la URL y le adjunta el recurso mencionado. Si no se especifica un NAME y EXTENSIÓN, se crea el documento sin imagen.
public void testCreateDocumentHttpSerive() throws HttpException, IOException {
HttpClient client= new HttpClient();
HttpMethodParams params= new HttpMethodParams();
PostMethod postMethod= new PostMethod("http://SERVER:PUERTO/thuban-web/http-services service=DocumentService&clase=NOMBRE%20CLASE%20DOCUMENTAL&fields=CAMPO=VALOR%7CCAMPO2=VALOR2&name=NOMBREDELDOCUMENTO&extension=TIF");
client.getState().setCredentials(new AuthScope("SERVER", PUERTO, "ThubanRealm"),
new UsernamePasswordCredentials("USUARIO", "PASSWORD"));
RequestEntity entity = new FileRequestEntity(new File("UBICACIÓN DEL ARCHIVO FÍSICO"), "application/stream; charset=ISO-8859-1");
postMethod.setRequestEntity(entity);
List authPrefs = new ArrayList(2);
authPrefs.add(AuthPolicy.BASIC);
authPrefs.add(AuthPolicy.DIGEST);
client.getParams().setParameter(AuthPolicy.AUTH_SCHEME_PRIORITY, authPrefs);
client.getParams().setAuthenticationPreemptive(true);
postMethod.setDoAuthentication(true);
postMethod.setParams(params);
System.out.println(postMethod.getQueryString());
try {
int result = client.executeMethod(postMethod);
// Display status code
System.out.println("Response status code: " + result);
System.out.println(postMethod.getResponseBodyAsString());
assertEquals(result, 200);
} finally {
postMethod.releaseConnection();
}
}