Histórico da Página
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
<?xml version="1.0" encoding="ISO-8859-1"?> <raiz> <!-- nome da politica --> <programa>P_TST_01</programa> <!-- nome do usuário com permissão pra execucao --> <usuario>admin</usuario> <!-- senha do usuario --> <senha>senha_admin</senha> <!-- tipo de politica --> <tipo>credito</tipo> <!-- layout para ser usado --> <layout>Layout_P_TST_01</layout> <!-- dados de entrada para a execução da politica --> <CPF>00000000191</CPF> </raiz> |
Dados de Saída
Bloco de código | ||||
---|---|---|---|---|
| ||||
O XML de saída é composto pelas variáveis de saída descritas no layout de política utilizado na execução e, pelas seguintes variáveis de controle: <!-- UUID - identificador unico --> <LPT__CodExecucao>3176837B-00D1-4B50-8419-126650B0E114</LPT__CodExecucao> <LPT__iRetorno>0</LPT__iRetorno> <LPT__sAcao>APROVA</LPT__sAcao> <LPT__sMsgErro></LPT__sMsgErro> |
...
Abaixo, listamos alguns exemplos usando várias linguagens, para executar uma política no TOTVS Intellector. Lembramos que os exemplos necessitam de ajustes, mas a ideia central está disponibilizada.
Usando Java com API Apache commons-httpclient - XML
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
package br.com.totvs.intellector.util; import java.io.File; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.methods.FileRequestEntity; import org.apache.commons.httpclient.methods.RequestEntity; /** * Uma classe generica, via linha de comando para enviar arquivos, e, a intencao * eh enviar arquivos XML para testar os servlets * <p> * * @author ricart.monachesi * */ public class PostXML { /** * * Use: java PostXML [http://localhost:8080/iw-editor/services/PolicyExecution] c:\dummy_pol.xml * * @param args comando na linha de argumentos * Argumento 0 eh uma URL para um web server, servlet (wsdl?) * Argumento 1 eh arquivo local formato XML (pode ser qq arquivo!) * */ public static void main(String[] args) throws Exception { // passagem de argumentos if (args.length != 2) { System.out.println("Use: java -classpath <classpath> [-Dorg.apache.commons.logging.simplelog.defaultlog=<loglevel>] PostXML <url> <arquivo>]"); System.out.println("<classpath> - deve conter commons-httpclient.jar e commons-logging.jar"); System.out.println("<loglevel> - nivel de erro, warn, info, debug, trace"); System.out.println("<url> - a URL para postar o arquivo"); System.out.println("<arquivo> - arquivo para postar para a URL"); System.out.println(); System.exit(1); } // Pega a URL destino String strURL = args[0]; // Pega o arquivo para ser postado String strXMLFilename = args[1]; File input = new File(strXMLFilename); // Prepara o post HTTP PostMethod post = new PostMethod(strURL); // O conteudo do Request serah retirado diretamento do stream de entrada RequestEntity entity = new FileRequestEntity(input, "text/xml; charset=UTF-8"); post.setRequestEntity(entity); // Pega o HTTP client HttpClient httpclient = new HttpClient(); // Executa o request try { int result = httpclient.executeMethod(post); // Mostra o status code System.out.println("Response status code: " + result); // Mostra o response System.out.println("Response body: "); System.out.println(post.getResponseBodyAsString()); } finally { // Release da conexao atual para o connection pool de conexoes, uma vez que jah foi feito post.releaseConnection(); } } } |
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
package br.com.tools.intellector.util; import java.io.IOException; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpMethod; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.methods.GetMethod; /** * Uma classe generica, via linha de comando para enviar arquivos, * e, a intencao eh enviar arquivos XML para testar o wsdl/rest * <p> * @author claudio cardozo * */ public class PostWSDL { // configura a url?wsdl private static String url = "[http://192.168.0.185:8080/intellector/services/PolicyExecution/executePolicy";] /** * Chamada RESTful via httpClient * @param args */ public static void main(String[] args) { // instancia um HttpClient HttpClient client = new HttpClient(); // instancia um GET HTTP method HttpMethod method = new GetMethod(url); // configura name-value pairs da string para o metodo // definindo um xml com os dados a serem para um uma politica NameValuePair nvp1= new NameValuePair("xmlInputString", "<raiz>" + "<programa>politica_dummy</programa><usuario>admin</usuario>" + "<senha>tools01</senha>"+ "<tipo>credito</tipo>"+ "<layout>Layout_politica_dummy_credito</layout>"+ "<CodCpf>21769796304</CodCpf>"+ "<DataNascimento>30011966</DataNascimento>"+ "<ValBem>101.34</ValBem>"+ "<DataAberturaConta>23102008</DataAberturaConta>"+ "</raiz>"); // configura as partes de envio method.setQueryString(new NameValuePair[]{nvp1}); try{ int statusCode = client.executeMethod(method); System.out.println("QueryString>> " + method.getQueryString()); System.out.println("Status Text>> " + HttpStatus.getStatusText(statusCode)); // pega a resposta como String System.out.println("Response>> " + method.getResponseBodyAsString()); //release da conexao method.releaseConnection(); } catch(IOException e) { e.printStackTrace(); } } } |
N
====
Usando RESTful XML
Uma vez que os exemplos acima, via browser, esclareceram envelope/contrato, segue abaixo um exemplo de chamada via httpClient. REST é apenas um estilo de arquitetura, baseado em estados de transferência.
...
Import HTML Content
Visão Geral
Conteúdo das Ferramentas