Docker, Java EE 7, 和 Maven with WebLogic 12.1.3
WebLogic 12.1.3已經發布,并且對于JavaEE7的APIs在數據庫支持web應用開發上也是最重要的支持。以下是在發行版本中支持的一些標準:
Java Persistence API 2.1 (implemented by EclipseLink)
JAX-RS 2.0 (implemented by Jersey)
JSON-P 1.0 (implemented by GlassFish subproject jsonp)
WebSockets 1.0 (implemented by Tyrus)
如上面你所見到的,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 repository的weblogic-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 非常容易就可以安裝:
解壓的內容在一個文件夾里,你要保存zip包里的wls12130文件夾,在我的linux機器上我把他放在了 /home/bruno/Work/tools/.
進去wls12130文件夾并運行configure.cmd(windows)或者configure.sh(unix)
創建domain的過程可能要花很長時間,此時安裝過程是凍結的,如果是linux系統請確保你的配置:
$ export CONFIG_JVM_ARGS=-Djava.security.egd=file:/dev/./urandom當安裝程序問你如果你想創建一個domain,type[Y]
安裝程序會問你的用戶名/密碼。在開發環境中,我通常使用weblogic/welcome1
安裝程序將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.
下載Zip文件或者從weblogic-docker的Git倉庫上檢出,然后提取文件到你電腦的某個地方。我會使用$DOCKER_HOME作為文件存放位置的引用。
復制你先前下載的wls12130_dev.zip到$DOCKER_HOME/weblogic-docker/weblogic12c-zip/
使用build.sh(以sudo身份)命令,等待Docker釋放它的魔法
使用dockWebLogic.sh命令,觀察WebLogic在Docker容器的啟動和運行
它會和你主機的7001端口綁定
打開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來填充本地或遠程的倉庫。下面是在本地環境下填充的步驟:
到WebLogic安裝目錄的根目錄下,例如:
$ cd /home/bruno/Work/wls12130/進入子目錄
$ cd oracle_common/plugins/maven/com/oracle/maven/oracle-maven-sync/12.1.3/執行下面的命令:
$ mvn install:install-file -DpomFile=oracle-maven-sync-12.1.3.pom -Dfile=oracle-maven-sync-12.1.3.jar最后,調用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!)
現在打開http://localhost:7001 / basicWebapp看看這個示例應用程序啟動并運行!