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/bin/standalone.sh=========================================================================JBoss Bootstrap EnvironmentJBOSS_HOME: /Users/arungupta/tools/jboss-eap-7.0JAVA: javaJAVA_OPTS: -server -verbose:gc -Xloggc:"/Users/arungupta/tools/jboss-eap-7.0/standalone/log/gc.log" -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=3M -XX:-TraceClassUnloading -Xms1303m -Xmx1303m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true=========================================================================21:22:58,773 INFO [org.jboss.modules] (main) JBoss Modules version 1.4.4.Final-redhat-1. . .21:23:21,441 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0060: Http management interface listening on https://127.0.0.1:9990/management21:23:21,442 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on https://127.0.0.1:999021:23:21,442 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: EAP 7.0.0.Beta1 (WildFly Core 2.0.3.Final-redhat-1) started in 22950ms - Started 261 of 509 services (332 services are lazy, passive or on-demand)
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 |
# Use latest jboss/base-jdk:8 image as the base FROM jboss/base-jdk:8 # Set the JBOSS_VERSION env variable ENV JBOSS_VERSION 7.0.0.Beta ENV JBOSS_HOME /opt/jboss/jboss-eap-7.0/ COPY jboss-eap-$JBOSS_VERSION.zip $HOME # Add the JBoss distribution to /opt, and make jboss the owner of the extracted zip content # Make sure the distribution is available from a well-known place RUN cd $HOME && unzip jboss-eap-$JBOSS_VERSION.zip && rm jboss-eap-$JBOSS_VERSION.zip # Ensure signals are forwarded to the JVM process correctly for graceful shutdown ENV LAUNCH_JBOSS_IN_BACKGROUND true # Expose the ports we're interested in EXPOSE 8080 9990 # Set the default command to run on boot # This will boot JBoss EAP in the standalone mode and bind to all interface 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 build -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 run -it -p 8080:8080 arungupta/jboss-eap:7-beta ========================================================================= JBoss Bootstrap Environment JBOSS_HOME: /opt/jboss/jboss-eap-7.0/ JAVA: /usr/lib/jvm/java/bin/java JAVA_OPTS: -server -verbose:gc -Xloggc:"/opt/jboss/jboss-eap-7.0//standalone/log/gc.log" -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=3M -XX:-TraceClassUnloading -Xms1303m -Xmx1303m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true ========================================================================= 20:51:12,551 INFO [org.jboss.modules] (main) JBoss Modules version 1.4.4.Final-redhat-1 20:51:12,824 INFO [org.jboss.msc] (main) JBoss MSC version 1.2.6.Final-redhat-1 . . . 20:51:16,750 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0060: Http management interface listening on https://0.0.0.0:9990/management 20:51:16,758 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on https://0.0.0.0:9990 20:51:16,759 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: EAP 7.0.0.Beta1 (WildFly Core 2.0.3.Final-redhat-1) started in 4529ms - Started 261 of 509 services (332 services are lazy, passive or on-demand) |
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: container_name: "db" image: couchbase/server ports: - 8091:8091 - 8092:8092 - 8093:8093 - 11210:11210 jboss: image: arungupta/jboss-eap:7-beta environment: - COUCHBASE_URI=db ports: - 8080:8080 - 9990:9990 |
La aplicación se inicia como:
|
1 2 3 4 |
docker-compose --x-networking up -d Creating network "jbosseap7nosql" with driver "None" Starting jbosseap7nosql_jboss_1 Creating db |
Los contenedores iniciados pueden verse como:
|
1 2 3 4 |
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 154436dfbfb1 couchbase/server "/entrypoint.sh couch" 10 seconds ago Up 8 seconds 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 seconds ago Up 9 seconds 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.create(System.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 install -Pcouchbase -Ddocker.host=$(docker-machine ip couchbase) [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building couchbase-javaee 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ couchbase-javaee --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 0 resource [INFO] [INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ couchbase-javaee --- [INFO] Nothing to compile - all classes are up to date [INFO] [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ couchbase-javaee --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] skip non existing resourceDirectory /Users/arungupta/workspaces/couchbase-javaee/src/test/resources [INFO] [INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ couchbase-javaee --- [INFO] Nothing to compile - all classes are up to date [INFO] [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ couchbase-javaee --- [INFO] [INFO] --- maven-war-plugin:2.1.1:war (default-war) @ couchbase-javaee --- [INFO] Packaging webapp [INFO] Assembling webapp [couchbase-javaee] in [/Users/arungupta/workspaces/couchbase-javaee/target/couchbase-javaee] [INFO] Processing war project [INFO] Copying webapp resources [/Users/arungupta/workspaces/couchbase-javaee/src/main/webapp] [INFO] Webapp assembled in [82 msecs] [INFO] Building war: /Users/arungupta/workspaces/couchbase-javaee/target/couchbase-javaee.war [INFO] [INFO] --- maven-install-plugin:2.4:install (default-install) @ couchbase-javaee --- [INFO] Installing /Users/arungupta/workspaces/couchbase-javaee/target/couchbase-javaee.war to /Users/arungupta/.m2/repository/org/couchbase/sample/couchbase-javaee/1.0-SNAPSHOT/couchbase-javaee-1.0-SNAPSHOT.war [INFO] Installing /Users/arungupta/workspaces/couchbase-javaee/pom.xml to /Users/arungupta/.m2/repository/org/couchbase/sample/couchbase-javaee/1.0-SNAPSHOT/couchbase-javaee-1.0-SNAPSHOT.pom [INFO] [INFO] --- exec-maven-plugin:1.4.0:exec (Configure memory) @ 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* Connected to 192.168.99.102 (192.168.99.102) port 8091 (#0) > POST /pools/default HTTP/1.1 > User-Agent: curl/7.37.1 > Host: 192.168.99.102:8091 > Accept: */* > Content-Length: 36 > Content-Type: application/x-www-form-urlencoded > } [data not shown] * upload completely sent off: 36 out of 36 bytes < HTTP/1.1 200 OK * Server Couchbase Server is not blacklisted < Server: Couchbase Server < Pragma: no-cache < Date: Mon, 21 Dec 2015 21:35:10 GMT < Content-Length: 0 < Cache-Control: no-cache < 100 36 0 0 100 36 0 15510 --:--:-- --:--:-- --:--:-- 18000 * Connection #0 to host 192.168.99.102 left intact [INFO] [INFO] --- exec-maven-plugin:1.4.0:exec (Configure services) @ 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* Connected to 192.168.99.102 (192.168.99.102) port 8091 (#0) > POST /node/controller/setupServices HTTP/1.1 > User-Agent: curl/7.37.1 > Host: 192.168.99.102:8091 > Accept: */* > Content-Length: 26 > Content-Type: application/x-www-form-urlencoded > } [data not shown] * upload completely sent off: 26 out of 26 bytes < HTTP/1.1 200 OK * Server Couchbase Server is not blacklisted < Server: Couchbase Server < Pragma: no-cache < Date: Mon, 21 Dec 2015 21:35:10 GMT < Content-Length: 0 < Cache-Control: no-cache < 100 26 0 0 100 26 0 9976 --:--:-- --:--:-- --:--:-- 13000 * Connection #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* Connected to 192.168.99.102 (192.168.99.102) port 8091 (#0) > POST /settings/web HTTP/1.1 > User-Agent: curl/7.37.1 > Host: 192.168.99.102:8091 > Accept: */* > Content-Length: 50 > Content-Type: application/x-www-form-urlencoded > } [data not shown] * upload completely sent off: 50 out of 50 bytes < HTTP/1.1 200 OK * Server Couchbase Server is not blacklisted < Server: Couchbase Server < Pragma: no-cache < Date: Mon, 21 Dec 2015 21:35:10 GMT < Content-Type: application/json < Content-Length: 44 < Cache-Control: no-cache < { [data not shown] 100 94 100 44 100 50 6880 7818 --:--:-- --:--:-- --:--:-- 8333 * Connection #0 to host 192.168.99.102 left intact {"newBaseUri":"https://192.168.99.102:8091/"}[INFO] [INFO] --- exec-maven-plugin:1.4.0:exec (Install travel-sample bucket) @ 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* Connected to 192.168.99.102 (192.168.99.102) port 8091 (#0) * Server auth using Basic with user 'Administrator' > POST /sampleBuckets/install HTTP/1.1 > Authorization: Basic QWRtaW5pc3RyYXRvcjpwYXNzd29yZA== > User-Agent: curl/7.37.1 > Host: 192.168.99.102:8091 > Accept: */* > Content-Length: 17 > Content-Type: application/x-www-form-urlencoded > } [data not shown] * upload completely sent off: 17 out of 17 bytes < HTTP/1.1 202 Accepted * Server Couchbase Server is not blacklisted < Server: Couchbase Server < Pragma: no-cache < Date: Mon, 21 Dec 2015 21:35:11 GMT < Content-Type: application/json < Content-Length: 2 < Cache-Control: no-cache < { [data not shown] 100 19 100 2 100 17 41 355 --:--:-- --:--:-- --:--:-- 361 * Connection #0 to host 192.168.99.102 left intact [][INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2.094 s [INFO] Finished at: 2015-12-21T13:35:11-08:00 [INFO] Final Memory: 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 install -Pwildfly -Dwildfly.hostname=$(docker-machine ip couchbase) -Dwildfly.username=admin -Dwildfly.password=Admin#007 [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building couchbase-javaee 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ couchbase-javaee --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 0 resource [INFO] [INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ couchbase-javaee --- [INFO] Nothing to compile - all classes are up to date [INFO] [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ couchbase-javaee --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] skip non existing resourceDirectory /Users/arungupta/workspaces/couchbase-javaee/src/test/resources [INFO] [INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ couchbase-javaee --- [INFO] Nothing to compile - all classes are up to date [INFO] [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ couchbase-javaee --- [INFO] [INFO] --- maven-war-plugin:2.1.1:war (default-war) @ couchbase-javaee --- [INFO] Packaging webapp [INFO] Assembling webapp [couchbase-javaee] in [/Users/arungupta/workspaces/couchbase-javaee/target/couchbase-javaee] [INFO] Processing war project [INFO] Copying webapp resources [/Users/arungupta/workspaces/couchbase-javaee/src/main/webapp] [INFO] Webapp assembled in [62 msecs] [INFO] Building war: /Users/arungupta/workspaces/couchbase-javaee/target/couchbase-javaee.war [INFO] [INFO] --- maven-install-plugin:2.4:install (default-install) @ couchbase-javaee --- [INFO] Installing /Users/arungupta/workspaces/couchbase-javaee/target/couchbase-javaee.war to /Users/arungupta/.m2/repository/org/couchbase/sample/couchbase-javaee/1.0-SNAPSHOT/couchbase-javaee-1.0-SNAPSHOT.war [INFO] Installing /Users/arungupta/workspaces/couchbase-javaee/pom.xml to /Users/arungupta/.m2/repository/org/couchbase/sample/couchbase-javaee/1.0-SNAPSHOT/couchbase-javaee-1.0-SNAPSHOT.pom [INFO] [INFO] >>> wildfly-maven-plugin:1.1.0.Alpha4:deploy (default) > package @ couchbase-javaee >>> [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ couchbase-javaee --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 0 resource [INFO] [INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ couchbase-javaee --- [INFO] Nothing to compile - all classes are up to date [INFO] [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ couchbase-javaee --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] skip non existing resourceDirectory /Users/arungupta/workspaces/couchbase-javaee/src/test/resources [INFO] [INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ couchbase-javaee --- [INFO] Nothing to compile - all classes are up to date [INFO] [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ couchbase-javaee --- [INFO] Skipping execution of surefire because it has already been run for this configuration [INFO] [INFO] --- maven-war-plugin:2.1.1:war (default-war) @ couchbase-javaee --- [INFO] Packaging webapp [INFO] Assembling webapp [couchbase-javaee] in [/Users/arungupta/workspaces/couchbase-javaee/target/couchbase-javaee] [INFO] Processing war project [INFO] Copying webapp resources [/Users/arungupta/workspaces/couchbase-javaee/src/main/webapp] [INFO] Webapp assembled in [20 msecs] [INFO] Building war: /Users/arungupta/workspaces/couchbase-javaee/target/couchbase-javaee.war [INFO] [INFO] <<< wildfly-maven-plugin:1.1.0.Alpha4:deploy (default) < package @ couchbase-javaee <<< [INFO] [INFO] --- wildfly-maven-plugin:1.1.0.Alpha4:deploy (default) @ couchbase-javaee --- Dec 21, 2015 1:43:34 PM org.xnio.Xnio INFO: XNIO version 3.3.1.Final Dec 21, 2015 1:43:34 PM org.xnio.nio.NioXnio INFO: XNIO NIO Implementation Version 3.3.1.Final Dec 21, 2015 1:43:34 PM org.jboss.remoting3.EndpointImpl INFO: JBoss Remoting version 4.0.9.Final [INFO] Authenticating against security realm: ManagementRealm [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 17.010 s [INFO] Finished at: 2015-12-21T13:43:48-08:00 [INFO] Final Memory: 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 |
curl -v https://$(docker-machine ip couchbase):8080/couchbase-javaee/resources/airline * Hostname was NOT found in DNS cache * Trying 192.168.99.102... * Connected to 192.168.99.102 (192.168.99.102) port 8080 (#0) > GET /couchbase-javaee/resources/airline HTTP/1.1 > User-Agent: curl/7.37.1 > Host: 192.168.99.102:8080 > Accept: */* > < HTTP/1.1 200 OK < Connection: keep-alive < X-Powered-By: Undertow/1 * Server JBoss-EAP/7 is not blacklisted < Server: JBoss-EAP/7 < Content-Type: application/octet-stream < Content-Length: 1402 < Date: Mon, 21 Dec 2015 21:45:40 GMT < * Connection #0 to host 192.168.99.102 left intact [{"travel-sample":{"country":"United States","iata":"Q5","callsign":"MILE-AIR","name":"40-Mile Air","icao":"MLA","id":10,"type":"airline"}}, {"travel-sample":{"country":"United States","iata":"TQ","callsign":"TXW","name":"Texas Wings","icao":"TXW","id":10123,"type":"airline"}}, {"travel-sample":{"country":"United States","iata":"A1","callsign":"atifly","name":"Atifly","icao":"A1F","id":10226,"type":"airline"}}, {"travel-sample":{"country":"United Kingdom","iata":null,"callsign":null,"name":"Jc royal.britannica","icao":"JRB","id":10642,"type":"airline"}}, {"travel-sample":{"country":"United States","iata":"ZQ","callsign":"LOCAIR","name":"Locair","icao":"LOC","id":10748,"type":"airline"}}, {"travel-sample":{"country":"United States","iata":"K5","callsign":"SASQUATCH","name":"SeaPort Airlines","icao":"SQH","id":10765,"type":"airline"}}, {"travel-sample":{"country":"United States","iata":"KO","callsign":"ACE AIR","name":"Alaska Central Express","icao":"AER","id":109,"type":"airline"}}, {"travel-sample":{"country":"United Kingdom","iata":"5W","callsign":"FLYSTAR","name":"Astraeus","icao":"AEU","id":112,"type":"airline"}}, {"travel-sample":{"country":"France","iata":"UU","callsign":"REUNION","name":"Air Austral","icao":"REU","id":1191,"type":"airline"}}, {"travel-sample":{"country":"France","iata":"A5","callsign":"AIRLINAIR","name":"Airlinair","icao":"RLA","id":1203,"type":"airline"}}] |
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: