Docker, Java EE 7, 和 Maven with WebLogic 12.1.3

jopen 10年前

WebLogic 12.1.3已经发布,并且对于JavaEE7的APIs在数据库支持web应用开发上也是最重要的支持。以下是在发行版本中支持的一些标准:

如上面你所见到的,WebLogic 以相同的实现方式捆绑使用在GlassFish 4.0上,如果你已经开始开发Java EE 7应用(Well,当然是仅限上述的APIs),并且正在寻找一个商用支持的环境,那么WebLogic 可以提供给你一个合适的应用服务。

同样Apache Maven Plugin 有许多的改进,这使得开发者的生活更简便,允许更好的自动化测试(Arquillian(一种单元测试框架)!),持续的集成和分发。那些支持基于Maven的工程的IDE同样从中受益。

这是不是使得WebLogic成为运行现代的满足RESTful原则的HTML5/Javascript网页应用程序和WebSockets服务的 最好的Java EE应用服务器?如果我告诉你是不公平的,对吗?因此,为了让你有一个更好的方式去测试WebLogic,我创建了一个Dockerfile。这个Dockerfile可以使你在你自己的开发环境中创建一个WebLogic域并且去如你所想的那样去测试它。去WebLogic Community GitHub repositoryweblogic-docker上下载Developer ZIP Distro Dockerfile

开始使用WebLogic 12.1.3,Java EE 7,Maven和Docker

现在让我们开始。首先开发人员登陆Oracle.com并下载 WebLogic 12.1.3 ZIP Distro for Developers。保存该文件,供以后使用。

安装WebLogic 12.1.3 没有Docker那么(容易)

WebLogic ZIP 非常容易就可以安装:

  1. 解压的内容在一个文件夹里,你要保存zip包里的wls12130文件夹,在我的linux机器上我把他放在了 /home/bruno/Work/tools/.

  2. 进去wls12130文件夹并运行configure.cmd(windows)或者configure.sh(unix)

    • 创建domain的过程可能要花很长时间,此时安装过程是冻结的,如果是linux系统请确保你的配置:
      $ export CONFIG_JVM_ARGS=-Djava.security.egd=file:/dev/./urandom

  3. 当安装程序问你如果你想创建一个domain,type[Y]

  4. 安装程序会问你的用户名/密码。在开发环境中,我通常使用weblogic/welcome1

  5. 安装程序将WebLogic马上开始,你可以检查它运行在http://localhost:7001/控制台

使用Docker安装WebLogic 12.1.3(容易)

如果你的开发环境是基于Linux的,而且你现在并不熟悉Docker,那么先看What is Docker,然后试一试。长话短说:Docker是一个Linux容器;它就像个虚拟机,但又不是(例如有人在Vagrant虚拟机上运行Docker)。对我们来说最重要的是它会用虚拟的IP地址创建一个虚拟的网络接口。

我笔记本的系统是Ubuntu 14.04,所以我用Docker Installation Instruction来安装。假设你已经使用某种方式已经在你的机器上安装了Docker,阅读instructions for your own operational system.

  1. 下载Zip文件或者从weblogic-docker的Git仓库上检出,然后提取文件到你电脑的某个地方。我会使用$DOCKER_HOME作为文件存放位置的引用。

  2. 复制你先前下载的wls12130_dev.zip$DOCKER_HOME/weblogic-docker/weblogic12c-zip/

  3. 使用build.sh(以sudo身份)命令,等待Docker释放它的魔法

  4. 使用dockWebLogic.sh命令,观察WebLogic在Docker容器的启动和运行

    • 它会和你主机的7001端口绑定

  5. 打开http://localhost:7001/console。Username/password 是 weblogic/welcome1

**注意:我们不为任何环境下Docker上的WebLogic提供支持,所以在你自己的硬盘上使用它。开发者 分布(ZIP)仅仅是为了开发环境,而且也不支持,因为它是不可打补丁的。如果你仍然想在Docker上运行WebLogic 12c Full Distribution,阅读here's a way to set it up.

配置本地Maven仓库

现在可以不再本地安装WebLogic就可以使用Maven了,这对CI环境(Hudson/Jenkins)很适合。你仍然需要一步安装,即设置 Maven插件的初始化。你一旦为你的远程Maven仓库安装完毕并部署在一个远程服务器上,其它的开发者和CI 环境就不需要在本地进行WebLogic的安装了。对于本地开发者来说,你同样可以把WebLogic作为一个“远程”服务器。

配置Maven的步骤已经被写成文档了,地址为:Maven Synchronization Plug-in.在本地仓库上安装后,你可以调用sync goal来填充本地或远程的仓库。下面是在本地环境下填充的步骤:

  1. 到WebLogic安装目录的根目录下,例如:
    $ cd /home/bruno/Work/wls12130/

  2. 进入子目录
    $ cd oracle_common/plugins/maven/com/oracle/maven/oracle-maven-sync/12.1.3/

  3. 执行下面的命令:
    $ mvn install:install-file -DpomFile=oracle-maven-sync-12.1.3.pom -Dfile=oracle-maven-sync-12.1.3.jar

  4. 最后,调用push命令向你的仓库(在本例中是本地仓库)上传所有的Maven artifacts(插件、原型等)
    $ mvn com.oracle.maven:oracle-maven-sync:push -DoracleHome=/home/bruno/Work/wls12130/

如果你想配置一个远程的仓库,参考文档Populating a Remote Repository

WebLogic提供了一组原型的预配置Maven插件。让我们创建一个简单的Web项目使用基本WebApp Maven原型:

mvn archetype:generate      -DarchetypeGroupId=com.oracle.weblogic.archetype      -DarchetypeArtifactId=basic-webapp      -DarchetypeVersion=12.1.3-0-0      -DgroupId=org.mycompany      -DartifactId=my-basic-webapp-project      -Dversion=1.0-SNAPSHOT

现在你当然可以打开这个Maven项目关于NetBeans,IntelliJ IDEA,Eclipse,然后安装WebLogic IDE。或者你可以发出下面的命令来构建,包,这场战争和部署工件WebLogic服务器你计算机上运行(使用码头工人或正常安装):

mvn package pre-integration-test       -DoracleUsername=weblogic       -DoraclePassword=welcome1       -Dupload=true

我们一定要使用-Dupload = true因为我不确定您使用的是否为Docker。如果你是,那么需要上传自容器没有访问您的本地文件系统(although possible!)
 

Docker, Java EE 7, 和 Maven with WebLogic 12.1.3


现在打开http://localhost:7001 / basicWebapp看看这个示例应用程序启动并运行!