{"id":2054,"date":"2017-01-02T22:18:28","date_gmt":"2017-01-02T22:18:27","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2054"},"modified":"2025-06-13T18:46:29","modified_gmt":"2025-06-14T01:46:29","slug":"jboss-eap7-nosql-javaee-docker","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/jboss-eap7-nosql-javaee-docker\/","title":{"rendered":"JBoss EAP 7 y NoSQL utilizando Java EE y Docker"},"content":{"rendered":"<p>JBoss EAP 7 Beta ya est\u00e1 disponible <a href=\"https:\/\/blog.softwhere.org\/2015\/12\/19\/jboss-eap-7-beta-available\/\">publicado<\/a>muchas felicidades a Red Hat y, en particular, al\u00a0<a href=\"https:\/\/wildfly.org\">WildFly<\/a> \u00a1equipo! En esta versi\u00f3n se introducir\u00e1n muchas mejoras, como se documenta en <a href=\"https:\/\/access.redhat.com\/documentation\/en-us\/red_hat_jboss_enterprise_application_platform\/7.0\/html-single\/7.0.0_release_notes\/\">Notas de publicaci\u00f3n<\/a>. Uno de los temas principales es la conformidad con Java EE 7.<\/p>\n<h2>JBoss EAP 7 y Java EE 7<\/h2>\n<p>IBM y Oracle ya ofrecen servidores de aplicaciones compatibles con Java EE 7 con soporte comercial. Y ahora Red Hat tambi\u00e9n se unir\u00e1 pronto a esta fiesta. Aunque WildFly ha dado soporte a Java EE 7 durante m\u00e1s de 2 a\u00f1os, el soporte comercial es fundamental para que el c\u00f3digo abierto se adopte en toda la empresa. As\u00ed que es una buena noticia. Puede obtener m\u00e1s informaci\u00f3n sobre <a href=\"https:\/\/dzone.com\/refcardz\/java-enterprise-edition-7\">API Java EE 7 en DZone Refcardz<\/a> que escrib\u00ed junto con <a href=\"https:\/\/twitter.com\/alrubinger\">@alrubinger<\/a>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3122\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-03-31-at-12.01.20-PM.png\" alt=\"Java EE 7 Refcards\" width=\"1282\" height=\"527\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/01\/Screen-Shot-2017-03-31-at-12.01.20-PM.png 1282w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/01\/Screen-Shot-2017-03-31-at-12.01.20-PM-300x123.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/01\/Screen-Shot-2017-03-31-at-12.01.20-PM-1024x421.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/01\/Screen-Shot-2017-03-31-at-12.01.20-PM-768x316.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/01\/Screen-Shot-2017-03-31-at-12.01.20-PM-20x8.png 20w\" sizes=\"auto, (max-width: 1282px) 100vw, 1282px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Hay un mont\u00f3n de \"hola mundo\"\u00a0<a href=\"https:\/\/github.com\/javaee-samples\/javaee7-samples\/\">Ejemplos de Java EE 7<\/a>\u00a0que deber\u00edan funcionar con JBoss EAP. Esperemos que alguien actualice el <code>pom.xml<\/code>\u00a0y a\u00f1ade un nuevo perfil.<\/p>\n<h2>\u00bfPor qu\u00e9 NoSQL?<\/h2>\n<p>Si est\u00e1 creando una aplicaci\u00f3n empresarial tradicional, puede que le convenga utilizar un RDBMS. Hay un mont\u00f3n de ventajas de usar RDBMS, pero el uso de una base de datos NoSQL en su lugar tiene algunas ventajas:<\/p>\n<ul>\n<li>No es necesario tener un esquema predefinido y eso los convierte en un <strong>base de datos sin esquema<\/strong>. La adici\u00f3n de nuevas propiedades a objetos existentes es sencilla y no requiere ALTER TABLE. La direcci\u00f3n <strong>datos no estructurados<\/strong> da flexibilidad para cambiar el formato de los datos en cualquier momento sin tiempo de inactividad ni reducci\u00f3n de los niveles de servicio. Adem\u00e1s, no se producen uniones en el servidor porque no hay estructura y, por tanto, no hay relaci\u00f3n entre ellos.<\/li>\n<li><strong>Escalabilidad, agilidad y rendimiento<\/strong> es m\u00e1s 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\u00e1s en el CRUD.<\/li>\n<li>Las NoSQL est\u00e1n dise\u00f1adas para <strong>ampliaci\u00f3n<\/strong>\u00a0(horizontal) en lugar de escalar (vertical). Esto es importante teniendo en cuenta que las bases de datos, y todo lo dem\u00e1s, se est\u00e1n trasladando a la nube. RBDMS puede escalarse utilizando sharding, pero requiere una gesti\u00f3n compleja y no es para los d\u00e9biles de coraz\u00f3n. Las consultas que requieren JOINs a trav\u00e9s de shards es <strong>extremadamente ineficaz<\/strong>.<\/li>\n<li>Los RDBMS tienen <strong>desajuste de impedancia<\/strong> 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.<\/li>\n<li>Las bases de datos NoSQL est\u00e1n dise\u00f1adas para una menor gesti\u00f3n y los modelos de datos m\u00e1s sencillos conducen a <strong>menor coste administrativo<\/strong> tambi\u00e9n.<\/li>\n<\/ul>\n<p>As\u00ed que ahora est\u00e1s entusiasmado con NoSQL y quieres aprender m\u00e1s:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/es\/nosql-resources\/what-is-no-sql\/\">\u00bfPor qu\u00e9 NoSQL?<\/a><\/li>\n<li><a href=\"https:\/\/info.couchbase.com\/Why_NoSQL_aw.html\">\u00bfPor qu\u00e9 las empresas de \u00e9xito conf\u00edan en NoSQL?<\/a><\/li>\n<li><a href=\"https:\/\/info.couchbase.com\/15Q1MKTGBlog-TopTenUC0224_15Q1MKTGWebsite-TopTenUC0224.html\">Los 10 usos principales de NoSQL para empresas<\/a><\/li>\n<\/ul>\n<p>En resumen, existen cuatro tipos diferentes de bases de datos NoSQL:<\/p>\n<ul>\n<li><strong>Documento<\/strong>: Couchbase, Mongo y otros<\/li>\n<li><strong>Clave\/Valor<\/strong>: Couchbase, Redis y otros<\/li>\n<li><strong>Gr\u00e1fico<\/strong>: Neo4J, OrientDB y otros<\/li>\n<li><strong>Columna<\/strong>: Cassandra y otros<\/li>\n<\/ul>\n<p>Java EE 7 proporciona Java Persistence API que no proporciona ning\u00fan soporte para NoSQL. Entonces, \u00bfc\u00f3mo empezar con NoSQL con JBoss EAP 7? Este blog mostrar\u00e1 c\u00f3mo consultar una base de datos Couchbase utilizando una simple aplicaci\u00f3n Java EE desplegada en JBoss EAP 7 Beta.<\/p>\n<h2>\u00bfQu\u00e9 es Couchbase?<\/h2>\n<p><a href=\"https:\/\/couchbase.org\">Couchbase<\/a> es una base de datos de documentos NoSQL de c\u00f3digo abierto. Permite acceder, indexar y consultar documentos JSON al tiempo que aprovecha el almacenamiento en cach\u00e9 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).\u00a0<a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.0\/sdks\/intro.html\">varios SDK<\/a>. Este blog le mostrar\u00e1 c\u00f3mo puede crear f\u00e1cilmente una aplicaci\u00f3n CRUD utilizando <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.0\/sdks\/java-2.2\/java-intro.html\">SDK de Java para Couchbase.<\/a><\/p>\n<h2>Ejecutar JBoss EAP 7<\/h2>\n<p>Existen dos formas de iniciar JBoss EAP 7.<\/p>\n<h3>Descargar y ejecutar<\/h3>\n<ul>\n<li>Descargar <a href=\"https:\/\/developers.redhat.com\/products\/eap\/download\/\">JBoss EAP 7 Beta<\/a> y descomprimir.<\/li>\n<li>Inicie el servidor de aplicaciones como:\n<pre class=\"lang:default decode:true\">.\/jboss-eap-7.0\/bin\/standalone.sh \r\n=========================================================================\r\n\r\n  JBoss Bootstrap Environment\r\n\r\n  JBOSS_HOME: \/Users\/arungupta\/tools\/jboss-eap-7.0\r\n\r\n  JAVA: java\r\n\r\n  JAVA_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\r\n\r\n=========================================================================\r\n\r\n21:22:58,773 INFO  [org.jboss.modules] (main) JBoss Modules version 1.4.4.Final-redhat-1\r\n\r\n. . .\r\n\r\n21:23:21,441 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0060: Http management interface listening on https:\/\/127.0.0.1:9990\/management\r\n21:23:21,442 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on https:\/\/127.0.0.1:9990\r\n21: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)<\/pre>\n<\/li>\n<\/ul>\n<h3>Ejecuci\u00f3n Docker<\/h3>\n<p>En un mundo de contenedores, basta con <code>docker run<\/code>\u00a0para ejecutar su JBoss EAP. Sin embargo, la imagen de JBoss EAP no existe en <a href=\"https:\/\/hub.docker.com\">Centro Docker<\/a>\u00a0por lo que la imagen debe crearse expl\u00edcitamente. Todav\u00eda necesita descargar expl\u00edcitamente JBoss EAP y luego utilizar lo siguiente\u00a0<a href=\"https:\/\/github.com\/arun-gupta\/docker-images\/blob\/master\/jboss-eap\/Dockerfile\">Dockerfile<\/a> para construir la imagen:<\/p>\n<pre class=\"lang:default decode:true\"># Use latest jboss\/base-jdk:8 image as the base\r\nFROM jboss\/base-jdk:8\r\n\r\n# Set the JBOSS_VERSION env variable\r\nENV JBOSS_VERSION 7.0.0.Beta\r\nENV JBOSS_HOME \/opt\/jboss\/jboss-eap-7.0\/\r\n\r\nCOPY jboss-eap-$JBOSS_VERSION.zip $HOME\r\n\r\n# Add the JBoss distribution to \/opt, and make jboss the owner of the extracted zip content\r\n# Make sure the distribution is available from a well-known place\r\nRUN cd $HOME \r\n    &amp;&amp; unzip jboss-eap-$JBOSS_VERSION.zip \r\n    &amp;&amp; rm jboss-eap-$JBOSS_VERSION.zip\r\n\r\n# Ensure signals are forwarded to the JVM process correctly for graceful shutdown\r\nENV LAUNCH_JBOSS_IN_BACKGROUND true\r\n\r\n# Expose the ports we're interested in\r\nEXPOSE 8080 9990\r\n\r\n# Set the default command to run on boot\r\n# This will boot JBoss EAP in the standalone mode and bind to all interface\r\nCMD [\"\/opt\/jboss\/jboss-eap-7.0\/bin\/standalone.sh\", \"-b\", \"0.0.0.0\", \"-bmanagement\", \"0.0.0.0\"]<\/pre>\n<p>La imagen se construye como:<\/p>\n<pre><code>docker build -t arungupta\/jboss-eap:7-beta .<\/code><\/pre>\n<p>Y entonces usted puede ejecutar el contenedor JBoss EAP 7 como:<\/p>\n<pre class=\"lang:default decode:true\">docker run -it -p 8080:8080 arungupta\/jboss-eap:7-beta\r\n=========================================================================\r\n\r\n  JBoss Bootstrap Environment\r\n\r\n  JBOSS_HOME: \/opt\/jboss\/jboss-eap-7.0\/\r\n\r\n  JAVA: \/usr\/lib\/jvm\/java\/bin\/java\r\n\r\n  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\r\n\r\n=========================================================================\r\n\r\n20:51:12,551 INFO  [org.jboss.modules] (main) JBoss Modules version 1.4.4.Final-redhat-1\r\n20:51:12,824 INFO  [org.jboss.msc] (main) JBoss MSC version 1.2.6.Final-redhat-1\r\n\r\n. . .\r\n\r\n20:51:16,750 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0060: Http management interface listening on https:\/\/0.0.0.0:9990\/management\r\n20:51:16,758 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on https:\/\/0.0.0.0:9990\r\n20: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)<\/pre>\n<p>Observe que los puertos de aplicaci\u00f3n y gesti\u00f3n est\u00e1n vinculados a todas las interfaces de red. Esto simplificar\u00e1 el despliegue de la aplicaci\u00f3n a esta instancia JBoss EAP m\u00e1s tarde. Detenga el servidor ya que mostraremos una manera m\u00e1s f\u00e1cil de iniciarlo m\u00e1s tarde.<\/p>\n<h2>Iniciar servidor de aplicaciones y base de datos<\/h2>\n<p>La aplicaci\u00f3n Java EE proporcionar\u00e1 una interfaz HTTP CRUD sobre documentos JSON almacenados en Couchbase. La aplicaci\u00f3n se desplegar\u00e1 en JBoss EAP 7 Beta. Por lo tanto, ser\u00e1 necesario iniciar Couchbase y JBoss EAP. Utiliza el archivo Docker Compose de\u00a0 <a href=\"https:\/\/github.com\/arun-gupta\/docker-images\/blob\/master\/jboss-eap7-nosql\/docker-compose.yml\">github.com\/arun-gupta\/docker-images\/blob\/master\/jboss-eap7-nosql\/docker-compose.yml<\/a>\u00a0para iniciar Couchbase y el contenedor JBoss EAP 7:<\/p>\n<pre class=\"lang:default decode:true\">mycouchbase:\r\n  container_name: \"db\"\r\n  image: couchbase\/server\r\n  ports:\r\n    - 8091:8091\r\n    - 8092:8092 \r\n    - 8093:8093 \r\n    - 11210:11210\r\njboss:\r\n  image: arungupta\/jboss-eap:7-beta\r\n  environment:\r\n    - COUCHBASE_URI=db\r\n  ports:\r\n    - 8080:8080\r\n    - 9990:9990<\/pre>\n<p>La aplicaci\u00f3n se inicia como:<\/p>\n<pre class=\"lang:default decode:true\">docker-compose --x-networking up -d\r\nCreating network \"jbosseap7nosql\" with driver \"None\"\r\nStarting jbosseap7nosql_jboss_1\r\nCreating db<\/pre>\n<p>Los contenedores iniciados pueden verse como:<\/p>\n<pre class=\"lang:default decode:true\">docker ps\r\nCONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS                                                                                               NAMES\r\n154436dfbfb1        couchbase\/server             \"\/entrypoint.sh couch\"   10 seconds ago      Up 8 seconds        0.0.0.0:8091-8093-&gt;8091-8093\/tcp, 11207\/tcp, 11211\/tcp, 18091-18092\/tcp, 0.0.0.0:11210-&gt;11210\/tcp   db\r\ncb76d4e38df3        arungupta\/jboss-eap:7-beta   \"\/opt\/jboss\/jboss-eap\"   10 seconds ago      Up 9 seconds        0.0.0.0:8080-&gt;8080\/tcp, 0.0.0.0:9990-&gt;9990\/tcp                                                      jbosseap7nosql_jboss_1<\/pre>\n<h2>Configurar Couchbase Server<\/h2>\n<p>Clon <a href=\"https:\/\/github.com\/arun-gupta\/couchbase-javaee\">couchbase-javaee<\/a> aplicaci\u00f3n. Esta aplicaci\u00f3n Java EE utiliza\u00a0<a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/3.x\/developer\/java-2.1\/java-intro.html\">API Java SDK de Couchbase<\/a> para conectar con el servidor Couchbase. El c\u00f3digo bootstrap es:<\/p>\n<pre class=\"lang:default decode:true\">CouchbaseCluster.create(System.getenv(\"COUCHBASE_URI\"));<\/pre>\n<p>y se invoca desde <a href=\"https:\/\/github.com\/arun-gupta\/couchbase-javaee\/blob\/master\/src\/main\/java\/org\/couchbase\/sample\/javaee\/Database.java#L44\">Abstracci\u00f3n de bases de datos<\/a>. Couchbase Server puede configurarse mediante\u00a0<a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.0\/rest-api\/rest-endpoints-all.html\">API REST<\/a>. Estas API REST se definen en un perfil Maven en <code>pom.xml<\/code> de esta aplicaci\u00f3n. Y as\u00ed configurar el servidor Couchbase como:<\/p>\n<pre class=\"lang:default decode:true\">mvn install -Pcouchbase -Ddocker.host=$(docker-machine ip couchbase)\r\n[INFO] Scanning for projects...\r\n[INFO]                                                                         \r\n[INFO] ------------------------------------------------------------------------\r\n[INFO] Building couchbase-javaee 1.0-SNAPSHOT\r\n[INFO] ------------------------------------------------------------------------\r\n[INFO] \r\n[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ couchbase-javaee ---\r\n[INFO] Using 'UTF-8' encoding to copy filtered resources.\r\n[INFO] Copying 0 resource\r\n[INFO] \r\n[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ couchbase-javaee ---\r\n[INFO] Nothing to compile - all classes are up to date\r\n[INFO] \r\n[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ couchbase-javaee ---\r\n[INFO] Using 'UTF-8' encoding to copy filtered resources.\r\n[INFO] skip non existing resourceDirectory \/Users\/arungupta\/workspaces\/couchbase-javaee\/src\/test\/resources\r\n[INFO] \r\n[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ couchbase-javaee ---\r\n[INFO] Nothing to compile - all classes are up to date\r\n[INFO] \r\n[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ couchbase-javaee ---\r\n[INFO] \r\n[INFO] --- maven-war-plugin:2.1.1:war (default-war) @ couchbase-javaee ---\r\n[INFO] Packaging webapp\r\n[INFO] Assembling webapp [couchbase-javaee] in [\/Users\/arungupta\/workspaces\/couchbase-javaee\/target\/couchbase-javaee]\r\n[INFO] Processing war project\r\n[INFO] Copying webapp resources [\/Users\/arungupta\/workspaces\/couchbase-javaee\/src\/main\/webapp]\r\n[INFO] Webapp assembled in [82 msecs]\r\n[INFO] Building war: \/Users\/arungupta\/workspaces\/couchbase-javaee\/target\/couchbase-javaee.war\r\n[INFO] \r\n[INFO] --- maven-install-plugin:2.4:install (default-install) @ couchbase-javaee ---\r\n[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\r\n[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\r\n[INFO] \r\n[INFO] --- exec-maven-plugin:1.4.0:exec (Configure memory) @ couchbase-javaee ---\r\n* Hostname was NOT found in DNS cache\r\n*   Trying 192.168.99.102...\r\n  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current\r\n                                 Dload  Upload   Total   Spent    Left  Speed\r\n  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Connected to 192.168.99.102 (192.168.99.102) port 8091 (#0)\r\n&gt; POST \/pools\/default HTTP\/1.1\r\n&gt; User-Agent: curl\/7.37.1\r\n&gt; Host: 192.168.99.102:8091\r\n&gt; Accept: *\/*\r\n&gt; Content-Length: 36\r\n&gt; Content-Type: application\/x-www-form-urlencoded\r\n&gt; \r\n} [data not shown]\r\n* upload completely sent off: 36 out of 36 bytes\r\n&lt; HTTP\/1.1 200 OK\r\n* Server Couchbase Server is not blacklisted\r\n&lt; Server: Couchbase Server\r\n&lt; Pragma: no-cache\r\n&lt; Date: Mon, 21 Dec 2015 21:35:10 GMT\r\n&lt; Content-Length: 0\r\n&lt; Cache-Control: no-cache\r\n&lt; 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) &gt; POST \/node\/controller\/setupServices HTTP\/1.1\r\n&gt; User-Agent: curl\/7.37.1\r\n&gt; Host: 192.168.99.102:8091\r\n&gt; Accept: *\/*\r\n&gt; Content-Length: 26\r\n&gt; Content-Type: application\/x-www-form-urlencoded\r\n&gt; \r\n} [data not shown]\r\n* upload completely sent off: 26 out of 26 bytes\r\n&lt; HTTP\/1.1 200 OK\r\n* Server Couchbase Server is not blacklisted\r\n&lt; Server: Couchbase Server\r\n&lt; Pragma: no-cache\r\n&lt; Date: Mon, 21 Dec 2015 21:35:10 GMT\r\n&lt; Content-Length: 0\r\n&lt; Cache-Control: no-cache\r\n&lt; 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) &gt; POST \/settings\/web HTTP\/1.1\r\n&gt; User-Agent: curl\/7.37.1\r\n&gt; Host: 192.168.99.102:8091\r\n&gt; Accept: *\/*\r\n&gt; Content-Length: 50\r\n&gt; Content-Type: application\/x-www-form-urlencoded\r\n&gt; \r\n} [data not shown]\r\n* upload completely sent off: 50 out of 50 bytes\r\n&lt; HTTP\/1.1 200 OK\r\n* Server Couchbase Server is not blacklisted\r\n&lt; Server: Couchbase Server\r\n&lt; Pragma: no-cache\r\n&lt; Date: Mon, 21 Dec 2015 21:35:10 GMT\r\n&lt; Content-Type: application\/json\r\n&lt; Content-Length: 44\r\n&lt; Cache-Control: no-cache\r\n&lt; { [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' &gt; POST \/sampleBuckets\/install HTTP\/1.1\r\n&gt; Authorization: Basic QWRtaW5pc3RyYXRvcjpwYXNzd29yZA==\r\n&gt; User-Agent: curl\/7.37.1\r\n&gt; Host: 192.168.99.102:8091\r\n&gt; Accept: *\/*\r\n&gt; Content-Length: 17\r\n&gt; Content-Type: application\/x-www-form-urlencoded\r\n&gt; \r\n} [data not shown]\r\n* upload completely sent off: 17 out of 17 bytes\r\n&lt; HTTP\/1.1 202 Accepted\r\n* Server Couchbase Server is not blacklisted\r\n&lt; Server: Couchbase Server\r\n&lt; Pragma: no-cache\r\n&lt; Date: Mon, 21 Dec 2015 21:35:11 GMT\r\n&lt; Content-Type: application\/json\r\n&lt; Content-Length: 2\r\n&lt; Cache-Control: no-cache\r\n&lt; \r\n{ [data not shown]\r\n100    19  100     2  100    17     41    355 --:--:-- --:--:-- --:--:--   361\r\n* Connection #0 to host 192.168.99.102 left intact\r\n[][INFO] ------------------------------------------------------------------------\r\n[INFO] BUILD SUCCESS\r\n[INFO] ------------------------------------------------------------------------\r\n[INFO] Total time: 2.094 s\r\n[INFO] Finished at: 2015-12-21T13:35:11-08:00\r\n[INFO] Final Memory: 13M\/309M\r\n[INFO] ------------------------------------------------------------------------<\/pre>\n<h2>Despliegue de aplicaciones Java EE en JBoss<\/h2>\n<p>Las aplicaciones Java EE pueden desplegarse f\u00e1cilmente en JBoss EAP 7 Beta mediante la aplicaci\u00f3n <a href=\"https:\/\/docs.jboss.org\/wildfly\/plugins\/maven\/latest\/\">Plugin WildFly Maven.<\/a>\u00a0Esto tambi\u00e9n se define como un perfil de Maven en <code>pom.xml<\/code> tambi\u00e9n. Despliegue la aplicaci\u00f3n como:<\/p>\n<pre class=\"lang:default decode:true\">mvn install -Pwildfly -Dwildfly.hostname=$(docker-machine ip couchbase) -Dwildfly.username=admin -Dwildfly.password=Admin#007\r\n[INFO] Scanning for projects...\r\n[INFO]                                                                         \r\n[INFO] ------------------------------------------------------------------------\r\n[INFO] Building couchbase-javaee 1.0-SNAPSHOT\r\n[INFO] ------------------------------------------------------------------------\r\n[INFO] \r\n[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ couchbase-javaee ---\r\n[INFO] Using 'UTF-8' encoding to copy filtered resources.\r\n[INFO] Copying 0 resource\r\n[INFO] \r\n[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ couchbase-javaee ---\r\n[INFO] Nothing to compile - all classes are up to date\r\n[INFO] \r\n[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ couchbase-javaee ---\r\n[INFO] Using 'UTF-8' encoding to copy filtered resources.\r\n[INFO] skip non existing resourceDirectory \/Users\/arungupta\/workspaces\/couchbase-javaee\/src\/test\/resources\r\n[INFO] \r\n[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ couchbase-javaee ---\r\n[INFO] Nothing to compile - all classes are up to date\r\n[INFO] \r\n[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ couchbase-javaee ---\r\n[INFO] \r\n[INFO] --- maven-war-plugin:2.1.1:war (default-war) @ couchbase-javaee ---\r\n[INFO] Packaging webapp\r\n[INFO] Assembling webapp [couchbase-javaee] in [\/Users\/arungupta\/workspaces\/couchbase-javaee\/target\/couchbase-javaee]\r\n[INFO] Processing war project\r\n[INFO] Copying webapp resources [\/Users\/arungupta\/workspaces\/couchbase-javaee\/src\/main\/webapp]\r\n[INFO] Webapp assembled in [62 msecs]\r\n[INFO] Building war: \/Users\/arungupta\/workspaces\/couchbase-javaee\/target\/couchbase-javaee.war\r\n[INFO] \r\n[INFO] --- maven-install-plugin:2.4:install (default-install) @ couchbase-javaee ---\r\n[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\r\n[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\r\n[INFO] \r\n[INFO] &gt;&gt;&gt; wildfly-maven-plugin:1.1.0.Alpha4:deploy (default) &gt; package @ couchbase-javaee &gt;&gt;&gt;\r\n[INFO] \r\n[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ couchbase-javaee ---\r\n[INFO] Using 'UTF-8' encoding to copy filtered resources.\r\n[INFO] Copying 0 resource\r\n[INFO] \r\n[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ couchbase-javaee ---\r\n[INFO] Nothing to compile - all classes are up to date\r\n[INFO] \r\n[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ couchbase-javaee ---\r\n[INFO] Using 'UTF-8' encoding to copy filtered resources.\r\n[INFO] skip non existing resourceDirectory \/Users\/arungupta\/workspaces\/couchbase-javaee\/src\/test\/resources\r\n[INFO] \r\n[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ couchbase-javaee ---\r\n[INFO] Nothing to compile - all classes are up to date\r\n[INFO] \r\n[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ couchbase-javaee ---\r\n[INFO] Skipping execution of surefire because it has already been run for this configuration\r\n[INFO] \r\n[INFO] --- maven-war-plugin:2.1.1:war (default-war) @ couchbase-javaee ---\r\n[INFO] Packaging webapp\r\n[INFO] Assembling webapp [couchbase-javaee] in [\/Users\/arungupta\/workspaces\/couchbase-javaee\/target\/couchbase-javaee]\r\n[INFO] Processing war project\r\n[INFO] Copying webapp resources [\/Users\/arungupta\/workspaces\/couchbase-javaee\/src\/main\/webapp]\r\n[INFO] Webapp assembled in [20 msecs]\r\n[INFO] Building war: \/Users\/arungupta\/workspaces\/couchbase-javaee\/target\/couchbase-javaee.war\r\n[INFO] \r\n[INFO] &lt;&lt;&lt; wildfly-maven-plugin:1.1.0.Alpha4:deploy (default) &lt; package @ couchbase-javaee &lt;&lt;&lt;\r\n[INFO] \r\n[INFO] --- wildfly-maven-plugin:1.1.0.Alpha4:deploy (default) @ couchbase-javaee ---\r\nDec 21, 2015 1:43:34 PM org.xnio.Xnio \r\nINFO: XNIO version 3.3.1.Final\r\nDec 21, 2015 1:43:34 PM org.xnio.nio.NioXnio \r\nINFO: XNIO NIO Implementation Version 3.3.1.Final\r\nDec 21, 2015 1:43:34 PM org.jboss.remoting3.EndpointImpl \r\nINFO: JBoss Remoting version 4.0.9.Final\r\n[INFO] Authenticating against security realm: ManagementRealm\r\n[INFO] ------------------------------------------------------------------------\r\n[INFO] BUILD SUCCESS\r\n[INFO] ------------------------------------------------------------------------\r\n[INFO] Total time: 17.010 s\r\n[INFO] Finished at: 2015-12-21T13:43:48-08:00\r\n[INFO] Final Memory: 17M\/217M\r\n[INFO] ------------------------------------------------------------------------<\/pre>\n<h2>Acceder a la aplicaci\u00f3n<\/h2>\n<p>Como se mencion\u00f3 anteriormente, la aplicaci\u00f3n proporciona HTTP CRUD API sobre documentos JSON almacenados en Couchbase. Accede a la aplicaci\u00f3n como:<\/p>\n<pre class=\"lang:default decode:true\">curl -v https:\/\/$(docker-machine ip couchbase):8080\/couchbase-javaee\/resources\/airline\r\n* Hostname was NOT found in DNS cache\r\n*   Trying 192.168.99.102...\r\n* Connected to 192.168.99.102 (192.168.99.102) port 8080 (#0)\r\n&gt; GET \/couchbase-javaee\/resources\/airline HTTP\/1.1\r\n&gt; User-Agent: curl\/7.37.1\r\n&gt; Host: 192.168.99.102:8080\r\n&gt; Accept: *\/*\r\n&gt; \r\n&lt; HTTP\/1.1 200 OK\r\n&lt; Connection: keep-alive\r\n&lt; X-Powered-By: Undertow\/1\r\n* Server JBoss-EAP\/7 is not blacklisted\r\n&lt; Server: JBoss-EAP\/7\r\n&lt; Content-Type: application\/octet-stream\r\n&lt; Content-Length: 1402\r\n&lt; Date: Mon, 21 Dec 2015 21:45:40 GMT\r\n&lt; \r\n* Connection #0 to host 192.168.99.102 left intact\r\n[{\"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\"}}]<\/pre>\n<p>Se pueden realizar operaciones CRUD (GET, POST, PUT, DELETE) sobre el recurso Aerol\u00ednea en la aplicaci\u00f3n. La API CRUD completa est\u00e1 documentada en\u00a0<a href=\"https:\/\/github.com\/arun-gupta\/couchbase-javaee\">github.com\/arun-gupta\/couchbase-javaee<\/a>. En este blog se explicaba c\u00f3mo acceder a una base de datos NoSQL desde JBoss EAP 7. M\u00e1s informaci\u00f3n sobre Couchbase 4:<\/p>\n<ul>\n<li><a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.1\/introduction\/whats-new.html\">Novedades de Couchbase Server 4.1<\/a><\/li>\n<li><a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.1\/introduction\/intro.html\">Documentaci\u00f3n de Couchbase Server<\/a><\/li>\n<li>Hable con nosotros en <a href=\"https:\/\/www.couchbase.com\/blog\/es\/forums\/\">Foros de Couchbase<\/a><\/li>\n<li>Siga <a href=\"https:\/\/twitter.com\/couchbasedev\/\">@couchbasedev<\/a> o <a href=\"https:\/\/twitter.com\/couchbase\/\">@couchbase<\/a><\/li>\n<\/ul>\n<p>Obtenga m\u00e1s informaci\u00f3n sobre Couchbase en este reciente seminario web orientado a desarrolladores:<\/p>","protected":false},"excerpt":{"rendered":"<p>JBoss EAP 7 Beta is now released, many congratulations to Red Hat and\u00a0particularly to the\u00a0WildFly team! There are plenty of improvements coming in\u00a0this release as documented in Release Notes. One of the\u00a0major themes is Java EE 7 compliance. JBoss EAP [&hellip;]<\/p>","protected":false},"author":58,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816],"tags":[1519,1725],"ppma_author":[8933],"class_list":["post-2054","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","tag-docker","tag-nosql-database"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>JBoss EAP 7 and NoSQL using Java EE and Docker - The Couchbase Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/es\/jboss-eap7-nosql-javaee-docker\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JBoss EAP 7 and NoSQL using Java EE and Docker\" \/>\n<meta property=\"og:description\" content=\"JBoss EAP 7 Beta is now released, many congratulations to Red Hat and\u00a0particularly to the\u00a0WildFly team! There are plenty of improvements coming in\u00a0this release as documented in Release Notes. One of the\u00a0major themes is Java EE 7 compliance. JBoss EAP [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/jboss-eap7-nosql-javaee-docker\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-01-02T22:18:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T01:46:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/01\/Screen-Shot-2017-03-31-at-12.01.20-PM.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1282\" \/>\n\t<meta property=\"og:image:height\" content=\"527\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Arun Gupta, VP, Developer Advocacy, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@arungupta\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Arun Gupta, VP, Developer Advocacy, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/jboss-eap7-nosql-javaee-docker\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/jboss-eap7-nosql-javaee-docker\/\"},\"author\":{\"name\":\"Arun Gupta, VP, Developer Advocacy, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f\"},\"headline\":\"JBoss EAP 7 and NoSQL using Java EE and Docker\",\"datePublished\":\"2017-01-02T22:18:27+00:00\",\"dateModified\":\"2025-06-14T01:46:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/jboss-eap7-nosql-javaee-docker\/\"},\"wordCount\":949,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/jboss-eap7-nosql-javaee-docker\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"docker\",\"NoSQL Database\"],\"articleSection\":[\"Couchbase Server\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/jboss-eap7-nosql-javaee-docker\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/jboss-eap7-nosql-javaee-docker\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/jboss-eap7-nosql-javaee-docker\/\",\"name\":\"JBoss EAP 7 and NoSQL using Java EE and Docker - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/jboss-eap7-nosql-javaee-docker\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/jboss-eap7-nosql-javaee-docker\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2017-01-02T22:18:27+00:00\",\"dateModified\":\"2025-06-14T01:46:29+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/jboss-eap7-nosql-javaee-docker\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/jboss-eap7-nosql-javaee-docker\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/jboss-eap7-nosql-javaee-docker\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/jboss-eap7-nosql-javaee-docker\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JBoss EAP 7 and NoSQL using Java EE and Docker\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f\",\"name\":\"Arun Gupta, VP, Developer Advocacy, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8900a75409c646948fe0bd80f6240337\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g\",\"caption\":\"Arun Gupta, VP, Developer Advocacy, Couchbase\"},\"description\":\"Arun Gupta is the vice president of developer advocacy at Couchbase. He has built and led developer communities for 10+ years at Sun, Oracle, and Red Hat. He has deep expertise in leading cross-functional teams to develop and execute strategy, planning and execution of content, marketing campaigns, and programs. Prior to that he led engineering teams at Sun and is a founding member of the Java EE team. Gupta has authored more than 2,000 blog posts on technology. He has extensive speaking experience in more than 40 countries on myriad topics and is a JavaOne Rock Star for three years in a row. Gupta also founded the Devoxx4Kids chapter in the US and continues to promote technology education among children. An author of several books on technology, an avid runner, a globe trotter, a Java Champion, a JUG leader, NetBeans Dream Team member, and a Docker Captain, he is easily accessible at @arungupta.\",\"sameAs\":[\"https:\/\/x.com\/arungupta\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/arun-gupta\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"JBoss EAP 7 and NoSQL using Java EE and Docker - The Couchbase Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/es\/jboss-eap7-nosql-javaee-docker\/","og_locale":"es_MX","og_type":"article","og_title":"JBoss EAP 7 and NoSQL using Java EE and Docker","og_description":"JBoss EAP 7 Beta is now released, many congratulations to Red Hat and\u00a0particularly to the\u00a0WildFly team! There are plenty of improvements coming in\u00a0this release as documented in Release Notes. One of the\u00a0major themes is Java EE 7 compliance. JBoss EAP [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/es\/jboss-eap7-nosql-javaee-docker\/","og_site_name":"The Couchbase Blog","article_published_time":"2017-01-02T22:18:27+00:00","article_modified_time":"2025-06-14T01:46:29+00:00","og_image":[{"width":1282,"height":527,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/01\/Screen-Shot-2017-03-31-at-12.01.20-PM.png","type":"image\/png"}],"author":"Arun Gupta, VP, Developer Advocacy, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@arungupta","twitter_misc":{"Written by":"Arun Gupta, VP, Developer Advocacy, Couchbase","Est. reading time":"12 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/jboss-eap7-nosql-javaee-docker\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/jboss-eap7-nosql-javaee-docker\/"},"author":{"name":"Arun Gupta, VP, Developer Advocacy, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f"},"headline":"JBoss EAP 7 and NoSQL using Java EE and Docker","datePublished":"2017-01-02T22:18:27+00:00","dateModified":"2025-06-14T01:46:29+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/jboss-eap7-nosql-javaee-docker\/"},"wordCount":949,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/jboss-eap7-nosql-javaee-docker\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["docker","NoSQL Database"],"articleSection":["Couchbase Server"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/jboss-eap7-nosql-javaee-docker\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/jboss-eap7-nosql-javaee-docker\/","url":"https:\/\/www.couchbase.com\/blog\/jboss-eap7-nosql-javaee-docker\/","name":"JBoss EAP 7 and NoSQL using Java EE and Docker - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/jboss-eap7-nosql-javaee-docker\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/jboss-eap7-nosql-javaee-docker\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2017-01-02T22:18:27+00:00","dateModified":"2025-06-14T01:46:29+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/jboss-eap7-nosql-javaee-docker\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/jboss-eap7-nosql-javaee-docker\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/jboss-eap7-nosql-javaee-docker\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/jboss-eap7-nosql-javaee-docker\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"JBoss EAP 7 and NoSQL using Java EE and Docker"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"El blog de Couchbase","description":"Couchbase, la base de datos NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f","name":"Arun Gupta, Vicepresidente, Defensa del Desarrollador, Couchbase","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8900a75409c646948fe0bd80f6240337","url":"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g","caption":"Arun Gupta, VP, Developer Advocacy, Couchbase"},"description":"Arun Gupta es vicepresidente de promoci\u00f3n de desarrolladores en Couchbase. Ha creado y dirigido comunidades de desarrolladores durante m\u00e1s de 10 a\u00f1os en Sun, Oracle y Red Hat. Tiene una gran experiencia en liderar equipos multidisciplinares para desarrollar y ejecutar estrategias, planificar y ejecutar contenidos, campa\u00f1as de marketing y programas. Anteriormente dirigi\u00f3 equipos de ingenier\u00eda en Sun y es miembro fundador del equipo Java EE. Gupta es autor de m\u00e1s de 2.000 entradas de blog sobre tecnolog\u00eda. Tiene una amplia experiencia como conferenciante en m\u00e1s de 40 pa\u00edses sobre innumerables temas y es una JavaOne Rock Star desde hace tres a\u00f1os consecutivos. Gupta tambi\u00e9n fund\u00f3 el cap\u00edtulo Devoxx4Kids en Estados Unidos y sigue promoviendo la educaci\u00f3n tecnol\u00f3gica entre los ni\u00f1os. Autor de varios libros sobre tecnolog\u00eda, \u00e1vido corredor, trotamundos, campe\u00f3n de Java, l\u00edder de JUG, miembro del Dream Team de NetBeans y capit\u00e1n de Docker, es f\u00e1cilmente accesible en @arungupta.","sameAs":["https:\/\/x.com\/arungupta"],"url":"https:\/\/www.couchbase.com\/blog\/es\/author\/arun-gupta\/"}]}},"authors":[{"term_id":8933,"user_id":58,"is_guest":0,"slug":"arun-gupta","display_name":"Arun Gupta, VP, Developer Advocacy, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g","author_category":"","last_name":"Gupta","first_name":"Arun","job_title":"","user_url":"","description":"Arun Gupta es vicepresidente de promoci\u00f3n de desarrolladores en Couchbase. Ha creado y dirigido comunidades de desarrolladores durante m\u00e1s de 10 a\u00f1os en Sun, Oracle y Red Hat. Tiene una gran experiencia en liderar equipos multidisciplinares para desarrollar y ejecutar estrategias, planificar y ejecutar contenidos, campa\u00f1as de marketing y programas. Anteriormente dirigi\u00f3 equipos de ingenier\u00eda en Sun y es miembro fundador del equipo Java EE.\r\n\r\nGupta es autor de m\u00e1s de 2.000 entradas de blog sobre tecnolog\u00eda. Tiene una amplia experiencia como conferenciante en m\u00e1s de 40 pa\u00edses sobre innumerables temas y es una JavaOne Rock Star desde hace tres a\u00f1os consecutivos. Gupta tambi\u00e9n fund\u00f3 el cap\u00edtulo Devoxx4Kids en Estados Unidos y sigue promoviendo la educaci\u00f3n tecnol\u00f3gica entre los ni\u00f1os. Autor de varios libros sobre tecnolog\u00eda, \u00e1vido corredor, trotamundos, campe\u00f3n de Java, l\u00edder de JUG, miembro del Dream Team de NetBeans y capit\u00e1n de Docker, es f\u00e1cilmente accesible en @arungupta."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2054","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/58"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=2054"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2054\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=2054"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=2054"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=2054"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=2054"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}