JBoss EAP 7 Beta ya está disponible publicadomuchas felicidades a Red Hat y, en particular, al WildFly ¡equipo! En esta versión se introducirán muchas mejoras, como se documenta en Notas de publicación. Uno de los temas principales es la conformidad con Java EE 7.
JBoss EAP 7 y Java EE 7
IBM y Oracle ya ofrecen servidores de aplicaciones compatibles con Java EE 7 con soporte comercial. Y ahora Red Hat también se unirá pronto a esta fiesta. Aunque WildFly ha dado soporte a Java EE 7 durante más de 2 años, el soporte comercial es fundamental para que el código abierto se adopte en toda la empresa. Así que es una buena noticia. Puede obtener más información sobre API Java EE 7 en DZone Refcardz que escribí junto con @alrubinger.
Hay un montón de "hola mundo" Ejemplos de Java EE 7 que deberían funcionar con JBoss EAP. Esperemos que alguien actualice el pom.xml
y añade un nuevo perfil.
¿Por qué NoSQL?
Si está creando una aplicación empresarial tradicional, puede que le convenga utilizar un RDBMS. Hay un montón de ventajas de usar RDBMS, pero el uso de una base de datos NoSQL en su lugar tiene algunas ventajas:
- No es necesario tener un esquema predefinido y eso los convierte en un base de datos sin esquema. La adición de nuevas propiedades a objetos existentes es sencilla y no requiere ALTER TABLE. La dirección datos no estructurados da flexibilidad para cambiar el formato de los datos en cualquier momento sin tiempo de inactividad ni reducción de los niveles de servicio. Además, no se producen uniones en el servidor porque no hay estructura y, por tanto, no hay relación entre ellos.
- Escalabilidad, agilidad y rendimiento es más importante que todo el conjunto de funcionalidades que suele ofrecer un RDBMS. Este conjunto de bases de datos proporciona coherencia eventual y/o transacciones restringidas a elementos individuales, pero se centra más en el CRUD.
- Las NoSQL están diseñadas para ampliación (horizontal) en lugar de escalar (vertical). Esto es importante teniendo en cuenta que las bases de datos, y todo lo demás, se están trasladando a la nube. RBDMS puede escalarse utilizando sharding, pero requiere una gestión compleja y no es para los débiles de corazón. Las consultas que requieren JOINs a través de shards es extremadamente ineficaz.
- Los RDBMS tienen desajuste de impedancia entre la estructura de la base de datos y las clases del dominio. En este caso, se necesita un mapeo objeto-relacional, como el proporcionado por Java Persistence API o Hibernate.
- Las bases de datos NoSQL están diseñadas para una menor gestión y los modelos de datos más sencillos conducen a menor coste administrativo también.
Así que ahora estás entusiasmado con NoSQL y quieres aprender más:
- ¿Por qué NoSQL?
- ¿Por qué las empresas de éxito confían en NoSQL?
- Los 10 usos principales de NoSQL para empresas
En resumen, existen cuatro tipos diferentes de bases de datos NoSQL:
- Documento: Couchbase, Mongo y otros
- Clave/Valor: Couchbase, Redis y otros
- Gráfico: Neo4J, OrientDB y otros
- Columna: Cassandra y otros
Java EE 7 proporciona Java Persistence API que no proporciona ningún soporte para NoSQL. Entonces, ¿cómo empezar con NoSQL con JBoss EAP 7? Este blog mostrará cómo consultar una base de datos Couchbase utilizando una simple aplicación Java EE desplegada en JBoss EAP 7 Beta.
¿Qué es Couchbase?
Couchbase es una base de datos de documentos NoSQL de código abierto. Permite acceder, indexar y consultar documentos JSON al tiempo que aprovecha el almacenamiento en caché distribuido integrado para un acceso a datos de alto rendimiento. Los desarrolladores pueden escribir aplicaciones en Couchbase utilizando diferentes lenguajes (Java, Go, .NET, Node, PHP, Python, C). varios SDK. Este blog le mostrará cómo puede crear fácilmente una aplicación CRUD utilizando SDK de Java para Couchbase.
Ejecutar JBoss EAP 7
Existen dos formas de iniciar JBoss EAP 7.
Descargar y ejecutar
- Descargar JBoss EAP 7 Beta y descomprimir.
- Inicie el servidor de aplicaciones como:
1234567891011121314151617181920./jboss-eap-7.0/papelera/independiente.sh=========================================================================JBoss Bootstrap Medio ambienteJBOSS_HOME: /Usuarios/arungupta/herramientas/jboss-eap-7.0JAVA: javaJAVA_OPTS: -servidor -verbose:gc -Xloggc:"/Users/arungupta/tools/jboss-eap-7.0/standalone/log/gc.log" -XX:+ImprimirDetalles -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NúmeroDeArchivosGCLog=5 -XX:GCLogFileSize=3M -XX:-TraceClassUnloading -Xms1303m -Xmx1303m -Djava.red.preferirIPv4Stack=verdadero -Djboss.módulos.sistema.paquetes=org.jboss.byteman -Djava.awt.sin cabeza=verdadero=========================================================================21:22:58,773 INFO [org.jboss.módulos] (principal) JBoss Módulos versión 1.4.4.Final-redhat-1. . .21:23:21,441 INFO [org.jboss.como] (Controlador Bota Hilo) WFLYSRV0060: Http gestión interfaz escuchando en http://127.0.0.1:9990/management21:23:21,442 INFO [org.jboss.como] (Controlador Bota Hilo) WFLYSRV0051: Admin consola escuchando en http://127.0.0.1:999021:23:21,442 INFO [org.jboss.como] (Controlador Bota Hilo) WFLYSRV0025: EAP 7.0.0.Beta1 (WildFly Núcleo 2.0.3.Final-redhat-1) iniciado en 22950ms - Comenzó 261 de 509 servicios (332 servicios son perezoso, pasivo o en-demanda)
Ejecución Docker
En un mundo de contenedores, basta con docker run
para ejecutar su JBoss EAP. Sin embargo, la imagen de JBoss EAP no existe en Centro Docker por lo que la imagen debe crearse explícitamente. Todavía necesita descargar explícitamente JBoss EAP y luego utilizar lo siguiente Dockerfile para construir la imagen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# Utilice la última imagen jboss/base-jdk:8 como base DESDE jboss/base-jdk:8 # Establecer la variable de entorno JBOSS_VERSION ENV JBOSS_VERSIÓN 7.0.0.Beta ENV JBOSS_HOME /op/jboss/jboss-eap-7.0/ COPIA jboss-eap-$JBOSS_VERSION.zip $INICIO # Añade la distribución JBoss a /opt, y haz jboss el propietario del contenido zip extraído # Asegúrese de que la distribución está disponible en un lugar conocido RUN cd $INICIO && descomprimir jboss-eap-$JBOSS_VERSION.zip && rm jboss-eap-$JBOSS_VERSION.zip # Garantizar que las señales se reenvían correctamente al proceso JVM para el apagado graceful. ENV LAUNCH_JBOSS_IN_BACKGROUND verdadero # Exponer los puertos que nos interesan EXPONE 8080 9990 # Establece el comando por defecto que se ejecuta al arrancar # Esto arrancará JBoss EAP en modo autónomo y se enlazará a todas las interfaces CMD ["/opt/jboss/jboss-eap-7.0/bin/standalone.sh", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0"] |
La imagen se construye como:
1 |
docker construya -t arungupta/jboss-eap:7-beta . |
Y entonces usted puede ejecutar el contenedor JBoss EAP 7 como:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
docker ejecute -it -p 8080:8080 arungupta/jboss-eap:7-beta ========================================================================= JBoss Bootstrap Medio ambiente JBOSS_HOME: /op/jboss/jboss-eap-7.0/ JAVA: /usr/lib/jvm/java/papelera/java JAVA_OPTS: -servidor -verbose:gc -Xloggc:"/opt/jboss/jboss-eap-7.0//standalone/log/gc.log" -XX:+ImprimirDetalles -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NúmeroDeArchivosGCLog=5 -XX:GCLogFileSize=3M -XX:-TraceClassUnloading -Xms1303m -Xmx1303m -Djava.red.preferirIPv4Stack=verdadero -Djboss.módulos.sistema.paquetes=org.jboss.byteman -Djava.awt.sin cabeza=verdadero ========================================================================= 20:51:12,551 INFO [org.jboss.módulos] (principal) JBoss Módulos versión 1.4.4.Final-redhat-1 20:51:12,824 INFO [org.jboss.msc] (principal) JBoss MSC versión 1.2.6.Final-redhat-1 . . . 20:51:16,750 INFO [org.jboss.como] (Controlador Bota Hilo) WFLYSRV0060: Http gestión interfaz escuchando en http://0.0.0.0:9990/management 20:51:16,758 INFO [org.jboss.como] (Controlador Bota Hilo) WFLYSRV0051: Admin consola escuchando en http://0.0.0.0:9990 20:51:16,759 INFO [org.jboss.como] (Controlador Bota Hilo) WFLYSRV0025: EAP 7.0.0.Beta1 (WildFly Núcleo 2.0.3.Final-redhat-1) iniciado en 4529ms - Comenzó 261 de 509 servicios (332 servicios son perezoso, pasivo o en-demanda) |
Observe que los puertos de aplicación y gestión están vinculados a todas las interfaces de red. Esto simplificará el despliegue de la aplicación a esta instancia JBoss EAP más tarde. Detenga el servidor ya que mostraremos una manera más fácil de iniciarlo más tarde.
Iniciar servidor de aplicaciones y base de datos
La aplicación Java EE proporcionará una interfaz HTTP CRUD sobre documentos JSON almacenados en Couchbase. La aplicación se desplegará en JBoss EAP 7 Beta. Por lo tanto, será necesario iniciar Couchbase y JBoss EAP. Utiliza el archivo Docker Compose de github.com/arun-gupta/docker-images/blob/master/jboss-eap7-nosql/docker-compose.yml para iniciar Couchbase y el contenedor JBoss EAP 7:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
mycouchbase: nombre_contenedor: "db" imagen: couchbase/servidor puertos: - 8091:8091 - 8092:8092 - 8093:8093 - 11210:11210 jboss: imagen: arungupta/jboss-eap:7-beta medio ambiente: - COUCHBASE_URI=db puertos: - 8080:8080 - 9990:9990 |
La aplicación se inicia como:
1 2 3 4 |
docker-componer --x-red arriba -d Creación de red "jbosseap7nosql" con conductor "Ninguno" Inicio jbosseap7nosql_jboss_1 Creación de db |
Los contenedores iniciados pueden verse como:
1 2 3 4 |
docker ps CONTENEDOR ID IMAGEN COMANDO CREADO ESTADO PUERTOS NOMBRES 154436dfbfb1 couchbase/servidor "/entrypoint.sh sofá" 10 segundos hace Arriba 8 segundos 0.0.0.0:8091-8093->8091-8093/tcp, 11207/tcp, 11211/tcp, 18091-18092/tcp, 0.0.0.0:11210->11210/tcp db cb76d4e38df3 arungupta/jboss-eap:7-beta "/opt/jboss/jboss-eap" 10 segundos hace Arriba 9 segundos 0.0.0.0:8080->8080/tcp, 0.0.0.0:9990->9990/tcp jbosseap7nosql_jboss_1 |
Configurar Couchbase Server
Clon couchbase-javaee aplicación. Esta aplicación Java EE utiliza API Java SDK de Couchbase para conectar con el servidor Couchbase. El código bootstrap es:
1 |
CouchbaseCluster.crear(Sistema.getenv("COUCHBASE_URI")); |
y se invoca desde Abstracción de bases de datos. Couchbase Server puede configurarse mediante API REST. Estas API REST se definen en un perfil Maven en pom.xml
de esta aplicación. Y así configurar el servidor Couchbase como:
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 |
mvn instale -Pcouchbase -Ddocker.host=$(docker-máquina ip couchbase) [INFO] Escaneado para proyectos... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Edificio couchbase-javaee 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-recursos-plugin:2.6:recursos (por defecto-recursos) @ couchbase-javaee --- [INFO] Utilizando UTF-8 codificación a copia filtrado recursos. [INFO] Copia de 0 recurso [INFO] [INFO] --- maven-compilador-plugin:2.3.2:compilar (por defecto-compilar) @ couchbase-javaee --- [INFO] Nada a compilar - todos clases son arriba a fecha [INFO] [INFO] --- maven-recursos-plugin:2.6:testResources (por defecto-testResources) @ couchbase-javaee --- [INFO] Utilizando UTF-8 codificación a copia filtrado recursos. [INFO] omitir no existente resourceDirectory /Usuarios/arungupta/espacios de trabajo/couchbase-javaee/src/prueba/recursos [INFO] [INFO] --- maven-compilador-plugin:2.3.2:testCompile (por defecto-testCompile) @ couchbase-javaee --- [INFO] Nada a compilar - todos clases son arriba a fecha [INFO] [INFO] --- maven-surefire-plugin:2.12.4:prueba (por defecto-prueba) @ couchbase-javaee --- [INFO] [INFO] --- maven-guerra-plugin:2.1.1:guerra (por defecto-guerra) @ couchbase-javaee --- [INFO] Embalaje aplicación web [INFO] Montaje aplicación web [couchbase-javaee] en [/Usuarios/arungupta/espacios de trabajo/couchbase-javaee/objetivo/couchbase-javaee] [INFO] Tratamiento guerra proyecto [INFO] Copia de aplicación web recursos [/Usuarios/arungupta/espacios de trabajo/couchbase-javaee/src/principal/aplicación web] [INFO] Aplicación web montado en [82 msecs] [INFO] Edificio guerra: /Usuarios/arungupta/espacios de trabajo/couchbase-javaee/objetivo/couchbase-javaee.guerra [INFO] [INFO] --- maven-instale-plugin:2.4:instale (por defecto-instale) @ couchbase-javaee --- [INFO] Instalación de /Usuarios/arungupta/espacios de trabajo/couchbase-javaee/objetivo/couchbase-javaee.guerra a /Usuarios/arungupta/.m2/repositorio/org/couchbase/muestra/couchbase-javaee/1.0-SNAPSHOT/couchbase-javaee-1.0-SNAPSHOT.guerra [INFO] Instalación de /Usuarios/arungupta/espacios de trabajo/couchbase-javaee/pom.xml a /Usuarios/arungupta/.m2/repositorio/org/couchbase/muestra/couchbase-javaee/1.0-SNAPSHOT/couchbase-javaee-1.0-SNAPSHOT.pom [INFO] [INFO] --- exec-maven-plugin:1.4.0:exec (Configure memoria) @ couchbase-javaee --- * Nombre de host fue NO encontrado en DNS caché * Prueba 192.168.99.102... % Total % Recibido % Xferd Media Velocidad Tiempo Tiempo Tiempo Actual Dload Cargar Total Gastado Izquierda Velocidad 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Conectado a 192.168.99.102 (192.168.99.102) puerto 8091 (#0) > POST /piscinas/por defecto HTTP/1.1 > Usuario-Agente: rizo/7.37.1 > Anfitrión: 192.168.99.102:8091 > Acepte: */* > Content-Length: 36 > Content-Type: application/x-www-form-urlencoded > } [datos no mostrados] * subida completamente enviada: 36 de 36 bytes < HTTP/1.1 200 OK * El servidor Couchbase no está en la lista negra < Servidor: Couchbase Server < Pragma: no-cache < Fecha: Lun, 21 Dic 2015 21:35:10 GMT < Content-Length: 0 < Cache-Control: no-cache POST /node/controller/setupServices HTTP/1.1 > User-Agent: curl/7.37.1 > Host: 192.168.99.102:8091 > Aceptar: */* > Contenido-Longitud: 26 > Contenido-Tipo: aplicación/x-www-formulario-urlencoded > } [datos no se muestra] * cargar completamente enviado fuera de: 26 fuera de 26 bytes < HTTP/1.1 200 OK * Servidor Couchbase Servidor es no En la lista negra < Servidor: Couchbase Servidor < Pragma: no-caché < Fecha: Lun, 21 Diciembre 2015 21:35:10 GMT < Contenido-Longitud: 0 < Caché-Controlar: no-caché < 100 26 0 0 100 26 0 9976 --:--:-- --:--:-- --:--:-- 13000 * Conexión #0 to host 192.168.99.102 left intact [INFO] [INFO] --- exec-maven-plugin:1.4.0:exec (Setup credentials) @ couchbase-javaee --- * Hostname was NOT found in DNS cache * Trying 192.168.99.102... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:--:--:--:--:-- 0* Conectado a 192.168.99.102 (192.168.99.102) puerto 8091 (#0) > POST /settings/web HTTP/1.1 > Usuario-Agente: rizo/7.37.1 > Anfitrión: 192.168.99.102:8091 > Acepte: */* > Content-Length: 50 > Content-Type: application/x-www-form-urlencoded > } [datos no mostrados] * subida completamente enviada: 50 de 50 bytes < HTTP/1.1 200 OK * El servidor Couchbase no está en la lista negra < Servidor: Couchbase Server < Pragma: no-cache < Fecha: Lun, 21 Dic 2015 21:35:10 GMT < Content-Type: application/json < Contenido-Longitud: 44 < Cache-Control: no-cache POST /sampleBuckets/install HTTP/1.1 > Autorización: Basic QWRtaW5pc3RyYXRvcjpwYXNzd29yZA== > User-Agent: curl/7.37.1 > Host: 192.168.99.102:8091 > Aceptar: */* > Contenido-Longitud: 17 > Contenido-Tipo: aplicación/x-www-formulario-urlencoded > } [datos no se muestra] * cargar completamente enviado fuera de: 17 fuera de 17 bytes < HTTP/1.1 202 Aceptado * Servidor Couchbase Servidor es no En la lista negra < Servidor: Couchbase Servidor < Pragma: no-caché < Fecha: Lun, 21 Diciembre 2015 21:35:11 GMT < Contenido-Tipo: aplicación/json < Contenido-Longitud: 2 < Caché-Controlar: no-caché < { [datos no se muestra] 100 19 100 2 100 17 41 355 --:--:-- --:--:-- --:--:-- 361 * Conexión #0 a host 192.168.99.102 intacto [][INFO] ------------------------------------------------------------------------ [INFO] CONSTRUIR ÉXITO [INFO] ------------------------------------------------------------------------ [INFO] Total tiempo: 2.094 s [INFO] Terminado en: 2015-12-21T13:35:11-08:00 [INFO] Final Memoria: 13M/309M [INFO] ------------------------------------------------------------------------ |
Despliegue de aplicaciones Java EE en JBoss
Las aplicaciones Java EE pueden desplegarse fácilmente en JBoss EAP 7 Beta mediante la aplicación Plugin WildFly Maven. Esto también se define como un perfil de Maven en pom.xml
también. Despliegue la aplicación como:
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 |
mvn instale -Pwildfly -Dwildfly.nombre de host=$(docker-máquina ip couchbase) -Dwildfly.nombre de usuario=admin -Dwildfly.contraseña=Admin#007 [INFO] Escaneado para proyectos... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Edificio couchbase-javaee 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-recursos-plugin:2.6:recursos (por defecto-recursos) @ couchbase-javaee --- [INFO] Utilizando UTF-8 codificación a copia filtrado recursos. [INFO] Copia de 0 recurso [INFO] [INFO] --- maven-compilador-plugin:2.3.2:compilar (por defecto-compilar) @ couchbase-javaee --- [INFO] Nada a compilar - todos clases son arriba a fecha [INFO] [INFO] --- maven-recursos-plugin:2.6:testResources (por defecto-testResources) @ couchbase-javaee --- [INFO] Utilizando UTF-8 codificación a copia filtrado recursos. [INFO] omitir no existente resourceDirectory /Usuarios/arungupta/espacios de trabajo/couchbase-javaee/src/prueba/recursos [INFO] [INFO] --- maven-compilador-plugin:2.3.2:testCompile (por defecto-testCompile) @ couchbase-javaee --- [INFO] Nada a compilar - todos clases son arriba a fecha [INFO] [INFO] --- maven-surefire-plugin:2.12.4:prueba (por defecto-prueba) @ couchbase-javaee --- [INFO] [INFO] --- maven-guerra-plugin:2.1.1:guerra (por defecto-guerra) @ couchbase-javaee --- [INFO] Embalaje aplicación web [INFO] Montaje aplicación web [couchbase-javaee] en [/Usuarios/arungupta/espacios de trabajo/couchbase-javaee/objetivo/couchbase-javaee] [INFO] Tratamiento guerra proyecto [INFO] Copia de aplicación web recursos [/Usuarios/arungupta/espacios de trabajo/couchbase-javaee/src/principal/aplicación web] [INFO] Aplicación web montado en [62 msecs] [INFO] Edificio guerra: /Usuarios/arungupta/espacios de trabajo/couchbase-javaee/objetivo/couchbase-javaee.guerra [INFO] [INFO] --- maven-instale-plugin:2.4:instale (por defecto-instale) @ couchbase-javaee --- [INFO] Instalación de /Usuarios/arungupta/espacios de trabajo/couchbase-javaee/objetivo/couchbase-javaee.guerra a /Usuarios/arungupta/.m2/repositorio/org/couchbase/muestra/couchbase-javaee/1.0-SNAPSHOT/couchbase-javaee-1.0-SNAPSHOT.guerra [INFO] Instalación de /Usuarios/arungupta/espacios de trabajo/couchbase-javaee/pom.xml a /Usuarios/arungupta/.m2/repositorio/org/couchbase/muestra/couchbase-javaee/1.0-SNAPSHOT/couchbase-javaee-1.0-SNAPSHOT.pom [INFO] [INFO] >>> mosca salvaje-maven-plugin:1.1.0.Alfa4:despliegue (por defecto) > paquete @ couchbase-javaee >>> [INFO] [INFO] --- maven-recursos-plugin:2.6:recursos (por defecto-recursos) @ couchbase-javaee --- [INFO] Utilizando UTF-8 codificación a copia filtrado recursos. [INFO] Copia de 0 recurso [INFO] [INFO] --- maven-compilador-plugin:2.3.2:compilar (por defecto-compilar) @ couchbase-javaee --- [INFO] Nada a compilar - todos clases son arriba a fecha [INFO] [INFO] --- maven-recursos-plugin:2.6:testResources (por defecto-testResources) @ couchbase-javaee --- [INFO] Utilizando UTF-8 codificación a copia filtrado recursos. [INFO] omitir no existente resourceDirectory /Usuarios/arungupta/espacios de trabajo/couchbase-javaee/src/prueba/recursos [INFO] [INFO] --- maven-compilador-plugin:2.3.2:testCompile (por defecto-testCompile) @ couchbase-javaee --- [INFO] Nada a compilar - todos clases son arriba a fecha [INFO] [INFO] --- maven-surefire-plugin:2.12.4:prueba (por defecto-prueba) @ couchbase-javaee --- [INFO] Saltar ejecución de surefire porque it tiene ya ha sido ejecute para este configuración [INFO] [INFO] --- maven-guerra-plugin:2.1.1:guerra (por defecto-guerra) @ couchbase-javaee --- [INFO] Embalaje aplicación web [INFO] Montaje aplicación web [couchbase-javaee] en [/Usuarios/arungupta/espacios de trabajo/couchbase-javaee/objetivo/couchbase-javaee] [INFO] Tratamiento guerra proyecto [INFO] Copia de aplicación web recursos [/Usuarios/arungupta/espacios de trabajo/couchbase-javaee/src/principal/aplicación web] [INFO] Aplicación web montado en [20 msecs] [INFO] Edificio guerra: /Usuarios/arungupta/espacios de trabajo/couchbase-javaee/objetivo/couchbase-javaee.guerra [INFO] [INFO] <<< mosca salvaje-maven-plugin:1.1.0.Alfa4:despliegue (por defecto) < paquete @ couchbase-javaee <<< [INFO] [INFO] --- mosca salvaje-maven-plugin:1.1.0.Alfa4:despliegue (por defecto) @ couchbase-javaee --- Diciembre 21, 2015 1:43:34 PM org.xnio.Xnio INFO: XNIO versión 3.3.1.Final Diciembre 21, 2015 1:43:34 PM org.xnio.nio.NioXnio INFO: XNIO NIO Aplicación Versión 3.3.1.Final Diciembre 21, 2015 1:43:34 PM org.jboss.remoting3.EndpointImpl INFO: JBoss Remota versión 4.0.9.Final [INFO] Autentificación contra seguridad reino: GestiónRealm [INFO] ------------------------------------------------------------------------ [INFO] CONSTRUIR ÉXITO [INFO] ------------------------------------------------------------------------ [INFO] Total tiempo: 17.010 s [INFO] Terminado en: 2015-12-21T13:43:48-08:00 [INFO] Final Memoria: 17M/217M [INFO] ------------------------------------------------------------------------ |
Acceder a la aplicación
Como se mencionó anteriormente, la aplicación proporciona HTTP CRUD API sobre documentos JSON almacenados en Couchbase. Accede a la aplicación como:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
rizo -v http://$(docker-machine ip couchbase):8080/couchbase-javaee/resources/airline * Nombre de host fue NO encontrado en DNS caché * Prueba 192.168.99.102... * Conectado a 192.168.99.102 (192.168.99.102) puerto 8080 (#0) > GET /couchbase-javaee/recursos/aerolínea HTTP/1.1 > Usuario-Agente: rizo/7.37.1 > Anfitrión: 192.168.99.102:8080 > Acepte: */* > < HTTP/1.1 200 OK < Conexión: guarda-vivo < X-Powered-Por: Resaca/1 * Servidor JBoss-EAP/7 es no En la lista negra < Servidor: JBoss-EAP/7 < Contenido-Tipo: aplicación/octeto-flujo < Contenido-Longitud: 1402 < Fecha: Lun, 21 Diciembre 2015 21:45:40 GMT < * Conexión #0 a host 192.168.99.102 intacto [{"viaje-muestra":{"país":"Estados Unidos","iata":"Q5","Indicativo":"MILE-AIR","nombre":"40-Mile Air","icao":"MLA","id":10,"tipo":"aerolínea"}}, {"viaje-muestra":{"país":"Estados Unidos","iata":"TQ","Indicativo":"TXW","nombre":"Alas de Texas","icao":"TXW","id":10123,"tipo":"aerolínea"}}, {"viaje-muestra":{"país":"Estados Unidos","iata":"A1","Indicativo":"atifly","nombre":"Atifly","icao":"A1F","id":10226,"tipo":"aerolínea"}}, {"viaje-muestra":{"país":"Reino Unido","iata":null,"Indicativo":null,"nombre":"Jc royal.britannica","icao":"JRB","id":10642,"tipo":"aerolínea"}}, {"viaje-muestra":{"país":"Estados Unidos","iata":"ZQ","Indicativo":"LOCAIR","nombre":"Locair","icao":"LOC","id":10748,"tipo":"aerolínea"}}, {"viaje-muestra":{"país":"Estados Unidos","iata":"K5","Indicativo":"SASQUATCH","nombre":"SeaPort Airlines","icao":"SQH","id":10765,"tipo":"aerolínea"}}, {"viaje-muestra":{"país":"Estados Unidos","iata":"KO","Indicativo":"ACE AIR","nombre":"Alaska Central Express","icao":"AER","id":109,"tipo":"aerolínea"}}, {"viaje-muestra":{"país":"Reino Unido","iata":"5W","Indicativo":"FLYSTAR","nombre":"Astraeus","icao":"AEU","id":112,"tipo":"aerolínea"}}, {"viaje-muestra":{"país":"Francia,"iata":"UU","Indicativo":"REUNIÓN,"nombre":"Aire Austral","icao":"REU","id":1191,"tipo":"aerolínea"}}, {"viaje-muestra":{"país":"Francia,"iata":"A5","Indicativo":"AIRLINAIR","nombre":"Airlinair","icao":"RLA","id":1203,"tipo":"aerolínea"}}] |
Se pueden realizar operaciones CRUD (GET, POST, PUT, DELETE) sobre el recurso Aerolínea en la aplicación. La API CRUD completa está documentada en github.com/arun-gupta/couchbase-javaee. En este blog se explicaba cómo acceder a una base de datos NoSQL desde JBoss EAP 7. Más información sobre Couchbase 4:
- Novedades de Couchbase Server 4.1
- Documentación de Couchbase Server
- Hable con nosotros en Foros de Couchbase
- Siga @couchbasedev o @couchbase
Obtenga más información sobre Couchbase en este reciente seminario web orientado a desarrolladores: