A real example of Client WS: Consuming the Gexflow application service for writing entrance records
0. Introduction
This is a real HOW-TO task. The steps to follow are:
- Create a user in the local application of Gexflow (by Teralco).
- Assing the necessary permissions to the user so that he can consume the services
- Copy the client consumer generated in the last post
- Fill the parameters and execute the request
- Analyze the result and verify them in the DB.
1. Create a user and assign permissions.
1. Open a browser and type this address http://xxxx.yyyy.zzzz.kkkk:8080/gexflowzk where xxxx.yyy.xxx.kkkk is the IP address of the server, and login providing your user and password
2. In the upper menu select "OrganizaciĆ³n - Mantenimiento de Unidades Administrativas". As consuming WS is a matter of computer and networks related department, select this department.
3. In "Puestos", add a new one, for instance, "WS-Consumer".
4. Select a "Rol" that can manage all the aspects of "Registro de Entrada/Salida". If this "Rol" is not created, you should create it by accessing the upper menu and selecting "Seguridad - Mantenimiento de roles ".
5. For now, we have created the "Puesto" and assigned a "Rol" to this "Puesto" . To create a user you should proceed as "OrganizaciĆ³n - Mantenimiento de Usuarios ", create the user and assign it a name for instance "WS-Consumer-User". Assing the "Puesto" created previously.
Now our user has the permissions to execute the WS.
The class is ESRegistroClient.java
3. In "Puestos", add a new one, for instance, "WS-Consumer".
4. Select a "Rol" that can manage all the aspects of "Registro de Entrada/Salida". If this "Rol" is not created, you should create it by accessing the upper menu and selecting "Seguridad - Mantenimiento de roles ".
5. For now, we have created the "Puesto" and assigned a "Rol" to this "Puesto" . To create a user you should proceed as "OrganizaciĆ³n - Mantenimiento de Usuarios ", create the user and assign it a name for instance "WS-Consumer-User". Assing the "Puesto" created previously.
Now our user has the permissions to execute the WS.
2. Create a java class with only the desired service
The class is ESRegistroClient.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 | package gexflow.reges; import java.io.File; import java.net.MalformedURLException; import java.net.URL; import java.util.GregorianCalendar; import javax.xml.namespace.QName; import javax.jws.WebMethod; import javax.jws.WebParam; import javax.jws.WebResult; import javax.jws.WebService; import javax.xml.bind.annotation.XmlSeeAlso; import javax.xml.datatype.DatatypeFactory; import javax.xml.ws.RequestWrapper; import javax.xml.ws.ResponseWrapper; /** * This class was generated by Apache CXF 3.2.0 * 2017-10-26T15:05:03.098+02:00 * Generated source version: 3.2.0 * */ public final class ESRegistroClient { private static final QName SERVICE_NAME = new QName("http://gexflow/reges", "Registro_v2_0_Services"); private ESRegistroClient() { } public static void main(String args[]) throws java.lang.Exception { URL wsdlURL = RegistroV20Services.WSDL_LOCATION; if (args.length > 0 && args[0] != null && !"".equals(args[0])) { File wsdlFile = new File(args[0]); try { if (wsdlFile.exists()) { wsdlURL = wsdlFile.toURI().toURL(); } else { wsdlURL = new URL(args[0]); } } catch (MalformedURLException e) { e.printStackTrace(); } } RegistroV20Services ss = new RegistroV20Services(wsdlURL, SERVICE_NAME); RegistroV20 port = ss.getRegistroV20ServicesPort(); //-------------------------------------------------- System.out.println("Invoking registrarAsientoEntrada..."); java.lang.Integer _registrarAsientoEntrada_idEntidad = 0;//null; java.lang.String _registrarAsientoEntrada_codUnidadRegistral = "001"; java.lang.String _registrarAsientoEntrada_usuario = "WS-Consumer-User"; javax.xml.datatype.XMLGregorianCalendar _registrarAsientoEntrada_fechaValor = null; java.lang.String _registrarAsientoEntrada_motivoCambioFechaValor = ""; //No obligatorio javax.xml.datatype.XMLGregorianCalendar _registrarAsientoEntrada_fechaDocumento = null; // DatatypeFactory.newInstance().newXMLGregorianCalendar(ayer); java.lang.String _registrarAsientoEntrada_claseDocumento = "Documento de Ximo Dante"; java.lang.String _registrarAsientoEntrada_modoRecepcion = "Sobre el hombro, estilo Ismaelet"; java.lang.String _registrarAsientoEntrada_asunto = "Asunto prueba de WS3"; java.lang.String _registrarAsientoEntrada_referenciaExpediente = "BON EXPEDIENTET POLLET!"; java.lang.String _registrarAsientoEntrada_numeroTransporte = "PAPELIN 21"; java.lang.String _registrarAsientoEntrada_soporte = "Papel Arrugado"; java.lang.String _registrarAsientoEntrada_resumen = "Resumen de una documento por WS Ximo Dante"; java.lang.String _registrarAsientoEntrada_tipoInteresado = "F"; // enumerado persona fisica java.lang.String _registrarAsientoEntrada_tipoDocumento = "N"; // enumerado de Nif java.lang.String _registrarAsientoEntrada_documentoInteresado = "12345678K"; java.lang.String _registrarAsientoEntrada_nombreInteresado = "NOMBRE APLELLIDO1 APELLIDO2"; java.lang.String _registrarAsientoEntrada_documentoRepresentante = ""; java.lang.String _registrarAsientoEntrada_nombreRepresentante = ""; java.lang.String _registrarAsientoEntrada_organo = ""; java.lang.String _registrarAsientoEntrada_cargo = ""; java.lang.String _registrarAsientoEntrada_correoElectronico = "micorreo@kk.com"; java.lang.String _registrarAsientoEntrada_telefono = "961234567"; java.lang.String _registrarAsientoEntrada_tipoVia = "PLAZA"; java.lang.String _registrarAsientoEntrada_via = "TULLERIAS"; java.lang.Integer _registrarAsientoEntrada_numeroVia = 1; java.lang.String _registrarAsientoEntrada_letra = ""; java.lang.String _registrarAsientoEntrada_bloque = ""; java.lang.String _registrarAsientoEntrada_portal = ""; java.lang.String _registrarAsientoEntrada_escalera = ""; java.lang.String _registrarAsientoEntrada_piso = ""; java.lang.String _registrarAsientoEntrada_puerta = ""; java.lang.String _registrarAsientoEntrada_codigoPostal = "46799"; java.lang.String _registrarAsientoEntrada_municipio = "ALGUN MUNICIPIO DE VALENCIA"; java.lang.String _registrarAsientoEntrada_provincia = "VALENCIA"; java.lang.String _registrarAsientoEntrada_nucleo = ""; java.lang.String _registrarAsientoEntrada_codUnidadOrganizativaRemitente = "A001"; gexflow.reges.DestinoRegistroEntradaWSJB _registrarAsientoEntrada_destinosInternos = null; // new DestinoRegistroEntradaWSJB();//null; try { gexflow.reges.RegistroEntradaWSV2JB _registrarAsientoEntrada__return = port.registrarAsientoEntrada( _registrarAsientoEntrada_idEntidad, _registrarAsientoEntrada_codUnidadRegistral, _registrarAsientoEntrada_usuario, _registrarAsientoEntrada_fechaValor, _registrarAsientoEntrada_motivoCambioFechaValor, _registrarAsientoEntrada_fechaDocumento, _registrarAsientoEntrada_claseDocumento, _registrarAsientoEntrada_modoRecepcion, _registrarAsientoEntrada_asunto, _registrarAsientoEntrada_referenciaExpediente, _registrarAsientoEntrada_numeroTransporte, _registrarAsientoEntrada_soporte, _registrarAsientoEntrada_resumen, _registrarAsientoEntrada_tipoInteresado, _registrarAsientoEntrada_tipoDocumento, _registrarAsientoEntrada_documentoInteresado, _registrarAsientoEntrada_nombreInteresado, _registrarAsientoEntrada_documentoRepresentante, _registrarAsientoEntrada_nombreRepresentante, _registrarAsientoEntrada_organo, _registrarAsientoEntrada_cargo, _registrarAsientoEntrada_correoElectronico, _registrarAsientoEntrada_telefono, _registrarAsientoEntrada_tipoVia, _registrarAsientoEntrada_via, _registrarAsientoEntrada_numeroVia, _registrarAsientoEntrada_letra, _registrarAsientoEntrada_bloque, _registrarAsientoEntrada_portal, _registrarAsientoEntrada_escalera, _registrarAsientoEntrada_piso, _registrarAsientoEntrada_puerta, _registrarAsientoEntrada_codigoPostal, _registrarAsientoEntrada_municipio, _registrarAsientoEntrada_provincia, _registrarAsientoEntrada_nucleo, _registrarAsientoEntrada_codUnidadOrganizativaRemitente, _registrarAsientoEntrada_destinosInternos); System.out.println("registrarAsientoEntrada.result=" + _registrarAsientoEntrada__return); System.out.println("Resultado=" + _registrarAsientoEntrada__return.getResultado()); } catch (WSException e) { System.out.println("Expected exception: WSException has occurred."); System.out.println(e.toString()); } //------------------------------------------------------- System.exit(0); } } |
Most of the fields do not need to be filled as they are not obligatory. Note our user "WS-Consumer-Client".
When we execute this class, a new class of type RegistroEntradaWSV2JB in returned that contains an attribute caller Resultado.
If Resultado is 0, then everything has gone OK.
The output is :
Invoking registrarAsientoEntrada...
registrarAsientoEntrada.result=RegistroEntradaWSV2JB(anyo=2017,
asunto=Asunto prueba de WS3, bloque=, cargo=null, claseDocumento=Documento de Ximo Dante, codUnidadOrganizativaRemitente=A001, codUnidadRegistral=001, codigoPostal=46799, correoElectronico=micorreo@kk.com, destinosInternos=gexflow.reges.DestinoRegistroEntradaWSJB@7b64240d, documentoInteresado=73912286S, documentoRepresentante=null, entidad=AJUNTAMENT DE MUNICIPIO, escalera=, estado=Pendiente, fechaAsiento=2017-11-02T14:52:19+01:00, fechaDocumento=2017-11-02T00:00:00+01:00, fechaValor=2017-11-02T14:52:19+01:00, idEntidad=0, letra=, metadatos=null, modoRecepcion=Sobre el hombro, estilo Ismaelet, motivoCambioFechaValor=null, municipio=ALGUN MUNICIPIO DE VALENCIA, nombreInteresado=NOMBRE APELLIDO1 APELLIDO2, nombreRepresentante=null, nucleo=null, numero=14, numeroTransporte=PAPELIN 21, numeroVia=1, organo=null, piso=, portal=, provincia=VALENCIA, puerta=, referenciaExpediente=BON EXPEDIENTET POLLET!, resultado=0, resumen=Resumen de una documento por WS Ximo Dante, soporte=Papel Arrugado, telefono=962824015, tipoDocumento=N, tipoInteresado=F, tipoVia=PLAZA, unidadOrganizativaRemitente=DEPARTAMENTO DE NUEVAS TECNOLOGIAS, unidadRegistral=REGISTRO GENERAL - A002, via=TULLERIAS)
Resultado=0
Happy coding !
Comments
Post a Comment