{"id":440,"date":"2017-01-02T22:18:28","date_gmt":"2017-01-02T22:18:27","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/jboss-eap7-nosql-javaee-docker\/"},"modified":"2017-01-02T22:18:28","modified_gmt":"2017-01-02T22:18:27","slug":"jboss-eap7-nosql-javaee-docker","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/jboss-eap7-nosql-javaee-docker\/","title":{"rendered":"JBoss EAP 7 and NoSQL using Java EE and Docker"},"content":{"rendered":"\n<p>JBoss EAP 7 Beta is now <a href=\"https:\/\/blog.softwhere.org\/2015\/12\/19\/jboss-eap-7-beta-available\/\">released<\/a>, many congratulations to Red Hat and\u00a0particularly to the\u00a0<a href=\"https:\/\/wildfly.org\">WildFly<\/a> team! There are plenty of improvements coming in\u00a0this release as documented in <a href=\"https:\/\/access.redhat.com\/documentation\/en-us\/red_hat_jboss_enterprise_application_platform\/7.0\/html-single\/7.0.0_release_notes\/\">Release Notes<\/a>. One of the\u00a0major themes is Java EE 7 compliance.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">JBoss EAP 7 and Java EE 7<\/h2>\n\n\n\n<p>IBM and Oracle already provide commercially supported\u00a0Java EE 7-compliant Application Servers. And now Red Hat will be joining this party soon as well. Although WildFly has supported Java EE 7 for 2+ years but commercial support is a critical for open source to be adopted enterprise-wide. So this is good news! You can learn all about different <a href=\"https:\/\/dzone.com\/refcardz\/java-enterprise-edition-7\">Java EE 7 APIs in the DZone Refcardz<\/a> that I authored along with <a href=\"https:\/\/twitter.com\/alrubinger\">@alrubinger<\/a>.<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3122\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/Screen-Shot-2017-03-31-at-12.01.20-PM.png\" alt=\"Java EE 7 Refcards\" width=\"1282\" height=\"527\"><\/p>\n\n\n\n<p>\u00a0<\/p>\n\n\n\n<p>There are plenty of &#8220;hello world&#8221;\u00a0<a href=\"https:\/\/github.com\/javaee-samples\/javaee7-samples\/\">Java EE 7 Samples<\/a>\u00a0that should all run with JBoss EAP. Hopefully somebody will update the <code>pom.xml<\/code>\u00a0and add\u00a0a new profile.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why NoSQL?<\/h2>\n\n\n\n<p>If you are building a traditional enterprise application then you might be fine using an RDBMS. There are plenty of advantages of using RDBMS\u00a0but using a\u00a0NoSQL database instead\u00a0has a few advantages:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>No need to have a pre-defined schema and that makes them a <strong>schema-less database<\/strong>. Addition of new properties to existing objects is easy and does not require ALTER TABLE. The <strong>unstructured data<\/strong> gives flexibility to change the format of data any time without downtime or reduced service levels. Also there are no joins happening on the server because there is no structure and thus no relation between them.<\/li>\n\n\n<li><strong>Scalability, agility and performance<\/strong> is more important than the entire set of functionality typically provided by an RDBMS. This set of databases provide eventual consistency and\/or transactions restricted to single items but more focus on CRUD.<\/li>\n\n\n<li>NoSQL\u00a0are designed to <strong>scale-out<\/strong>\u00a0(horizontal) instead of scale-up\u00a0(vertical). This is important knowing that databases, and everything else as well, is moving into the cloud. RBDMS can scale-out using sharding but requires complex management and not for the faint of heart. Queries requiring JOINs across shards is <strong>extremely inefficient<\/strong>.<\/li>\n\n\n<li>RDBMS\u00a0have <strong>impedance mismatch<\/strong> between the database structure and the domain classes. An\u00a0Object Relational Mapping, such as one provided by Java Persistence API or Hibernate is needed in such case.<\/li>\n\n\n<li>NoSQL databases are designed for less management and simpler data models lead to <strong>lower administration cost<\/strong> as well.<\/li>\n\n<\/ul>\n\n\n\n<p>So you are all excited about NoSQL now and want to\u00a0learn more:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.couchbase.com\/nosql-resources\/what-is-no-sql\/\">Why NoSQL?<\/a><\/li>\n\n\n<li><a href=\"https:\/\/info.couchbase.com\/Why_NoSQL_aw.html\">Why do\u00a0successful enterprises rely on NoSQL?<\/a><\/li>\n\n\n<li><a href=\"https:\/\/info.couchbase.com\/15Q1MKTGBlog-TopTenUC0224_15Q1MKTGWebsite-TopTenUC0224.html\">Top 10 Enterprise NoSQL Usecases<\/a><\/li>\n\n<\/ul>\n\n\n\n<p>In short, there are four different types of\u00a0NoSQL databases:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Document<\/strong>: Couchbase, Mongo, and others<\/li>\n\n\n<li><strong>Key\/Value<\/strong>: Couchbase, Redis, and others<\/li>\n\n\n<li><strong>Graph<\/strong>: Neo4J, OrientDB, and others<\/li>\n\n\n<li><strong>Column<\/strong>: Cassandra and others<\/li>\n\n<\/ul>\n\n\n\n<p>Java EE 7 provides Java Persistence API that does not provide any support for NoSQL. So\u00a0how do you get started with NoSQL with JBoss EAP 7? This blog\u00a0will show how to query a Couchbase database\u00a0using simple Java EE application deployed on JBoss EAP 7 Beta.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is Couchbase?<\/h2>\n\n\n\n<p><a href=\"https:\/\/couchbase.org\">Couchbase<\/a> is an open-source, NoSQL, document database. It allows to access, index, and query JSON documents while taking advantage of integrated distributed\u00a0caching for high performance data access. Developers can write applications to Couchbase using different languages (Java, Go, .NET, Node, PHP, Python, C)\u00a0<a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.0\/sdks\/intro.html\">multiple SDKs<\/a>. This blog will show how you can easily create a CRUD application using <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.0\/sdks\/java-2.2\/java-intro.html\">Java SDK for Couchbase.<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Run\u00a0JBoss EAP 7<\/h2>\n\n\n\n<p>There are two ways to start JBoss EAP 7.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Download and\u00a0Run<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Download <a href=\"https:\/\/developers.redhat.com\/products\/eap\/download\/\">JBoss EAP 7 Beta<\/a> and unzip.<\/li>\n\n\n<li>Start the application server as:\n<p><p>[crayon lang=&#8221;default&#8221; decode=&#8221;true&#8221;].\/jboss-eap-7.0\/bin\/standalone.sh<br \/>\n=========================================================================<\/p>\n<p>  JBoss Bootstrap Environment<\/p>\n<p>  JBOSS_HOME: \/Users\/arungupta\/tools\/jboss-eap-7.0<\/p>\n<p>  JAVA: java<\/p>\n<p>  JAVA_OPTS:  -server -verbose:gc -Xloggc:&#8221;\/Users\/arungupta\/tools\/jboss-eap-7.0\/standalone\/log\/gc.log&#8221; -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<\/p>\n<p>=========================================================================<\/p>\n<p>21:22:58,773 INFO  [org.jboss.modules] (main) JBoss Modules version 1.4.4.Final-redhat-1<\/p>\n<p>. . .<\/p>\n<p>21:23:21,441 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0060: Http management interface listening on https:\/\/127.0.0.1:9990\/management<br \/>\n21:23:21,442 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on https:\/\/127.0.0.1:9990<br \/>\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 &#8211; Started 261 of 509 services (332 services are lazy, passive or on-demand)[\/crayon]<\/p>\n<\/p>\n<\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Docker Run<\/h3>\n\n\n\n<p>In a containerized world,\u00a0you just <code>docker run<\/code>\u00a0to run your JBoss EAP. However, JBoss EAP image does not exist on <a href=\"https:\/\/hub.docker.com\">Docker Hub<\/a>\u00a0and so the image needs to be explicitly\u00a0built. You still need to explicitly download JBoss EAP\u00a0and then use the following\u00a0<a href=\"https:\/\/github.com\/arun-gupta\/docker-images\/blob\/master\/jboss-eap\/Dockerfile\">Dockerfile<\/a> to build the image:<\/p>\n\n\n<p>[crayon lang=&#8221;default&#8221; decode=&#8221;true&#8221;]# Use latest jboss\/base-jdk:8 image as the base<br \/>\nFROM jboss\/base-jdk:8<\/p>\n<p># Set the JBOSS_VERSION env variable<br \/>\nENV JBOSS_VERSION 7.0.0.Beta<br \/>\nENV JBOSS_HOME \/opt\/jboss\/jboss-eap-7.0\/<\/p>\n<p>COPY jboss-eap-$JBOSS_VERSION.zip $HOME<\/p>\n<p># Add the JBoss distribution to \/opt, and make jboss the owner of the extracted zip content<br \/>\n# Make sure the distribution is available from a well-known place<br \/>\nRUN cd $HOME<br \/>\n    &amp;&amp; unzip jboss-eap-$JBOSS_VERSION.zip<br \/>\n    &amp;&amp; rm jboss-eap-$JBOSS_VERSION.zip<\/p>\n<p># Ensure signals are forwarded to the JVM process correctly for graceful shutdown<br \/>\nENV LAUNCH_JBOSS_IN_BACKGROUND true<\/p>\n<p># Expose the ports we&#8217;re interested in<br \/>\nEXPOSE 8080 9990<\/p>\n<p># Set the default command to run on boot<br \/>\n# This will boot JBoss EAP in the standalone mode and bind to all interface<br \/>\nCMD [&#8220;\/opt\/jboss\/jboss-eap-7.0\/bin\/standalone.sh&#8221;, &#8220;-b&#8221;, &#8220;0.0.0.0&#8221;, &#8220;-bmanagement&#8221;, &#8220;0.0.0.0&#8221;][\/crayon]<\/p>\n\n\n\n<p>The image is built as:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker build -t arungupta\/jboss-eap:7-beta .<\/code><\/pre>\n\n\n\n<p>And then you can run the JBoss EAP\u00a07 container as:<\/p>\n\n\n<p>[crayon lang=&#8221;default&#8221; decode=&#8221;true&#8221;]docker run -it -p 8080:8080 arungupta\/jboss-eap:7-beta<br \/>\n=========================================================================<\/p>\n<p>  JBoss Bootstrap Environment<\/p>\n<p>  JBOSS_HOME: \/opt\/jboss\/jboss-eap-7.0\/<\/p>\n<p>  JAVA: \/usr\/lib\/jvm\/java\/bin\/java<\/p>\n<p>  JAVA_OPTS:  -server -verbose:gc -Xloggc:&#8221;\/opt\/jboss\/jboss-eap-7.0\/\/standalone\/log\/gc.log&#8221; -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<\/p>\n<p>=========================================================================<\/p>\n<p>20:51:12,551 INFO  [org.jboss.modules] (main) JBoss Modules version 1.4.4.Final-redhat-1<br \/>\n20:51:12,824 INFO  [org.jboss.msc] (main) JBoss MSC version 1.2.6.Final-redhat-1<\/p>\n<p>. . .<\/p>\n<p>20:51:16,750 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0060: Http management interface listening on https:\/\/0.0.0.0:9990\/management<br \/>\n20:51:16,758 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on https:\/\/0.0.0.0:9990<br \/>\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 &#8211; Started 261 of 509 services (332 services are lazy, passive or on-demand)[\/crayon]<\/p>\n\n\n\n<p>Notice, how application and management ports\u00a0are\u00a0bound to all network interfaces. This will simplify to deploy the application to this JBoss EAP instance later. Stop\u00a0the server as\u00a0we will show an easier way to start it later.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Start Application Server and\u00a0Database<\/h2>\n\n\n\n<p>The Java EE application will provide a HTTP CRUD interface over JSON documents stored in Couchbase. The application itself will be deployed on JBoss EAP 7 Beta. So it would require to start Couchbase and JBoss EAP. Use the\u00a0Docker Compose file from\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>\u00a0to start Couchbase and JBoss EAP 7 container:<\/p>\n\n\n<p>[crayon lang=&#8221;default&#8221; decode=&#8221;true&#8221;]mycouchbase:<br \/>\n  container_name: &#8220;db&#8221;<br \/>\n  image: couchbase\/server<br \/>\n  ports:<br \/>\n    &#8211; 8091:8091<br \/>\n    &#8211; 8092:8092<br \/>\n    &#8211; 8093:8093<br \/>\n    &#8211; 11210:11210<br \/>\njboss:<br \/>\n  image: arungupta\/jboss-eap:7-beta<br \/>\n  environment:<br \/>\n    &#8211; COUCHBASE_URI=db<br \/>\n  ports:<br \/>\n    &#8211; 8080:8080<br \/>\n    &#8211; 9990:9990[\/crayon]<\/p>\n\n\n\n<p>The application is started as:<\/p>\n\n\n<p>[crayon lang=&#8221;default&#8221; decode=&#8221;true&#8221;]docker-compose &#8211;x-networking up -d<br \/>\nCreating network &#8220;jbosseap7nosql&#8221; with driver &#8220;None&#8221;<br \/>\nStarting jbosseap7nosql_jboss_1<br \/>\nCreating db[\/crayon]<\/p>\n\n\n\n<p>The started containers can be seen as:<\/p>\n\n\n<p>[crayon lang=&#8221;default&#8221; decode=&#8221;true&#8221;]docker ps<br \/>\nCONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS                                                                                               NAMES<br \/>\n154436dfbfb1        couchbase\/server             &#8220;\/entrypoint.sh couch&#8221;   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<br \/>\ncb76d4e38df3        arungupta\/jboss-eap:7-beta   &#8220;\/opt\/jboss\/jboss-eap&#8221;   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[\/crayon]<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Configure Couchbase Server<\/h2>\n\n\n\n<p>Clone <a href=\"https:\/\/github.com\/arun-gupta\/couchbase-javaee\">couchbase-javaee<\/a> application. This\u00a0Java EE application uses\u00a0<a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/3.x\/developer\/java-2.1\/java-intro.html\">Couchbase Java SDK APIs<\/a> to connect to the Couchbase server. The bootstrap code is:<\/p>\n\n\n<p>[crayon lang=&#8221;default&#8221; decode=&#8221;true&#8221;]CouchbaseCluster.create(System.getenv(&#8220;COUCHBASE_URI&#8221;));[\/crayon]<\/p>\n\n\n\n<p>and is invoked from <a href=\"https:\/\/github.com\/arun-gupta\/couchbase-javaee\/blob\/master\/src\/main\/java\/org\/couchbase\/sample\/javaee\/Database.java#L44\">Database abstraction<\/a>. Couchbase Server\u00a0can be configured using\u00a0<a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.0\/rest-api\/rest-endpoints-all.html\">REST API<\/a>. These REST APIs are defined in a Maven profile in <code>pom.xml<\/code> of this application. And so configure Couchbase server as:<\/p>\n\n\n<p>[crayon lang=&#8221;default&#8221; decode=&#8221;true&#8221;]mvn install -Pcouchbase -Ddocker.host=$(docker-machine ip couchbase)<br \/>\n[INFO] Scanning for projects&#8230;<br \/>\n[INFO]<br \/>\n[INFO] &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n[INFO] Building couchbase-javaee 1.0-SNAPSHOT<br \/>\n[INFO] &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n[INFO]<br \/>\n[INFO] &#8212; maven-resources-plugin:2.6:resources (default-resources) @ couchbase-javaee &#8212;<br \/>\n[INFO] Using &#8216;UTF-8&#8217; encoding to copy filtered resources.<br \/>\n[INFO] Copying 0 resource<br \/>\n[INFO]<br \/>\n[INFO] &#8212; maven-compiler-plugin:2.3.2:compile (default-compile) @ couchbase-javaee &#8212;<br \/>\n[INFO] Nothing to compile &#8211; all classes are up to date<br \/>\n[INFO]<br \/>\n[INFO] &#8212; maven-resources-plugin:2.6:testResources (default-testResources) @ couchbase-javaee &#8212;<br \/>\n[INFO] Using &#8216;UTF-8&#8217; encoding to copy filtered resources.<br \/>\n[INFO] skip non existing resourceDirectory \/Users\/arungupta\/workspaces\/couchbase-javaee\/src\/test\/resources<br \/>\n[INFO]<br \/>\n[INFO] &#8212; maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ couchbase-javaee &#8212;<br \/>\n[INFO] Nothing to compile &#8211; all classes are up to date<br \/>\n[INFO]<br \/>\n[INFO] &#8212; maven-surefire-plugin:2.12.4:test (default-test) @ couchbase-javaee &#8212;<br \/>\n[INFO]<br \/>\n[INFO] &#8212; maven-war-plugin:2.1.1:war (default-war) @ couchbase-javaee &#8212;<br \/>\n[INFO] Packaging webapp<br \/>\n[INFO] Assembling webapp [couchbase-javaee] in [\/Users\/arungupta\/workspaces\/couchbase-javaee\/target\/couchbase-javaee]<br \/>\n[INFO] Processing war project<br \/>\n[INFO] Copying webapp resources [\/Users\/arungupta\/workspaces\/couchbase-javaee\/src\/main\/webapp]<br \/>\n[INFO] Webapp assembled in [82 msecs]<br \/>\n[INFO] Building war: \/Users\/arungupta\/workspaces\/couchbase-javaee\/target\/couchbase-javaee.war<br \/>\n[INFO]<br \/>\n[INFO] &#8212; maven-install-plugin:2.4:install (default-install) @ couchbase-javaee &#8212;<br \/>\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<br \/>\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<br \/>\n[INFO]<br \/>\n[INFO] &#8212; exec-maven-plugin:1.4.0:exec (Configure memory) @ couchbase-javaee &#8212;<br \/>\n* Hostname was NOT found in DNS cache<br \/>\n*   Trying 192.168.99.102&#8230;<br \/>\n  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current<br \/>\n                                 Dload  Upload   Total   Spent    Left  Speed<br \/>\n  0     0    0     0    0     0      0      0 &#8211;:&#8211;:&#8211; &#8211;:&#8211;:&#8211; &#8211;:&#8211;:&#8211;     0* Connected to 192.168.99.102 (192.168.99.102) port 8091 (#0)<br \/>\n&gt; POST \/pools\/default HTTP\/1.1<br \/>\n&gt; User-Agent: curl\/7.37.1<br \/>\n&gt; Host: 192.168.99.102:8091<br \/>\n&gt; Accept: *\/*<br \/>\n&gt; Content-Length: 36<br \/>\n&gt; Content-Type: application\/x-www-form-urlencoded<br \/>\n&gt;<br \/>\n} [data not shown]<br \/>\n* upload completely sent off: 36 out of 36 bytes<br \/>\n&lt; HTTP\/1.1 200 OK<br \/>\n* Server Couchbase Server is not blacklisted<br \/>\n&lt; Server: Couchbase Server<br \/>\n&lt; Pragma: no-cache<br \/>\n&lt; Date: Mon, 21 Dec 2015 21:35:10 GMT<br \/>\n&lt; Content-Length: 0<br \/>\n&lt; Cache-Control: no-cache<br \/>\n&lt; 100 36 0 0 100 36 0 15510 &#8211;:&#8211;:&#8211; &#8211;:&#8211;:&#8211; &#8211;:&#8211;:&#8211; 18000 * Connection #0 to host 192.168.99.102 left intact [INFO] [INFO] &#8212; exec-maven-plugin:1.4.0:exec (Configure services) @ couchbase-javaee &#8212; * Hostname was NOT found in DNS cache * Trying 192.168.99.102&#8230; % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 &#8211;:&#8211;:&#8211; &#8211;:&#8211;:&#8211; &#8211;:&#8211;:&#8211; 0* Connected to 192.168.99.102 (192.168.99.102) port 8091 (#0) &gt; POST \/node\/controller\/setupServices HTTP\/1.1<br \/>\n&gt; User-Agent: curl\/7.37.1<br \/>\n&gt; Host: 192.168.99.102:8091<br \/>\n&gt; Accept: *\/*<br \/>\n&gt; Content-Length: 26<br \/>\n&gt; Content-Type: application\/x-www-form-urlencoded<br \/>\n&gt;<br \/>\n} [data not shown]<br \/>\n* upload completely sent off: 26 out of 26 bytes<br \/>\n&lt; HTTP\/1.1 200 OK<br \/>\n* Server Couchbase Server is not blacklisted<br \/>\n&lt; Server: Couchbase Server<br \/>\n&lt; Pragma: no-cache<br \/>\n&lt; Date: Mon, 21 Dec 2015 21:35:10 GMT<br \/>\n&lt; Content-Length: 0<br \/>\n&lt; Cache-Control: no-cache<br \/>\n&lt; 100 26 0 0 100 26 0 9976 &#8211;:&#8211;:&#8211; &#8211;:&#8211;:&#8211; &#8211;:&#8211;:&#8211; 13000 * Connection #0 to host 192.168.99.102 left intact [INFO] [INFO] &#8212; exec-maven-plugin:1.4.0:exec (Setup credentials) @ couchbase-javaee &#8212; * Hostname was NOT found in DNS cache * Trying 192.168.99.102&#8230; % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 &#8211;:&#8211;:&#8211; &#8211;:&#8211;:&#8211; &#8211;:&#8211;:&#8211; 0* Connected to 192.168.99.102 (192.168.99.102) port 8091 (#0) &gt; POST \/settings\/web HTTP\/1.1<br \/>\n&gt; User-Agent: curl\/7.37.1<br \/>\n&gt; Host: 192.168.99.102:8091<br \/>\n&gt; Accept: *\/*<br \/>\n&gt; Content-Length: 50<br \/>\n&gt; Content-Type: application\/x-www-form-urlencoded<br \/>\n&gt;<br \/>\n} [data not shown]<br \/>\n* upload completely sent off: 50 out of 50 bytes<br \/>\n&lt; HTTP\/1.1 200 OK<br \/>\n* Server Couchbase Server is not blacklisted<br \/>\n&lt; Server: Couchbase Server<br \/>\n&lt; Pragma: no-cache<br \/>\n&lt; Date: Mon, 21 Dec 2015 21:35:10 GMT<br \/>\n&lt; Content-Type: application\/json<br \/>\n&lt; Content-Length: 44<br \/>\n&lt; Cache-Control: no-cache<br \/>\n&lt; { [data not shown] 100 94 100 44 100 50 6880 7818 &#8211;:&#8211;:&#8211; &#8211;:&#8211;:&#8211; &#8211;:&#8211;:&#8211; 8333 * Connection #0 to host 192.168.99.102 left intact {&#8220;newBaseUri&#8221;:&#8221;https:\/\/192.168.99.102:8091\/&#8221;}[INFO] [INFO] &#8212; exec-maven-plugin:1.4.0:exec (Install travel-sample bucket) @ couchbase-javaee &#8212; * Hostname was NOT found in DNS cache * Trying 192.168.99.102&#8230; % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 &#8211;:&#8211;:&#8211; &#8211;:&#8211;:&#8211; &#8211;:&#8211;:&#8211; 0* Connected to 192.168.99.102 (192.168.99.102) port 8091 (#0) * Server auth using Basic with user &#8216;Administrator&#8217; &gt; POST \/sampleBuckets\/install HTTP\/1.1<br \/>\n&gt; Authorization: Basic QWRtaW5pc3RyYXRvcjpwYXNzd29yZA==<br \/>\n&gt; User-Agent: curl\/7.37.1<br \/>\n&gt; Host: 192.168.99.102:8091<br \/>\n&gt; Accept: *\/*<br \/>\n&gt; Content-Length: 17<br \/>\n&gt; Content-Type: application\/x-www-form-urlencoded<br \/>\n&gt;<br \/>\n} [data not shown]<br \/>\n* upload completely sent off: 17 out of 17 bytes<br \/>\n&lt; HTTP\/1.1 202 Accepted<br \/>\n* Server Couchbase Server is not blacklisted<br \/>\n&lt; Server: Couchbase Server<br \/>\n&lt; Pragma: no-cache<br \/>\n&lt; Date: Mon, 21 Dec 2015 21:35:11 GMT<br \/>\n&lt; Content-Type: application\/json<br \/>\n&lt; Content-Length: 2<br \/>\n&lt; Cache-Control: no-cache<br \/>\n&lt;<br \/>\n{ [data not shown]<br \/>\n100    19  100     2  100    17     41    355 &#8211;:&#8211;:&#8211; &#8211;:&#8211;:&#8211; &#8211;:&#8211;:&#8211;   361<br \/>\n* Connection #0 to host 192.168.99.102 left intact<br \/>\n[][INFO] &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n[INFO] BUILD SUCCESS<br \/>\n[INFO] &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n[INFO] Total time: 2.094 s<br \/>\n[INFO] Finished at: 2015-12-21T13:35:11-08:00<br \/>\n[INFO] Final Memory: 13M\/309M<br \/>\n[INFO] &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;[\/crayon]<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Deploy Java EE Application to JBoss<\/h2>\n\n\n\n<p>Java EE\u00a0Application can be easily deployed to JBoss EAP 7 Beta using the <a href=\"https:\/\/docs.jboss.org\/wildfly\/plugins\/maven\/latest\/\">WildFly Maven Plugin.<\/a>\u00a0This is also defined\u00a0as a Maven profile in <code>pom.xml<\/code> as well. Deploy\u00a0the application as:<\/p>\n\n\n<p>[crayon lang=&#8221;default&#8221; decode=&#8221;true&#8221;]mvn install -Pwildfly -Dwildfly.hostname=$(docker-machine ip couchbase) -Dwildfly.username=admin -Dwildfly.password=Admin#007<br \/>\n[INFO] Scanning for projects&#8230;<br \/>\n[INFO]<br \/>\n[INFO] &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n[INFO] Building couchbase-javaee 1.0-SNAPSHOT<br \/>\n[INFO] &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n[INFO]<br \/>\n[INFO] &#8212; maven-resources-plugin:2.6:resources (default-resources) @ couchbase-javaee &#8212;<br \/>\n[INFO] Using &#8216;UTF-8&#8217; encoding to copy filtered resources.<br \/>\n[INFO] Copying 0 resource<br \/>\n[INFO]<br \/>\n[INFO] &#8212; maven-compiler-plugin:2.3.2:compile (default-compile) @ couchbase-javaee &#8212;<br \/>\n[INFO] Nothing to compile &#8211; all classes are up to date<br \/>\n[INFO]<br \/>\n[INFO] &#8212; maven-resources-plugin:2.6:testResources (default-testResources) @ couchbase-javaee &#8212;<br \/>\n[INFO] Using &#8216;UTF-8&#8217; encoding to copy filtered resources.<br \/>\n[INFO] skip non existing resourceDirectory \/Users\/arungupta\/workspaces\/couchbase-javaee\/src\/test\/resources<br \/>\n[INFO]<br \/>\n[INFO] &#8212; maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ couchbase-javaee &#8212;<br \/>\n[INFO] Nothing to compile &#8211; all classes are up to date<br \/>\n[INFO]<br \/>\n[INFO] &#8212; maven-surefire-plugin:2.12.4:test (default-test) @ couchbase-javaee &#8212;<br \/>\n[INFO]<br \/>\n[INFO] &#8212; maven-war-plugin:2.1.1:war (default-war) @ couchbase-javaee &#8212;<br \/>\n[INFO] Packaging webapp<br \/>\n[INFO] Assembling webapp [couchbase-javaee] in [\/Users\/arungupta\/workspaces\/couchbase-javaee\/target\/couchbase-javaee]<br \/>\n[INFO] Processing war project<br \/>\n[INFO] Copying webapp resources [\/Users\/arungupta\/workspaces\/couchbase-javaee\/src\/main\/webapp]<br \/>\n[INFO] Webapp assembled in [62 msecs]<br \/>\n[INFO] Building war: \/Users\/arungupta\/workspaces\/couchbase-javaee\/target\/couchbase-javaee.war<br \/>\n[INFO]<br \/>\n[INFO] &#8212; maven-install-plugin:2.4:install (default-install) @ couchbase-javaee &#8212;<br \/>\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<br \/>\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<br \/>\n[INFO]<br \/>\n[INFO] &gt;&gt;&gt; wildfly-maven-plugin:1.1.0.Alpha4:deploy (default) &gt; package @ couchbase-javaee &gt;&gt;&gt;<br \/>\n[INFO]<br \/>\n[INFO] &#8212; maven-resources-plugin:2.6:resources (default-resources) @ couchbase-javaee &#8212;<br \/>\n[INFO] Using &#8216;UTF-8&#8217; encoding to copy filtered resources.<br \/>\n[INFO] Copying 0 resource<br \/>\n[INFO]<br \/>\n[INFO] &#8212; maven-compiler-plugin:2.3.2:compile (default-compile) @ couchbase-javaee &#8212;<br \/>\n[INFO] Nothing to compile &#8211; all classes are up to date<br \/>\n[INFO]<br \/>\n[INFO] &#8212; maven-resources-plugin:2.6:testResources (default-testResources) @ couchbase-javaee &#8212;<br \/>\n[INFO] Using &#8216;UTF-8&#8217; encoding to copy filtered resources.<br \/>\n[INFO] skip non existing resourceDirectory \/Users\/arungupta\/workspaces\/couchbase-javaee\/src\/test\/resources<br \/>\n[INFO]<br \/>\n[INFO] &#8212; maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ couchbase-javaee &#8212;<br \/>\n[INFO] Nothing to compile &#8211; all classes are up to date<br \/>\n[INFO]<br \/>\n[INFO] &#8212; maven-surefire-plugin:2.12.4:test (default-test) @ couchbase-javaee &#8212;<br \/>\n[INFO] Skipping execution of surefire because it has already been run for this configuration<br \/>\n[INFO]<br \/>\n[INFO] &#8212; maven-war-plugin:2.1.1:war (default-war) @ couchbase-javaee &#8212;<br \/>\n[INFO] Packaging webapp<br \/>\n[INFO] Assembling webapp [couchbase-javaee] in [\/Users\/arungupta\/workspaces\/couchbase-javaee\/target\/couchbase-javaee]<br \/>\n[INFO] Processing war project<br \/>\n[INFO] Copying webapp resources [\/Users\/arungupta\/workspaces\/couchbase-javaee\/src\/main\/webapp]<br \/>\n[INFO] Webapp assembled in [20 msecs]<br \/>\n[INFO] Building war: \/Users\/arungupta\/workspaces\/couchbase-javaee\/target\/couchbase-javaee.war<br \/>\n[INFO]<br \/>\n[INFO] &lt;&lt;&lt; wildfly-maven-plugin:1.1.0.Alpha4:deploy (default) &lt; package @ couchbase-javaee &lt;&lt;&lt;<br \/>\n[INFO]<br \/>\n[INFO] &#8212; wildfly-maven-plugin:1.1.0.Alpha4:deploy (default) @ couchbase-javaee &#8212;<br \/>\nDec 21, 2015 1:43:34 PM org.xnio.Xnio<br \/>\nINFO: XNIO version 3.3.1.Final<br \/>\nDec 21, 2015 1:43:34 PM org.xnio.nio.NioXnio<br \/>\nINFO: XNIO NIO Implementation Version 3.3.1.Final<br \/>\nDec 21, 2015 1:43:34 PM org.jboss.remoting3.EndpointImpl<br \/>\nINFO: JBoss Remoting version 4.0.9.Final<br \/>\n[INFO] Authenticating against security realm: ManagementRealm<br \/>\n[INFO] &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n[INFO] BUILD SUCCESS<br \/>\n[INFO] &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n[INFO] Total time: 17.010 s<br \/>\n[INFO] Finished at: 2015-12-21T13:43:48-08:00<br \/>\n[INFO] Final Memory: 17M\/217M<br \/>\n[INFO] &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;[\/crayon]<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Access the Application<\/h2>\n\n\n\n<p>As mentioned earlier, the application provides HTTP CRUD API over JSON documents stored in Couchbase. Access the application as:<\/p>\n\n\n<p>[crayon lang=&#8221;default&#8221; decode=&#8221;true&#8221;]curl -v https:\/\/$(docker-machine ip couchbase):8080\/couchbase-javaee\/resources\/airline<br \/>\n* Hostname was NOT found in DNS cache<br \/>\n*   Trying 192.168.99.102&#8230;<br \/>\n* Connected to 192.168.99.102 (192.168.99.102) port 8080 (#0)<br \/>\n&gt; GET \/couchbase-javaee\/resources\/airline HTTP\/1.1<br \/>\n&gt; User-Agent: curl\/7.37.1<br \/>\n&gt; Host: 192.168.99.102:8080<br \/>\n&gt; Accept: *\/*<br \/>\n&gt;<br \/>\n&lt; HTTP\/1.1 200 OK<br \/>\n&lt; Connection: keep-alive<br \/>\n&lt; X-Powered-By: Undertow\/1<br \/>\n* Server JBoss-EAP\/7 is not blacklisted<br \/>\n&lt; Server: JBoss-EAP\/7<br \/>\n&lt; Content-Type: application\/octet-stream<br \/>\n&lt; Content-Length: 1402<br \/>\n&lt; Date: Mon, 21 Dec 2015 21:45:40 GMT<br \/>\n&lt;<br \/>\n* Connection #0 to host 192.168.99.102 left intact<br \/>\n[{&#8220;travel-sample&#8221;:{&#8220;country&#8221;:&#8221;United States&#8221;,&#8221;iata&#8221;:&#8221;Q5&#8243;,&#8221;callsign&#8221;:&#8221;MILE-AIR&#8221;,&#8221;name&#8221;:&#8221;40-Mile Air&#8221;,&#8221;icao&#8221;:&#8221;MLA&#8221;,&#8221;id&#8221;:10,&#8221;type&#8221;:&#8221;airline&#8221;}}, {&#8220;travel-sample&#8221;:{&#8220;country&#8221;:&#8221;United States&#8221;,&#8221;iata&#8221;:&#8221;TQ&#8221;,&#8221;callsign&#8221;:&#8221;TXW&#8221;,&#8221;name&#8221;:&#8221;Texas Wings&#8221;,&#8221;icao&#8221;:&#8221;TXW&#8221;,&#8221;id&#8221;:10123,&#8221;type&#8221;:&#8221;airline&#8221;}}, {&#8220;travel-sample&#8221;:{&#8220;country&#8221;:&#8221;United States&#8221;,&#8221;iata&#8221;:&#8221;A1&#8243;,&#8221;callsign&#8221;:&#8221;atifly&#8221;,&#8221;name&#8221;:&#8221;Atifly&#8221;,&#8221;icao&#8221;:&#8221;A1F&#8221;,&#8221;id&#8221;:10226,&#8221;type&#8221;:&#8221;airline&#8221;}}, {&#8220;travel-sample&#8221;:{&#8220;country&#8221;:&#8221;United Kingdom&#8221;,&#8221;iata&#8221;:null,&#8221;callsign&#8221;:null,&#8221;name&#8221;:&#8221;Jc royal.britannica&#8221;,&#8221;icao&#8221;:&#8221;JRB&#8221;,&#8221;id&#8221;:10642,&#8221;type&#8221;:&#8221;airline&#8221;}}, {&#8220;travel-sample&#8221;:{&#8220;country&#8221;:&#8221;United States&#8221;,&#8221;iata&#8221;:&#8221;ZQ&#8221;,&#8221;callsign&#8221;:&#8221;LOCAIR&#8221;,&#8221;name&#8221;:&#8221;Locair&#8221;,&#8221;icao&#8221;:&#8221;LOC&#8221;,&#8221;id&#8221;:10748,&#8221;type&#8221;:&#8221;airline&#8221;}}, {&#8220;travel-sample&#8221;:{&#8220;country&#8221;:&#8221;United States&#8221;,&#8221;iata&#8221;:&#8221;K5&#8243;,&#8221;callsign&#8221;:&#8221;SASQUATCH&#8221;,&#8221;name&#8221;:&#8221;SeaPort Airlines&#8221;,&#8221;icao&#8221;:&#8221;SQH&#8221;,&#8221;id&#8221;:10765,&#8221;type&#8221;:&#8221;airline&#8221;}}, {&#8220;travel-sample&#8221;:{&#8220;country&#8221;:&#8221;United States&#8221;,&#8221;iata&#8221;:&#8221;KO&#8221;,&#8221;callsign&#8221;:&#8221;ACE AIR&#8221;,&#8221;name&#8221;:&#8221;Alaska Central Express&#8221;,&#8221;icao&#8221;:&#8221;AER&#8221;,&#8221;id&#8221;:109,&#8221;type&#8221;:&#8221;airline&#8221;}}, {&#8220;travel-sample&#8221;:{&#8220;country&#8221;:&#8221;United Kingdom&#8221;,&#8221;iata&#8221;:&#8221;5W&#8221;,&#8221;callsign&#8221;:&#8221;FLYSTAR&#8221;,&#8221;name&#8221;:&#8221;Astraeus&#8221;,&#8221;icao&#8221;:&#8221;AEU&#8221;,&#8221;id&#8221;:112,&#8221;type&#8221;:&#8221;airline&#8221;}}, {&#8220;travel-sample&#8221;:{&#8220;country&#8221;:&#8221;France&#8221;,&#8221;iata&#8221;:&#8221;UU&#8221;,&#8221;callsign&#8221;:&#8221;REUNION&#8221;,&#8221;name&#8221;:&#8221;Air Austral&#8221;,&#8221;icao&#8221;:&#8221;REU&#8221;,&#8221;id&#8221;:1191,&#8221;type&#8221;:&#8221;airline&#8221;}}, {&#8220;travel-sample&#8221;:{&#8220;country&#8221;:&#8221;France&#8221;,&#8221;iata&#8221;:&#8221;A5&#8243;,&#8221;callsign&#8221;:&#8221;AIRLINAIR&#8221;,&#8221;name&#8221;:&#8221;Airlinair&#8221;,&#8221;icao&#8221;:&#8221;RLA&#8221;,&#8221;id&#8221;:1203,&#8221;type&#8221;:&#8221;airline&#8221;}}][\/crayon]<\/p>\n\n\n\n<p>CRUD operations (GET, POST, PUT, DELETE) can be performed on Airline resource in the application. Complete\u00a0CRUD API is documented at\u00a0<a href=\"https:\/\/github.com\/arun-gupta\/couchbase-javaee\">github.com\/arun-gupta\/couchbase-javaee<\/a>. This blog\u00a0explained how to\u00a0access a NoSQL\u00a0database from JBoss EAP 7. Read more about Couchbase 4:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.1\/introduction\/whats-new.html\">What\u2019s New in Couchbase Server 4.1<\/a><\/li>\n\n\n<li><a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.1\/introduction\/intro.html\">Couchbase Server documentation<\/a><\/li>\n\n\n<li>Talk to us on <a href=\"https:\/\/www.couchbase.com\/forums\/\">Couchbase Forums<\/a><\/li>\n\n\n<li>Follow <a href=\"https:\/\/twitter.com\/couchbasedev\/\">@couchbasedev<\/a> or <a href=\"https:\/\/twitter.com\/couchbase\/\">@couchbase<\/a><\/li>\n\n<\/ul>\n\n\n\n<p>Learn more about Couchbase in this recent developer-focused webinar:<\/p>\n","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 7 and Java EE 7 IBM and Oracle already provide commercially supported\u00a0Java EE 7-compliant Application [&hellip;]<\/p>\n","protected":false},"author":58,"featured_media":18,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[54],"tags":[149,6],"ppma_author":[126],"class_list":["post-440","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","tag-docker","tag-nosql-database"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.6 (Yoast SEO v27.6) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\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\/pt\/jboss-eap7-nosql-javaee-docker\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\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 7 and Java EE 7 IBM and Oracle already provide commercially supported\u00a0Java EE 7-compliant Application [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/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=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/couchbase-nosql-dbaas.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1800\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\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\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/jboss-eap7-nosql-javaee-docker\\\/\"},\"wordCount\":2950,\"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\\\/5\\\/2026\\\/05\\\/couchbase-nosql-dbaas.png\",\"keywords\":[\"docker\",\"NoSQL Database\"],\"articleSection\":[\"Couchbase Server\"],\"inLanguage\":\"pt-BR\",\"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\\\/5\\\/2026\\\/05\\\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2017-01-02T22:18:27+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/jboss-eap7-nosql-javaee-docker\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/jboss-eap7-nosql-javaee-docker\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/jboss-eap7-nosql-javaee-docker\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/05\\\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/05\\\/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\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/06\\\/logo.svg\",\"contentUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/06\\\/logo.svg\",\"width\":\"1024\",\"height\":\"1024\",\"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\":\"pt-BR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g8900a75409c646948fe0bd80f6240337\",\"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\\\/pt\\\/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\/pt\/jboss-eap7-nosql-javaee-docker\/","og_locale":"pt_BR","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 7 and Java EE 7 IBM and Oracle already provide commercially supported\u00a0Java EE 7-compliant Application [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/jboss-eap7-nosql-javaee-docker\/","og_site_name":"The Couchbase Blog","article_published_time":"2017-01-02T22:18:27+00:00","og_image":[{"width":1800,"height":630,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/couchbase-nosql-dbaas.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","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/jboss-eap7-nosql-javaee-docker\/"},"wordCount":2950,"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\/5\/2026\/05\/couchbase-nosql-dbaas.png","keywords":["docker","NoSQL Database"],"articleSection":["Couchbase Server"],"inLanguage":"pt-BR","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\/5\/2026\/05\/couchbase-nosql-dbaas.png","datePublished":"2017-01-02T22:18:27+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/jboss-eap7-nosql-javaee-docker\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/jboss-eap7-nosql-javaee-docker\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/jboss-eap7-nosql-javaee-docker\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/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":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"The Couchbase Blog","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/06\/logo.svg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/06\/logo.svg","width":"1024","height":"1024","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":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g8900a75409c646948fe0bd80f6240337","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\/pt\/author\/arun-gupta\/"}]}},"acf":[],"authors":[{"term_id":126,"user_id":58,"is_guest":0,"slug":"arun-gupta","display_name":"Arun Gupta, VP, Developer Advocacy, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/440","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/58"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=440"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/440\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/18"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=440"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=440"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=440"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=440"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}