我经常开发示例应用程序。 我尝试了一些想法,运用了一些技巧,并通过示例应用程序与同事和博客读者分享了我的调查结果。 当某人想要了解该技术的实现方式时,他们只需查看源代码,就足以理解这个想法。 但是,如果他们想了解它的实际工作方式并使用它,则需要找到正确的JDeveloper版本,启动它,运行示例应用程序,并可能会用铃鼓跳舞以使其正常工作。 太复杂而不有趣。 有趣的是拥有一个轻量级的Docker容器,其中包含已部署的示例应用程序,每个人都可以在其Docker环境中轻松运行。 在这篇文章中,我将展示如何创建一个预配置的docker-image-template,该模板将用于使用已部署的示例应用程序创建映像。

由于关键是拥有一个轻量级的容器,并且由于我的示例ADF应用程序很少超出Essentials功能,因此我决定在此之上创建一个运行Tomcat和ADF Essentials的Docker容器。

因此,让我们开始:

1.从Docker Hub拉并运行Tomcat映像:

docker run -it -p 8888:8080 --name adftomcat tomcat:8.0

完成此操作后,您将可以在http:// localhost:8888上观察正在运行的Tomcat。

2.在容器中安装最新的Java:

在单独的终端窗口中,深入容器:

docker exec -it adftomcat bash

并安装Java:

apt-get update
apt-get install software-properties-common
add-apt-repository "deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main"
apt-get update
apt-get install oracle-java8-installer

3.从Oracle网站下载ADF Essentials(包括客户端)

这将为您提供档案:adf-essentials.zip和adf-essentials-client-ear.zip。 将它们复制到容器中:

docker cp ~/Downloads/adf-essentials.zip adftomcat:/usr/local/tomcat/lib
docker cp ~/Downloads/adf-essentials-client-ear.zip adftomcat:/usr/local/tomcat/lib

转到容器( docker exec -it adftomcat bash )并使用-j选项解压缩它们:

unzip -j/usr/local/tomcat/lib/adf-essentials.zip
unzip -j/usr/local/tomcat/lib/adf-essentials-client-ear.zip

4.从以下位置下载javax.mail-api-1.4.6.jar
在这里并将其复制到容器中:

docker cp ~/Downloads/javax.mail-api-1.4.6.jar adftomcat:/usr/local/tomcat/lib

5.在容器中安装nano文本编辑器:

apt-get install nano

6.在容器中的/usr/local/tomcat/bin文件夹中创建setenv.sh文件:

nano /usr/local/tomcat/bin/setenv.sh

具有以下内容:

JAVA_HOME=/usr/lib/jvm/java-8-oracleCATALINA_OPTS='-Doracle.mds.cache=simple -Dorg.apache.el.parser.SKIP_IDENTIFIER_CHECK=true'

7.在容器中更新/usr/local/tomcat/conf/context.xml文件:

nano /usr/local/tomcat/conf/context.xml

并在<Context>部分中添加以下行

<JarScanner scanManifest="false"/>

8.基本上,这足以将ADF应用程序部署到容器。 我从这个预配置的容器中创建了一个映像,以供将来用作模板。

docker commit adftomcat efedorenko/adftomcat

9.开发一个“与Tomcat兼容”的示例ADF应用程序(请参阅Chandresh的博客,其中描述了如何创建适用于Tomcat的ADF应用程序)。 将其部署到战争中并将战争复制到容器中:

docker cp tcatapp.war adftomcat:/usr/local/tomcat/webapps

10.重新启动容器

docker stop adftomcat
docker start -I adftomcat

11.在此处检查应用程序的可用性http:// localhost:8888 / MY_CONTEXT_ROOT / faces / main.jsf

12.现在,我们可以从该容器中创建映像,在docker cloud中运行它,或仅与您的同事共享它,以便他们可以在他们喜欢的任何地方运行它。

而已!

翻译自: https://www.javacodegeeks.com/2018/01/running-adf-essentials-tomcat-docker-container.html

在Docker容器中的Tomcat上运行ADF Essentials相关推荐

  1. docker安装_以简便的方式监控Docker容器中的ADF应用程序

    docker安装 在这篇简短的文章中,我将展示一种简单的方法来确保在Docker容器中运行的ADF应用程序在内存利用率方面是健康的Java应用程序. 我将使用标准工具JConsole,它是计算机上JD ...

  2. docker 容器监控_以简便的方式监控Docker容器中的ADF应用程序

    docker 容器监控 在这篇简短的文章中,我将展示一种简单的方法来确保在Docker容器中运行的ADF应用程序在内存利用率方面是健康的Java应用程序. 我将使用标准工具JConsole,它是计算机 ...

  3. 轻松监控Docker容器中的ADF应用程序

    在这篇简短的文章中,我将展示一种简单的方法,以确保在Docker容器中运行的ADF应用程序在内存利用率方面是健康的Java应用程序. 我将使用标准工具JConsole,它是计算机上JDK安装的一部分. ...

  4. 如何在Docker容器中运行GUI程序

    如何在Docker容器中运行GUI程序 各位,今天我们将学习如何在Docker之中运行GUI程序.我们可以轻易地在Docker容器中运行大多数GUI程序且不出错.Docker是一个开源项目,提供了一个 ...

  5. 如何在Docker容器中运行Docker [3种方法]

    在本博客中,我将向您介绍在docker中运行docker所需的三种不同方法. Docker In Docker的用处 dockerIndocker的一个潜在用处是CI管道,在代码成功构建后,您需要在其 ...

  6. 【Rust日报】 2019-05-27:toast - 支持在docker容器中运行任务的工具

    Rust中文社区翻译小组招募 #activity #RustChina 首批任务:Rust官网翻译 这里有详细说明 https://github.com/rust-lang/www.rust-lang ...

  7. vs附加其它计算机应用到进程,如何将VS代码附加到在docker容器中运行的节点进程...

    我试图将Visual Studio代码调试程序附加到在Docker容器中运行的node.js应用程序. 我启动应用程序,如: node --debug-brk app.js 我在docker-comp ...

  8. Docker 容器中运行 Docker 命令

    Docker 容器中运行 Docker 命令 在使用 GitLab/Jenkins 等 CI 软件的时候需要使用 Docker 命令来构建镜像,需要在容器中使用 Docker 命令:通过将宿主机的 D ...

  9. 如何在Docker容器中挂载主机目录

    本文翻译自:How to mount a host directory in a Docker container I am trying to mount a host directory into ...

最新文章

  1. C:模块化程序设计 以及数组
  2. Keras【Deep Learning With Python】更优模型探索Keras实现RNN
  3. Leetcode 122. 买卖股票的最佳时机 II 解题思路及C++实现
  4. 数据库垂直拆分和水平拆分
  5. app 图标规格参考表
  6. JavaScript——面向对象(封装)
  7. 网页制作 css样式,网页设计与制作-CSS样式.ppt
  8. php 实现ftp 多文件,php – 使用一个连接读取FTP目录中每个文件的内容
  9. 强大的端到端语音识别框架—RNN-T
  10. 安大计算机学院李炜教授,李炜-北京航空航天大学计算机学院
  11. 2019蓝桥:奇数倍数问题
  12. 官方个人免签系统网站源码柒上支付聚合三方四方支付系统
  13. 推荐个 Java 开源商城项目,这个是真的好!
  14. php里macd预测算法,股票MACD指标算法公式
  15. 360wifi驱动 linux ap,360wifi驱动
  16. OSPF--DR与BDR
  17. 不要想当然,相信自己(自己在C中踩过的坑)
  18. Matlab的中Plot函数的基本用法(详解)
  19. 洛谷 P1192 台阶问题
  20. 2021-04-12——新特性Lambda表达式和Function函数式接口编程

热门文章

  1. GYM101002C - Greetings!
  2. 一分钟理解Java公平锁与非公平锁
  3. vue.js 接收url参数
  4. Intellij Idea乱码解决方案都在这里了
  5. ssm使用全注解实现增删改查案例——DeptServiceImpl
  6. Redis(案例一:注册登录-图形验证码+谷歌开源Kaptcha)
  7. 公共计算机课程思政建设实施方案,公共计算机教研组开设课程思政公开课
  8. ArrayList整理
  9. sqlserver如何定义一个静态变量_[Bazel]自定义规则实现将多个静态库合并为一个动态库或静态库...
  10. final 实例域+final类+final方法(阻止继承)