金蝶容器运维指南
金蝶容器介紹
? 在進行28所項目的時候,由于項目國產化的需要,因此AI服務器在開發的過程中必須使用Tomcat、Jetty、Undertow等容器的國產化替代產品,因為國家的政策法規已經將信息安全問題上升到國家的高度,在項目開發過程中使用的產品必須是自主可控、而且源代碼安全的。
? 金蝶Apusic應用服務器 AAS是應用系統的運行平臺,為應用系統提供便捷開發、靈活部署、可靠運行、高效管理及快速集成等關鍵支撐。支持Java企業級規范和主流應用框架,廣泛應用于電子政務和企業核心關鍵應用。
? 28所項目、AI服務器、以及未來的大船項目中,均會采用相同的國產化形態軟件,AAS+國產化數據庫的應用結構來進行開發,因此結合28所項目、所里AI服務器項目的金蝶容器使用實踐,總結以往的經驗,溫故而知新。把相關金蝶容器的使用經驗記錄如下。
AAS架構
技術白皮書
金蝶容器技術白皮書
應用場景
? 電子政務系統、電子商務系統、企業CRM系統等JavaEE應用都需要使用JavaEE應用服務器。
安裝包目錄結構
目錄結構
較為重要的由兩個文件夾,一個是根目錄下的文件夾,只要能夠較為熟悉的了解兩層目錄中文件夾和文件的基本含義,即可對容器有初步的理解并且使用。
Apusic應用目錄結構
? 在Apusic應用目錄結構中較為重要的文件夾為domains文件夾,該文件中包含用戶通過bin/config創建的自定義域。我們可以把自己制作的war包或者文件見部署在domains**self-defined-domain**中。
應用程序部署在APUSIC_HOME\domains\self-defined-domain\applications\目錄下,如果不創建自定義域則放置在APUSIC_HOME\domains\mydomain\applications\
應用目錄結構中的具體作用如下表所示
| 目錄 | 內容 |
|---|---|
| adminconsole | Apusic管理控制臺運行所需文件,如果使用的安裝包包含adminconsole,則安裝完后adminconsole在此目錄中 |
| bin | 一些命令行腳本,通常,您需要修改其中setenv.cmd(setenv)文件,將其中JAVA_HOME設置為正確的JVM所在目錄 |
| classes | 服務器運行時,會將此目錄置為系統CLASSPATH最前端,默認情況下,此目錄為空 |
| common | 服務器運行時,會將此目錄中的jar包(含zip)置于系統CLASSPATH中,位于sp目錄中的jar包之后,lib目錄中的jar包之前 |
| lib | 服務器運行時,會將此目錄中的jar包(含zip)置于系統CLASSPATH中,位于common目錄中的jar包之后 |
| sp | 補丁程序所在位置,服務器運行時,會將此目錄中的jar包(含zip)置于系統CLASSPATH中,位于classes目錄之后,common目錄中的jar包之前; 默認情況下,此目錄為空 |
| domains | Apusic應用服務器的域,見[下表](file:///C:/Users/宋姍姍/Desktop/宋姍姍/AAS-V9.0_2019-1-7/readme.html#table2)。 |
| src | 一些第三方jar包的源碼包 |
| templates | 創建domain時所用到的模板 |
| tools | 包含管控api文檔,以及工具腳本和readme.txt說明文檔 |
注意:在tools文件中包含了許多的非交互式腳本,用來簡化AAS容器的全局配置。
tools非交互式腳本介紹
域目錄結構
? Apusic應用服務器的域信息保存在APUSIC_HOME/domains目錄下,每個域的信息保存在同名的子目錄中,安裝服務器后domains目錄下包含預定義的mydomain域。mydomain中的子目錄及子目錄描述如下表:
| 目錄 | 內容 |
|---|---|
| applications | 凡放到此文件夾中的ear、war、rar等符合J2EE規范的文件或文件夾,都會被自動部署到Apusic應用服務器上 |
| bin | 一些命令行腳本,通常,您需要運行其中startapusic.cmd(startapusic)腳本來啟動Apusic應用服務器 |
| config | 服務器中的數據庫連接池、web服務器、JMS服務、日志服務等相關配置文件、負載均衡示例配置文件等 |
| deploy | 服務器從未運行過時,此目錄不存在,當服務器啟動以后,會自動創建此文件夾。此文件夾中放置了應用系統運行時所產生的一些中間過程文件,譬如,由jsp文件生成的servlet等 |
| lib | 允許用戶在這里放置一些公用的jar包(譬如數據庫JDBC Driver等),此文件夾中的jar包(含zip)會自動置于系統CLASSPATH的尾部 |
| logs | 服務器日志文件 |
| store | 系統用戶存儲文件,JMS消息存儲文件等 |
? APUSIC_HOME/domains目錄下還包含預定義的samples域,samples域預部署了若干個示例應用,用以演示JavaEE5的最新技術。samples域的目錄結構與mydomain基本一致,但多了一個src目錄,存放示例應用的源代碼及構建腳本。
證書
? 由于AAS的運行是付費的,因此必須從金蝶獲取符合時間的證書,當前可用的證書如下:
<?xml version="1.0" encoding="UTF-8"?>
<license/>
把該證書置于根目錄下即可
\AAS-V9.0_2019-1-7
若證書時間過期,則在運行時會彈出如下的問題:
Linux管理
? 金蝶容器與Tomcat容器一樣,zip安裝包支持Windos和Linux環境下運行。在啟動運行程序時,在mydomains\applications文件夾中
在上述的行文以及下述的行文中,并不創建自定義域,而僅僅使用預先安裝的mydomain域來演示程序。
使用如下的腳本來控制應用程序的啟停。
由于Windows和Linux端應用程序的管理別無二致,Linux端金蝶的使用是日后工作的重點,因此如下使用Linux端來演示應用程序的啟停管理
配置應用端口
我們可以采用如下的方式創建一個新的域,較為重要步驟是要確定域監聽的的端口和SSL端口。
創建域使用config腳本,該腳本位于APUSIC_HOME\config,其他以默認方式執行即可。該行命令執行完畢,則可以在APUSIC_HOME\domains目錄下看見自定義的域。
windos環境創建域
C:\Users\AAS-V9.0_2019-1-7\bin>config.cmd
Using APUSIC_ENDORSED_DIRS: C:\Users\AAS-V9.0_2019-1-7\lib\endorsed-----------------------------------------------------------
| 歡迎進入Apusic域配置向導 |
| 版本 :Apusic Application Server 9.0 |
| |
| 深圳市金蝶中間件有限公司 |
| 版權所有 |
-----------------------------------------------------------選擇任務 ...
------------您希望執行下面的哪一個任務?1- 創建一個新的Apusic域2- 刪除一個現有的Apusic域3- 構建一個新的Apusic域模板請選擇相應的數字: 1歡迎進入域創建向導中心
----------------------該向導將會幫助您創建一個全新的Apusic域,同時也會在您的計算機上創建一些相關文件和需要的目錄.按<ENTER>鍵繼續:選擇域來源 ...
--------------選擇將要創建的域的來源.您能夠指定一個域模板來創建域,也可以不使用域模板創建域.->1- 選擇系統默認模板2- 選擇自定義模板請選擇相應的數字,或按<ENTER>鍵接受默認選擇:1選擇系統默認模板 ...
--------------------標準模板與集群模板的區別是: 基于集群模板創建的domain擁有集群服務。->1- 標準2- 集群請選擇相應的數字,或按<ENTER>鍵接受默認選擇:1域配置 ...
----------您想在哪一位置安裝該域?
默認位置 = C:\Users\AAS-V9.0_2019-1-7\domains請輸入一個絕對路徑,或按<ENTER>鍵接受默認位置安裝路徑:請為該域輸入一個有效的名稱,域名稱是該域的有效標識.已存在的域名稱:1- mydomain域名稱: sqh服務器配置 ...
--------------設置服務器監聽端口
默認端口 = 6888請輸入您的服務器監聽端口,按<ENTER>鍵接受默認選擇監聽端口 : 8888設置服務器SSL安全監聽端口
默認端口 = 6889請輸入您的服務器SSL安全監聽端口,按<ENTER>鍵接受默認選擇SSL監聽端口 : 7888高級選項配置 ...
----------------這里將會幫助您繼續進行數據源配置,J2EE應用程序配置.
默認選擇 = 否請選擇,或按<ENTER>鍵接受默認選擇是否希望配置一些高級選項? (Y|N):請稍后...
---------..................................................................................................................................................................................您所選擇的任務成功執行完畢.
Linux創建域
root@sqh-virtual-machine:/usr/local/aas/bin# ./config-----------------------------------------------------------
| Welcome to Apusic Domain Configuration Wizard |
| Version :Apusic Application Server 9.0 |
| |
| Copyright 2006 ShenZhen Kingdee Middleware Inc. |
| All rights reserved |
-----------------------------------------------------------Select Task ...
---------------Which task would you like to perform?1- Create a new Apusic Domain 創建一個新域2- Remove a existing Apusic Domain3- Build a new Apusic Domain TemplateCHOOSE TASK BY NUMBER: 1WELCOME TO CREATE DOMAIN WIZARD 歡迎來到創建域向導
-------------------------------This wizard will help you to create a new domain, and it will create some files and directories on your computer.PRESS <ENTER> TO CONTINUE:Select Apusic Domain Source ... 選擇Apusic域來源
-------------------------------Select the source for which the domain will be created. You can create the domain without domain template or by selecting an existing Apusic domain template.->1- Select the system default template 選擇系統默認模板2- Select a custom templateCHOOSE DOMAIN SOURCE BY NUMBER, OR PRESS <ENTER> TO ACCEPT THE DEFAULT:1Select The System Default Template ...
--------------------------------------The difference between Standard Edition template and Cluster Edition template is that Cluster Edition is a cluster enable domain template.->1- Standard Template 標準模板2- Cluster TemplateCHOOSE DEFAULT TEMPLATE BY NUMBER, OR PRESS <ENTER> TO ACCEPT THE DEFAULT:1Apusic Domain Configuration ...
-------------------------------Where would you like to install the domain?
Defalut location = /usr/local/aas/domainsENTER AN ABSOLUTE PATH, OR PRESS <ENTER> TO ACCEPT THE DEFAULTDomain Location: Enter the name for the domain,the name is a valid identity of the domain.Domain names already exists:1- mydomain2- samplesDomain Name: screenshotApusic Server Configuration ...
-------------------------------Set up the server listening port 設置該域監聽端口 HTTPdefault port = 6888 Apusic默認使用6888Please enter your server listening port,PRESS <ENTER> TO ACCEPT THE DEFAULTListen Port : 4444 Set up the server security listening port HTTPS端口default port = 6889Please enter your server security listening port,PRESS <ENTER> TO ACCEPT THE DEFAULTSSL Listen Port : 5555Apusic Advanced Options Configuration ...
-----------------------------------------Here will help you to to continue the data source configuration, J2EE application configuration.
Default value = NOENTER YOUR CHOOSE, OR PRESS <ENTER> TO ACCEPT THE DEFAULTDo you want to define advanced options? (Y|N): nPlease wait...
--------------...............The task has been finished successfully.
apusic.conf
創建域之后,可以通過修改配置文件APUSIC_HOME/domains/mydomain/config/ apusic.conf來修改端口號
在配置文件中apusic.conf中,關注參數Port和SecurePort、SSLEnabled
<SERVICECLASS="com.apusic.net.Muxer"><ATTRIBUTE NAME="Port" VALUE="8080"/><ATTRIBUTE NAME="Backlog" VALUE="1024"/><ATTRIBUTE NAME="Timeout" VALUE="30"/><ATTRIBUTE NAME="LookAheadTimeout" VALUE="30"/><ATTRIBUTE NAME="MaxWaitingClients" VALUE="200"/><ATTRIBUTE NAME="WaitingClientTimeout" VALUE="5"/><ATTRIBUTE NAME="SSLEnabled" VALUE="False"/><ATTRIBUTE NAME="SecurePort" VALUE="6889"/><ATTRIBUTE NAME="KeyStore" VALUE="config/sslserver"/><ATTRIBUTE NAME="KeyStorePassword" VALUE="keypass"/><ATTRIBUTE NAME="KeyPassword" VALUE="keypass"/></SERVICE>
部署應用
? 再金蝶容器中部署應用時,有兩種部署方式。一種是通過war包的方式,另外一種則是通過文件夾的方式;在智慧營區項目實踐過程中,我們采用war包的方式來部署應用。通過使用
mvn package
可以把項目的打包過后的目錄拷貝至APUSIC_HOME\mydomain\applications目錄下。
? 具體拷貝內容如下圖所示:
war包部署
? 與Tomcat容器一樣,金蝶容器可以使用war包的方式進行部署,當在運行時會產生如下幾種效果:
deploy文件夾
? Apusic容器會把拷貝進入applications目錄的war包解壓到domains\mydomain\deploy,并且在該目錄下可以看到如下的內容,可以通過cmd的tree命令查看目錄層級
C:\Users\AAS-V9.0_2019-1-7\domains\mydomain\deploy\rest-0.0.1-SNAPSHOT>tree
卷 OS 的文件夾 PATH 列表
卷序列號為 68EB-2279
C:.
├─.extends
│ ├─rest-0.0.1-SNAPSHOT
├─.system
│
└─rest-0.0.1-SNAPSHOT└─tmpfiles├─docroot│ ├─META-INF│ │ └─maven│ │ └─com.example│ │ └─rest│ └─WEB-INF│ ├─classes│ │ └─com│ │ └─example│ │ └─rest│ │ └─controller│ └─lib└─jsp
由此,可以分析出程序會解析war包,并把相關的資源拷貝到deploy目錄。
日志產生
程序產生的日志位于applications同級目錄下的logs目錄domains\mydomain\logs
在Linux環境下,可以采用
tail -f ..\domains\mydomain\logs\apusic.log.0
來動態產看程序所產生的日志。
瀏覽器訪問
點擊跳轉
訪問請求驗證
package com.example.rest.controller;import com.alibaba.fastjson.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;/*** 添加問候controller** @author songquanheng* @Time: 2020/2/19-17:58*/
@RestController
public class HelloController {Logger logger = LoggerFactory.getLogger(this.getClass());@GetMapping("/hello")public String hello() {logger.info("Enter hello");JSONObject result = new JSONObject();result.fluentPut("code", 0).fluentPut("msg", "success");logger.info("Leave hello");return result.toJSONString();}
}
則在程序正常運行之后,若想要訪問hello接口,則應采用如下的方式:
http://hostname:port/war包名/@RequestMapping.value
上述URL中變化的位置為war包名的有無,若指定項目生成的war包為ROOT,則war包名為空采用如下的URL形式即可
http://hostname:port/@RequestMapping.value
文件夾部署
文件夾部署與war包部署很相似,沒什么區別。不再贅述
應用管理
? 無論是在Linux還是windows環境中,靈活的使用進程號pid和端口號是控制應用的靈活方式。
如下的啟動、終止腳本位于APUSIC_HOME\domains\mydomain\bin目錄下。Windows環境下使用.cmd結尾的腳本,Linux使用另外的啟動和停止腳本。如下的陳述以Linux為主
啟動應用
./mydomain/bin/startapusic
上述命令會在當前終端啟動該應用程序,若當前終端關閉,則該應用程序終止,顯然這不是希望的方式。
可以使用nohup命令來把當前進程放進后臺,具體操作如下:
[Unauthorized System] root@lccy-os:/usr/local/yyzc/52-project/AAS-V9.0_2019-1-7/domains/mydomain/applications# nohup ../bin/startapusic 1> ../bin/nohup.out 2>&1 &[1] 28330[Note] System unauthorized, Please contact the system supplier.
此時,會在…/bin目錄下生成nohup.out,其中的內容為platform項目生成的日志。
使用數據重定向技術把相關的日志打入bin目錄下的nohup.out文件。
注意:不要把日志文件打入applications目錄下,因為Apusic默認會把該文件下的文件看作一個應用程序對待。
數據重定向可以將stanardout output和standard error output分別傳送到其他的文件或設備區,分別使用如下的特殊字符。
終止應用
[Unauthorized System] root@lccy-os:/usr/local/yyzc/52-project/AAS-V9.0_2019-1-7/domains/mydomain/applications# ../bin/stopapusic
? 需要注意的是,在金蝶容器中執行了上述的停止命令,雖然執行成功了,但程序其實并未執行成功,此時需要通過殺死進程的方式來解決該問題,可以使用如下的方式來獲取pid
獲取pid
lsof
lsof -i:port
netstat
7/domains/mydomain/applications# netstat -ano | grep 8080
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 關閉 (0.00/0/0)[Note] System unauthorized, Please contact the system supplier.[Unauthorized System] root@lccy-os:/usr/local/yyzc/52-project/AAS-V9.0_2019-1-7/domains/mydomain/applications# netstat -anop | grep 8080
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 3745/java 關閉 (0.00/0/0)
jps
jps(Java Virtual Machine Process Status Tool),可以用于
是java提供的一個顯示當前所有java進程pid的命令,適合在linux/unix平臺上簡單察看當前java進程的一些簡單情況。
jps命令使用如下所示:
-q:只輸出進程 ID
-m:輸出傳入 main 方法的參數
-l:輸出完全的包名,應用主類名,jar的完全路徑名
-v:輸出jvm參數
-V:輸出通過flag文件傳遞到JVM中的參數
jps命令在Linux環境和Windows環境下均可使用。
C:\UsersR\AAS-V9.0_2019-1-7\domains\mydomain\deploy>jps -v
21508 Jps -Dapplication.home=C:\Program Files\Java\jdk1.8.0_66 -Xms8m
21736 RemoteMavenServer -Djava.awt.headless=true -Didea.version==2018.1.5 -Xmx768m -Didea.maven.embedder.version=3.3.9 -Dfile.encoding=GBK1612 Main -Djava.endorsed.dirs=C:\Users\AAS-V9.0_2019-1-7\lib\endorsed -Dcom.apusic.domain.home=C:\Users\AAS-V9.0_2019-1-7\domains\mydomain -Djava.net.preferIPv4Stack=true -Xms512m -Xmx1024m -XX:MaxPermSize=256m -verbose22428 -Xms128m -Xmx750m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Djb.vmOptionsFile=C:\Program Files\JetBrains\IntelliJ IDEA 2018.1.5\bin\idea64.exe.vmoptions -Didea.jre.check=true -Dide.native.launcher=true -Didea.paths.selector=IntelliJIdea2018.1
終止進程
[Unauthorized System] root@lccy-os:/usr/local/yyzc/52-project/AAS-V9.0_2019-1-7/domains/mydomain/applications# kill -9 1612
問題解決
跨域問題
跨域問題原因
? 出于瀏覽器的同源策略限制。**同源策略(Sameoriginpolicy)**是一種約定,它是瀏覽器最核心也最基本的安全功能,如果缺少了同源策略,則瀏覽器的正常功能可能都會受到影響。可以說Web是構建在同源策略基礎之上的,瀏覽器只是針對同源策略的一種實現。同源策略會阻止一個域的javascript腳本和另外一個域的內容進行交互。所謂同源(即指在同一個域)就是兩個頁面具有相同的協議(protocol),主機(host)和端口號(port)
跨域實例
當一個請求url的協議、域名、端口三者之間任意一個與當前頁面url不同即為跨域
當前頁面url 被請求頁面url 是否跨域 原因
http://www.test.com/ http://www.test.com/index.html 否 同源(協議、域名、端口號相同)
http://www.test.com/ https://www.test.com/index.html 跨域 協議不同(http/https)
http://www.test.com/ http://www.baidu.com/ 跨域 主域名不同(test/baidu)
http://www.test.com/ http://blog.test.com/ 跨域 子域名不同(www/blog)
http://www.test.com:8080/ http://www.test.com:7001/ 跨域 端口號不同(8080/7001)
解決步驟
? 在北京15所保障第二次測試時,由于AI相關的應用程序A在一個金蝶容器中,28所開發的應用程序B在另外一個金蝶容器中。在實際運行時發現,若B想要通過請求獲取A中的圖片資源時,頁面報錯,跨域。可以通過如下的配置解決該問題。
- 修改APUSIC_HOME\domains\mydomain\config\web.xml
<!-- 提供跨域支持 --><filter> <filter-name>CORS</filter-name> <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class> <init-param> <param-name>cors.allowOrigin</param-name> <param-value>*</param-value> </init-param> <init-param> <param-name>cors.supportedMethods</param-name> <param-value>GET, POST, HEAD, PUT, DELETE</param-value> </init-param> <init-param> <param-name>cors.supportedHeaders</param-name> <param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value> </init-param> <init-param> <param-name>cors.exposedHeaders</param-name> <param-value>Set-Cookie</param-value> </init-param> <init-param> <param-name>cors.supportsCredentials</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>CORS</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
-
從mvn倉庫中下載兩個jar包
- java-property-utils-1.9.1.jar
- cors-filter-2.5.jar
并且把該兩個文件拷貝到APIUSIC_HOME/lib目錄內
JNDI配置
概念
java Naming and Directory Interface:java命名和目錄接口
? 主要提供的功能是:提供一個目錄系統,讓其它各地的應用程序在其上面留下自己的索引,從而滿足快速查找和定位分布式應用程序的功能。
一句話說:創建了一個目錄,然后將創建的對象存進去,類似于在注冊中心注冊了一個東西,以后使用的時候,只需要在注冊中心也就是目錄中根據名字去查找,注冊中心也就是目錄會返回給你想要的。
? JNDI提供了應用編程接口(application programming interface,API)和服務提供者接口(service provider interface,SPI)。這一點的真正含義是,要讓應用與命名服務或目錄服務交互,必須有這個服務的JNDI服務提供者,這正是JNDI SPI發揮作用的地方。服務提供者基本上是一組類,這些類為各種具體的命名和目錄服務實現了JNDI接口—很像JDBC驅動為各種具體的數據庫系統實現了JDBC接口一樣。
? 這樣做的好處:比如更換數據庫,只需要修改配置信息,名稱不變,因此代碼也不會變(也就是平常自己使用都是Class.forName,然后指定驅動類名,每次需要使用的時候都要加載并創建連接,如果更換了數據庫,就需要修改代碼中的驅動類名;而使用JNDI后,第一次加載數據庫后根據配置文件信息創建連接,并將此連接放入目錄中,以后不管在哪里使用只需要從目錄中獲取即可)
? JNDI中的命名(Naming),就是將Java對象以某個名稱的形式綁定(binding)到一個容器環境(Context)中,以后調用容器環境(Context)的查找(lookup)方法又可以查找出某個名稱所綁定的Java對象。讀者也許會感到奇怪:自己創建一個Java對象,將其綁定到JNDI容器環境中后又查詢出來,這有什么意思?在真實的項目應用中,通常是由系統程序或框加程序先將資源對象綁定到JNDI環境中,以后在該系統或框架中運行的模塊程序就可以從JNDI環境中查找這些資源對象了。例如,Tomcat服務器在啟動時可以創建一個連接到某種數據庫系統的數據源(DataSource)對象,并將該數據源(DataSource)對象綁定到JNDI環境中,以后在這個Tomcat服務器中運行的Servlet和JSP程序就可以從JNDI環境中查詢出這個數據源(DataSource)對象進行使用,而不用關心數據源(DataSource)對象是如何創建出來的,這種方式極大地增強了系統的可維護性,當數據庫系統的連接參數發生變更時,這只是Tomcat系統管理員一個人要關心的事情,而與所有的應用程序開發人員無關。
? 上述行文的含義就是,我們在金蝶容器中配置數據庫連接時,可以把DataSource對象注冊進入JDNI命名中,就好像注入到容器中的組件,在使用時,只需要獲得該組件的引用即可,而不關注DataSource是如何產生的。
應用場景
-
spring中連接數據庫(不再使用Class.forName)
-
tomcat之類的應用服務器上配置的連接池
-
程序中不是使用Class.forName來獲取鏈接的
-
而是使用Context lookup從池中獲取有用的連接
在28所項目開發過程中,也是通過JDNI來統一數據庫的訪問。這樣當以后需要更改數據庫配置時,通過命名服務,代碼不需要更改,只需要修改配置即可。
Tomcat和金蝶容器AAS都支持這種JDNDI配置。
金蝶容器配置步驟
金蝶容器、SpringBoot整合JNDI來獲取數據源的配置步驟如下:
金蝶容器配置
Bean關聯
金蝶容器web端
? 基于瀏覽器的Web管理控制臺,是內置在Apusic應用服務器之上的一個Web應用,能夠通過Web管理控制臺方便的對Apusic應用服務器進行各種管理配置工作。在訪問Web管理控制臺之前,首先要確保已經正確的啟動了Apusic應用服務器。
按照以下步驟啟動遠程管理控制臺:
- 在瀏覽器中輸入以下URL:
http://hostname:port/admin
其中:
hostname 指安裝Apusic應用服務器軟件的計算機的IP地址或主機名
port 是Apusic應用服務器的http端口、默認為6888
在登陸頁面要鍵入在啟動應用時輸入的用戶名和密碼。金蝶容器的初始用戶名和密碼為
admin:Admin1234
注意:如果是自定義的域,在第一次部署程序時,會讓用戶輸入用戶名和密碼。瀏覽器使用用戶名和密碼來可視化訪問該容器。
日志查看
?
應用設置
? 在28所項目進行的過程中,由于把項目制作成了ROOT.war,因此需要配置應用程序上下文,配置如下:
總結
? 上述行文中,圍繞金蝶容器,詳細的總結了金蝶容器的目錄結構、域創建、應用程序啟停、日志查看等細節,并且在行文中把自己在使用金蝶容器過程中遇到的兩個問題:跨域問題和JNDI整合進行了總結。詳細的梳理了金蝶容器的使用,以期望能對后來使用金蝶容器的開發人員有所幫助。
總結
- 上一篇: 阿里JAVA 开发手册----整理
- 下一篇: Java EE 8 MVC:使用表单参数