宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

金蝶容器介绍

​ 在进行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中,关注参数PortSecurePortSSLEnabled

 <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包

    1. java-property-utils-1.9.1.jar
    2. 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应用服务器。

按照以下步骤启动远程管理控制台:

  1. 在浏览器中输入以下URL:

http://hostname:port/admin

其中:
hostname 指安装Apusic应用服务器软件的计算机的IP地址或主机名
port 是Apusic应用服务器的http端口、默认为6888

在登陆页面要键入在启动应用时输入的用户名和密码。金蝶容器的初始用户名和密码为

admin:Admin1234

注意:如果是自定义的域,在第一次部署程序时,会让用户输入用户名和密码。浏览器使用用户名和密码来可视化访问该容器。

日志查看

金蝶容器运维指南-风君子博客

应用设置

​ 在28所项目进行的过程中,由于把项目制作成了ROOT.war,因此需要配置应用程序上下文,配置如下:

金蝶容器运维指南-风君子博客

总结

​ 上述行文中,围绕金蝶容器,详细的总结了金蝶容器的目录结构、域创建、应用程序启停、日志查看等细节,并且在行文中把自己在使用金蝶容器过程中遇到的两个问题:跨域问题和JNDI整合进行了总结。详细的梳理了金蝶容器的使用,以期望能对后来使用金蝶容器的开发人员有所帮助。