Académique Documents
Professionnel Documents
Culture Documents
RACC
Hawtio (desarrollo): Buscamos en profiles el perfil que nos hemos creado para nuestra
int-> pulsamos Details y en “artifacts” le damos a editar (lápiz de la derecha) y
escribimos al final la nueva versión.
-Cada container publica en un puerto. Para ver este puerto: desde Hawtio -> container
-> nos metemos en la carpeta P_CFG_”…” -> org.ops4j.pax.web.properties (a la izqda.)
. También viene en el IP del DT (IP: puerto/cxf/services/).
-Con este IP construimos una URL que al introducir en un buscador nos dará un
wadl/wsdl. Esta dirección wadl al pulsar nos dará algo (un json por ej) que es el que
meteremos en soapUI.
SoapUI: lo usamos para lanzar los request. Estos están en src/test/resources. Los
parámetros los cogemos de aquí y pegamos en SoapUI (en caso de SOAP). Si hacemos
un rest los parámetros vienen la misma URL.
-Pulsamos el botón REST o SOAP dependiendo del tipo de int que sea y
pegamos en el body el resultado del wadl. El método utilizado (get, post,…) viene
en el DT. Si nos da algo de respuesta es que está desplegado. Si me pide usuario y
contraseña para poder runear meto el de Datos.txt.
-En la pantalla negra (“en el log”) vamos viendo lo que pasa y los errores. Son
los logs que tenemos en el blueprint. Si da error vamos viendo los logs tanto en
Putty como en el blueprint para saber a partir de cuándo da este error.
- Ya en el Putty vamos viendo los errores. Cada vez que cambie algo debo de cambiar la
versión del pom y volverlo a desplegar (ya solo deploy). Antes de desplegar otra vez:
borrar el container en hawtio y volver a crear otro para quitarnos de problemas. Aquí
cambiar la versión a mano porque ya lo he hecho con deploy.
Subir a integración
Cuando queremos subir a integración y no a desarrollo: hacer nuevo fabric8 : deploy
pero cambiando en el pom el IP (en jolokiaURL) por el de integración (viene en
datos.txt). También hay que hacer las pruebas en SoapUI para integración (cambiando
solo el IP).
CREAR INTERFAZ DE CERO
(Voy a ir pasando desde una int modelo las carpetas que quiera a una carpeta creada
por mi para mi int en mi git. Si refresco en JBOSS el repositorio donde la he metido me
debe de aparecer)
-Según modelo parecido copio el pom.xml padre en el git del mío (en mi local dentro
de mi user) y le hago modificaciones con Notepad.
-Blueprint: En <module…/> cambiamos el nombre del <datamodel> y en la línea
de abajo el nombre del adaptador que creamos <”S_CRM_...”>. Lo de <report tool/>
que está debajo también del adaptador, lo dejamos. Lo demás que hay en module lo
borramos.
-Vamos desde mi local en mi PC copiando carpetas desde el modelo y pegando
en mi git. Copio el datamodel, borro todo menos el pom (en él sí que borro los
paquetes que venían <packets…/> y el source (le quitamos sus carpetas test y main).
-En JBOSS: le damos a F5 sobre el padre y aparecerá nuestro datamodel. Para
pasar nuestro proyectito a Maven: botón derecho sobre el proyecto -> import ->
escribimos “Maven” -> Existing Maven Project -> aceptar. Le damos a Alt + F5 para
Maven update.
-Copiamos también a nuestro local el model del repositorio que vamos a usar y
le dejamos solo el source y el pom. Desde notepad le voy cambiando los nombres
como hemos hecho antes para el datamodel.
-Creación de modelos de entrada y salida:
-Datamodel /resources -> creo un json schema donde meteré el esquema
obtenido en el convertidor.
-Main/java/ -> creo paquetes de entrada (org.web….) y salida (org.crm….). En
ellos irán los modelos java del convertidor.
Convertidor 1: JSON -> JSONschema
Convertidor 2: JSONSchema -> objeto JAVA (pojo)
-Cuando convirtamos: quitar los “required”en el mismo convertidor, poner
nombre del paquete donde lo guardo. (En el caso de listas (list) crearé una clase guid
de salida para la lista en concreto (es decir, haré su pojo por separado del resto).
-Sobre los paquetes org.web y org.crm pulso botón derecho -> copy cualified name.
-Pego estos nombres en el pom del datamode (donde va el import, request (el
org.web)) y en el pom de nuestro servicio (donde van los responses y export) pegamos
el de salida.
-En src (asecas) / main / fabric8 / env.configuration.properties cambiamos nombre por
el de nuestros servicio y en blueprint donde llama a estas properties también (en
concreto donde pone prefix/sufix.
-En src / main / resources meto las adapter properties que vienen en el DT.
-EnvconfigurationCRM es otro aparte del nuestro para CRM que metemos desde
HAWTIO y que llama desde blueprint.
-CRM: Postman. CRM actúa a modo de base de datos y pedimos acceder a estos. Para
acceder a esta tenemos una CRMApi.java
Abrimos la carpeta token y enviamos (send). Nos dará un pedazo de numero y
letras que se usa para comunicarnos con CRM.
Para consultar algo, como por ejemplo clientes: En ENV hacemos un get y en la
pestaña Pre-RequestScript metemos detrás de “var query = ____” lo que
queremos filtrar (lo que viene en el DT).
A nosotros nos llega un guid value y con él se hace una consulta a CRM (con el
valor del guid y el de los otros: data inicio, data fin …
-En Blueprint:
-Tenemos que definir el web service (donde publicamos) en el blueprint, en la
parte <cxf…….cfx/>. Usa la clase serviceClass. Cambiar aquí el nombre por el del
endpoint de entrada (viene en el DT).
-En route de <recepción> cambiar el id del web service (el que también
habíamos puesto en el cxf) donde pone from. Llega el json (el de entrada del
DT) a través de las operaciones publicadas en WEB.
-<PreaccionesIda>: Se envía a la cola de monitorización (se monitoriza) la
request.
-En <route mapeoPeticion/>: mapeo desde el JSON de entrada (web-json) al
modelo de datos de CRM. A veces habrá mapeo.
-< process ref= RequestProcesor>:
- Pasamos el JSON de entrada a modelo java (Request). Copiamos
del modelo el <bean> del dataFormat que usa el unmarshall y
cambiamos nombres y clase. En su respectiva <route>
cambiamos también el id.
- Se realiza una comprobación de los campos (que estén
debidamente rellenos). En estas comprobaciones metemos las
respuestas de error que están en el DT en json. En concreto
estamos metiendo en el body el json.
-Tener en cuenta si hay listas, …
-Si tuviéramos transcodings lo que iría en el preProcessor podríamos
meterlo aquí (estableceríamos los valores que van a llevar transcoding):
-<inOut>/: envío a cola de transcodificación (en caso de transcodif).
Después de darse inOut tenemos string, hay que hacer
-ref=PostProcessor. Aquí se coge el valor de la cabecera que devuelve la
BD y lo mete en el modelo Request.
-marshall de jsonRequest
-En <PostaccionesIda/>: Se hace un update RequestHeader
-En < func.enviar-recibir/> hace un get al CRM para coger el token y lo guarda
con un header en <inOut>.
-Hace unmarshall de jsonrequest para que a CRM le llegue en clase java
- En el blueprint: También tomamos un ejemplo ya hecho pero añadiendo las props que
usa nuestra int… (Muestro algunas de las cosas que se hacen pero si cojo el modelo ya
vienen hechas) :
o Se eliminan las propiedades por defecto
- <camelContext>: en el caso de los que hemos estado haciendo nos quedaremos con
una sola ruta ya que se sintetizan las dos que están en 6.1 a una sola en el 6.3.
o Le pongo nombre a la ruta
Desplegar en AGBAR:
Usamos:
-mobaXterm: lo usamos para conectarnos a los servidores (con los mounts). Creamos
una sesión donde ponemos IP, puerto y password (vienen en el datos.txt).
-FileZilla Client. Lo usamos para los ftp. Ponemos los datos de las propiedades de la
integración en el programa para entrar en el directorio donde dejo el archivo. Adí
puedo probar la int.
Importamos desde jboss el Maven: sobre la int botón derecho: import-> Maven->
existing moven Project. Cuando se cree le damos a botón derecho: run as-> Maven
build y hacemos Clean Install. Sobre la int Le hago Maven, clean install y refrescamos
(f5) para ver el .jar generado.
Ese perfil estaría vacío y tenemos que meter las cosas a mano:
Metemos primero en parents el feature.camel para poder meter después el
resto de features. En el ejemplo: quartz2, ftp, blueprint, zookeper. Vamos
añadiéndolas en Add+ y le damos a Save changes-> done.
Le damos dentro del perfil a: créate-> PropertiesFile-> y le meto el contenido
de las propiedades. Metemos el archivo de propiedades a mano (copio y pego
el contenido en sí) y le pongo el nombre que tiene en jboss.
Para las pruebas: creamos en el contenedor test un perfil para la int (buscandolo del ya
creado).
En las properties viene la extensión del fichero que tengo que dejar y la ruta donde dejarlo.
Para la mía: meta4-java
Añadimos en el contenedor test mi perfil (add).
Miramos las properties y la ruta de origen (/mnt/aplicaciones/test)