255 lines
4.6 KiB
Markdown
255 lines
4.6 KiB
Markdown
# ADXP SDK Adapter Service
|
||
|
||
ADXP 数据中台 SDK 适配器服务 - 基于 JDK 8 运行的独立微服务
|
||
|
||
## 功能说明
|
||
|
||
将青岛机场数据中台 SDK (adxp-client-2.6.9.jar) 封装为 REST API 服务,解决 SDK 与现代 Java 版本的兼容性问题。
|
||
|
||
## 技术栈
|
||
|
||
- **Java**: JDK 8
|
||
- **框架**: Spring Boot 2.7.18
|
||
- **构建**: Maven
|
||
- **容器化**: Docker
|
||
|
||
## 快速开始
|
||
|
||
### 方式1:本地运行(需要 JDK 8)
|
||
|
||
```bash
|
||
# 1. 编译
|
||
mvn clean package
|
||
|
||
# 2. 运行
|
||
java -jar target/adxp-adapter.jar \
|
||
--adxp.host=10.10.10.100 \
|
||
--adxp.port=7001
|
||
```
|
||
|
||
### 方式2:Docker 运行(推荐)
|
||
|
||
```bash
|
||
# 1. 构建镜像
|
||
docker build -t adxp-adapter:1.0.0 .
|
||
|
||
# 2. 运行容器
|
||
docker run -d \
|
||
-p 8086:8086 \
|
||
-e ADXP_HOST=10.10.10.100 \
|
||
-e ADXP_PORT=7001 \
|
||
--name adxp-adapter \
|
||
adxp-adapter:1.0.0
|
||
```
|
||
|
||
### 方式3:Docker Compose(最简单)
|
||
|
||
```bash
|
||
# 1. 设置环境变量
|
||
export ADXP_HOST=10.10.10.100
|
||
export ADXP_PORT=7001
|
||
|
||
# 2. 启动服务
|
||
docker-compose up -d
|
||
|
||
# 3. 查看日志
|
||
docker-compose logs -f
|
||
|
||
# 4. 停止服务
|
||
docker-compose down
|
||
```
|
||
|
||
## API 文档
|
||
|
||
### 1. 登录
|
||
|
||
```http
|
||
POST /api/adxp/login
|
||
Content-Type: application/json
|
||
|
||
{
|
||
"username": "dianxin",
|
||
"password": "dianxin@123"
|
||
}
|
||
```
|
||
|
||
响应:
|
||
```json
|
||
{
|
||
"success": true,
|
||
"sessionId": "550e8400-e29b-41d4-a716-446655440000",
|
||
"message": "登录成功"
|
||
}
|
||
```
|
||
|
||
### 2. 接收消息
|
||
|
||
```http
|
||
GET /api/adxp/messages?sessionId=550e8400-e29b-41d4-a716-446655440000
|
||
```
|
||
|
||
响应:
|
||
```json
|
||
{
|
||
"success": true,
|
||
"messages": [
|
||
{
|
||
"serviceCode": "ARR",
|
||
"actionCode": "ADD",
|
||
"content": "<xml>...</xml>"
|
||
}
|
||
],
|
||
"message": null
|
||
}
|
||
```
|
||
|
||
### 3. 登出
|
||
|
||
```http
|
||
POST /api/adxp/logout
|
||
Content-Type: application/json
|
||
|
||
{
|
||
"sessionId": "550e8400-e29b-41d4-a716-446655440000"
|
||
}
|
||
```
|
||
|
||
### 4. 健康检查
|
||
|
||
```http
|
||
GET /api/adxp/health
|
||
```
|
||
|
||
响应:
|
||
```json
|
||
{
|
||
"status": "UP",
|
||
"activeSessions": 1
|
||
}
|
||
```
|
||
|
||
## 测试
|
||
|
||
```bash
|
||
# 1. 登录
|
||
curl -X POST http://localhost:8086/api/adxp/login \
|
||
-H "Content-Type: application/json" \
|
||
-d '{"username":"dianxin","password":"dianxin@123"}'
|
||
|
||
# 2. 接收消息(替换为实际的 sessionId)
|
||
curl "http://localhost:8086/api/adxp/messages?sessionId=YOUR_SESSION_ID"
|
||
|
||
# 3. 健康检查
|
||
curl http://localhost:8086/api/adxp/health
|
||
```
|
||
|
||
## 配置说明
|
||
|
||
### 环境变量
|
||
|
||
| 变量名 | 说明 | 默认值 |
|
||
|--------|------|--------|
|
||
| `ADXP_HOST` | ADXP 数据中台主机地址 | localhost |
|
||
| `ADXP_PORT` | ADXP 数据中台端口 | 7001 |
|
||
| `SPRING_PROFILES_ACTIVE` | Spring Profile | prod |
|
||
|
||
### application.yml
|
||
|
||
```yaml
|
||
adxp:
|
||
host: ${ADXP_HOST:localhost}
|
||
port: ${ADXP_PORT:7001}
|
||
```
|
||
|
||
## 部署说明
|
||
|
||
### 开发环境
|
||
|
||
使用 mock 服务器进行开发测试:
|
||
|
||
```bash
|
||
# 启动 mock ADXP 服务器
|
||
cd /path/to/QAUP-Management/tools
|
||
python3 mock_adxp.py --auto --interval 10
|
||
|
||
# 启动适配器(指向 localhost)
|
||
docker-compose up -d
|
||
```
|
||
|
||
### 生产环境
|
||
|
||
连接真实的 ADXP 数据中台:
|
||
|
||
```bash
|
||
# 设置真实环境变量
|
||
export ADXP_HOST=10.10.10.100 # 真实数据中台 IP
|
||
export ADXP_PORT=7001
|
||
|
||
# 启动服务
|
||
docker-compose -f docker-compose.yml up -d
|
||
```
|
||
|
||
## 监控
|
||
|
||
- **健康检查**: `http://localhost:8086/api/adxp/health`
|
||
- **Actuator**: `http://localhost:8086/actuator/health`
|
||
- **日志文件**: `logs/adxp-adapter.log`
|
||
|
||
## 故障排查
|
||
|
||
### 登录失败
|
||
|
||
1. 检查 ADXP 服务器是否可达
|
||
2. 验证用户名密码是否正确
|
||
3. 查看日志: `docker-compose logs adxp-adapter`
|
||
|
||
### Session 过期
|
||
|
||
客户端需要实现重新登录逻辑,定期刷新 session。
|
||
|
||
### 网络问题
|
||
|
||
确保容器能够访问 ADXP 服务器:
|
||
|
||
```bash
|
||
# 进入容器测试网络
|
||
docker exec -it adxp-adapter sh
|
||
ping ${ADXP_HOST}
|
||
```
|
||
|
||
## 开发说明
|
||
|
||
### 项目结构
|
||
|
||
```
|
||
adxp-adapter/
|
||
├── pom.xml # Maven 配置
|
||
├── Dockerfile # Docker 镜像定义
|
||
├── docker-compose.yml # Docker Compose 配置
|
||
├── libs/ # SDK JAR 文件
|
||
│ ├── adxp-client-2.6.9.jar
|
||
│ └── mq.allclient-9.0.jar
|
||
└── src/main/java/com/qaup/adxp/adapter/
|
||
├── AdxpAdapterApplication.java # 主应用类
|
||
├── controller/
|
||
│ └── AdxpController.java # REST API 控制器
|
||
├── service/
|
||
│ └── AdxpSdkService.java # SDK 封装服务
|
||
└── dto/
|
||
├── LoginRequest.java
|
||
├── LoginResponse.java
|
||
├── FlightMessage.java
|
||
└── MessageResponse.java
|
||
```
|
||
|
||
### 依赖说明
|
||
|
||
- `adxp-client-2.6.9.jar`: 数据中台 SDK
|
||
- `mq.allclient-9.0.jar`: IBM MQ 客户端
|
||
- Apache CXF 3.2.4: SOAP 支持
|
||
- Jackson 1.9.13: JSON 序列化
|
||
|
||
## 许可证
|
||
|
||
内部项目
|