新建并部署Java EE 7应用

jopen 8年前


7.新建并部署Java EE 7应用

现在你应该学了很多镜像、容器以及将他们连接在一起的东西,是时候学习不同的部署选项了。让我们从Java EE 7 sample applications开始。 Java EE 7 sample applications是一个很普通的Java EE 7应用案例,也是一个绝好的学习开始。

7.1新建应用

我们需要先新建应用。

1. 克隆仓库

git clone

from Internet

https://github.com/javaee-samp ... e.git

From Instructor

git clone dockeradmin@classroom.exampl e.com:10080/root/javaee7-simple-sample.git" kesrc=">dockeradmin@classroom.exampl e.com:10080/root/javaee7-simple-sample.git" data-ke-src=">dockeradmin@classroom.exampl</a> e.com:10080/root/javaee7-simple-sample.git" rel="nofollow" target="_blank">http://root:dockeradmin%40clas ... e.git

2. 新建应用

cd javaee7-simple-sample/

#From Internet

mvn clean package

#From Instructor

curl http://classroom.example.com:8 ... s.xml -o settings.xml

mvn -s settings.xml clean package

7.2启动应用服务器

新建文件夹,放置部署并且给写权限

mkdir deployments

chmod a+w deployments

启动WildFly 服务器:

From Internet

docker run --name wildfly -d -p 8080:8080 -vpwd/deployments:/opt/jboss/wildfly/standalone/deployments/:rw jboss/wildfly

From Instructor

docker run --name wildfly -d -p 8080:8080 -vpwd/deployments:/opt/jboss/wildfly/standalone/deployments/:rw classroom.example.com:5000/wildfly

注意:Windows用户需要做下小调整,要复制部署到“c:/Users/<USER>/deployments ”,因为boot2docker 的路径映射在Windows上不一样。请输入如下的参数命令:

'docker run --name wildfly -d -p 8080:8080 -v /c/Users/meisele/deployments:/opt/jboss/wildfly/standalone/deployments/:rw [classroom.example.com:5000|jboss]/wildfly'

这个命令会启动一个名叫” wildfly”的容器。

-v参数会映射一条从主机到容器的参数。这将会是放置部署的路径。rw参数保证了Docker容器能往里面写东西。

检查日志,确认服务器启动了。

docker logs -f wildfly

在浏览器里访问 http://dockerhost:8080 确认实例正在运行。

现在部署应用的准备工作做好了。

7.3配置JBoss Developer Studio

启动JBoss Developer Studio

1. 选择’Servers’按钮,新建server adapter

新建并部署Java EE 7应用

图10:Server Adapter

2. 分配已存在的或新建一个WildFly 9.0.0 runtime (修改过的属性已高亮。)

新建并部署Java EE 7应用

图11:WildFly Runtime属性

3. 如果需要创建新的runtime,请选择WildFly 9.0.1的路径:

新建并部署Java EE 7应用

图12: WildFly 9.0.1.Final Runtime

点击’finish’按钮。

4. 双击选择的server配置server属性

新建并部署Java EE 7应用

图13:Server属性

主机名指定为’dockerhost’。左边两个圆圈里的属性自动从以前的会话继承。右边两个圆圈里的属性必须取消以保证deployment scanner和server的一致性。

5. 在server编辑器的部署页面指定一个自定义的部署路径

新建并部署Java EE 7应用

图14:自定义的部署路径

6. 右键新创建的server adapter并点击’start’

新建并部署Java EE 7应用

图15:启动server

7.4使用共享卷部署应用

1.使用Import → Existing Maven Projects导入javaee7-simple-sample应用的源码

2.右键这个项目,选择’ Run on Server’并选择之前创建的server。

这个项目会运行起来并展示应用的启动页面

新建并部署Java EE 7应用

图16:启动server

恭喜!

你已经在JBoss Developer Studio部署了第一个跑在Docker容器上的应用WildFly。

停止WildFly容器的命令:

docker stop wildfly

7.5使用CLI部署应用

命令行接口(CLI)是一个连接实例的工具,它能从命令行环境管理所有的任务。你能使用CLI管理的任务如下:

1. 在standalone/Domain模式下部署/卸载web应用。

2. 在runtime上查看所有部署的应用的信息。

3. 在Standalone/Domain模式下启动、停止以及重启节点。

4. 添加/删除子系统到server上。

现在我们使用CLI来部署运行在Docker容器环境的javaee7-simple-sample到WildFly上。

1. CLI需要本地安装,成为WildFly的一部分,在之前下载WildFly的时候应该有提供。解压缩你的下载包到一个目录(例如:/Users /<USER>/tools/)。系统会创建一个wildfly-9.0.0.Final的文件夹。这个文件夹的路径会被变 量$WIDLFY_HOME引用。确保增加/Users/<USER>/tools/wildfly-9.0.0.Final/bin到你 的$path环境变量。

2. 以固定的端口映射运行“wildfly-management”镜像,如4.5.2固定端口映射(这里应该是一个超链接)描述的那样。

3. 运行jboss-cli命令连接到WildFly实例。

启动WildFly server如下:

From Internet

docker run --name wildfly-managed -d -p 8080:8080 -p 9990:9990 rafabene/wildfly-admin

From Instructor

docker run --name wildfly-managed -d -p 8080:8080 -p 9990:9990 classroom.example.com:5000/wildfly-management

如下命令会启动一个叫做” wildfly-managed”的容器

jboss-cli.sh --controller=dockerhost:9990 -u=admin -p=docker#admin -c

如下命令展示输出结果

[standalone@dockerhost:9990 /]

部署应用如下:

deploy <javaee7-simple-sample PATH>target/javaee7-simple-sample-1.10.war --force

现在你已经成功的使用CLI远程部署运行在docker容器环境的javaee7-simple-sample到WildFly上面。

7.6使用web控制台部署应用

WildFly有个基于web的管理控制台。它和JBoss Developer Tools以及CLI依赖的是同一套API。这个web控制台提供了一种方便易用的方式来管理WildFly实例。对于一个docker容器,它需要被明 确激活,正如 4.5Enabling WildFly Administration(这里应该是一个超链接)里描述的那样。一旦激活,它就能通过 http://dockerhost:9990 被访问。

新建并部署Java EE 7应用

图17:WildFly web控制台

用户名和密码信息在图5里展示。

注意:你或许想停止并删除在WildFly里运行的容器。这条命令可以做到:docker ps -a | grep wildfly | awk '{print $1}' | xargs docker rm –f

启动一个新的容器的命令为:docker run -d --name wildfly -p 8080:8080 -p 9990:9990 classroom.example.com:5000/wildfly-management

使用web控制台部署应用的步骤如下:

1.进入’Deployments’页面

新建并部署Java EE 7应用

图18:Deployments页面

2.点击’Add’按钮。

3.在’ Add Deployment’页面,按照缺省设置,点击’Next’。

4.点击’ Choose File’,选择你电脑上的

<javaee7-simple-sample PATH>/javaee7-simple-sample.war文件,这个文件是在7.1Build Application章配置的。

5.点击’Next’。

6.选择’Enable’方框

新建并部署Java EE 7应用

图19:启用部署

7.点击’Finish’

新建并部署Java EE 7应用

图20:Java EE 7 Simple Sample部署

已经完成Java EE 7 的应用部署,结果能够在 http://dockerhost:8080/javaee7-simple-sample 里面看到

新建并部署Java EE 7应用

图21:Java EE 7 Simple Sample的输出结果

7.7使用API部署应用

一个独立的WildFly进程,能通过“本地管理接口”配置来监听远程的管理请求。应用服务器自带的CLI工具能使用这些接口,用户也能开发自定 义的客户端来使用这些接口。默认的,WildFly管理接口监听127.0.0.1.当在一个Docker容器里运行的时候,网络接口应该跟公共的地址绑 定。这能通过绑定0.0.0.0而不是127.0.0.1来做出改变。

1.启动另一个WildFly实例:

From Internet

docker run -d --name wildfly -p 8080:8080 -p 9990:9990 rafabene/wildfly-admin

From Instructor

docker run -d --name wildfly -p 8080:8080 -p 9990:9990 classroom.example.com:5000/wildfly-management

除了应用端口8080,管理端口9990也是可用的。WildFly镜像调整启动脚本,将管理端口绑定到了0.0.0.0。

2.在JBoss Developer Studio里创建一个新的server适配器,取名为 “WildFly 9.0.0-Management”,指定主机名为’dockerhost’。

3.点击’Next’修改下图中所示的值

新建并部署Java EE 7应用

图22:创建server适配器

4.按照’ Remote System Integration’页面的缺省设置,点击’Finish’

5.双击新建的server适配器,修改server的属性。指定管理账号的用户名和密码。注意:需要删除已经存在的密码,见如下图:

新建并部署Java EE 7应用

图23:管理登录账号

6.右键新建的server适配器并点击’Start’,状态会改变成’Started’状态

新建并部署Java EE 7应用

图24:同步WildFly Server

7.右键javaee7-simple-sample项目,选择’Run on Server’并选择这个server。这个项目会运行起来并展示启动页面。

8.当结束的时候停止WildFly

docker stop wildfly

新建并部署Java EE 7应用