| .. | ||
| libs | ||
| src/main | ||
| docker-compose.yml | ||
| Dockerfile | ||
| IMPLEMENTATION_SUMMARY.md | ||
| pom.xml | ||
| QUICKSTART.md | ||
| README.md | ||
| start.sh | ||
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)
# 1. 编译
mvn clean package
# 2. 运行
java -jar target/adxp-adapter.jar \
--adxp.host=10.10.10.100 \
--adxp.port=7001
方式2:Docker 运行(推荐)
# 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(最简单)
# 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. 登录
POST /api/adxp/login
Content-Type: application/json
{
"username": "dianxin",
"password": "dianxin@123"
}
响应:
{
"success": true,
"sessionId": "550e8400-e29b-41d4-a716-446655440000",
"message": "登录成功"
}
2. 接收消息
GET /api/adxp/messages?sessionId=550e8400-e29b-41d4-a716-446655440000
响应:
{
"success": true,
"messages": [
{
"serviceCode": "ARR",
"actionCode": "ADD",
"content": "<xml>...</xml>"
}
],
"message": null
}
3. 登出
POST /api/adxp/logout
Content-Type: application/json
{
"sessionId": "550e8400-e29b-41d4-a716-446655440000"
}
4. 健康检查
GET /api/adxp/health
响应:
{
"status": "UP",
"activeSessions": 1
}
测试
# 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
adxp:
host: ${ADXP_HOST:localhost}
port: ${ADXP_PORT:7001}
部署说明
开发环境
使用 mock 服务器进行开发测试:
# 启动 mock ADXP 服务器
cd /path/to/QAUP-Management/tools
python3 mock_adxp.py --auto --interval 10
# 启动适配器(指向 localhost)
docker-compose up -d
生产环境
连接真实的 ADXP 数据中台:
# 设置真实环境变量
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
故障排查
登录失败
- 检查 ADXP 服务器是否可达
- 验证用户名密码是否正确
- 查看日志:
docker-compose logs adxp-adapter
Session 过期
客户端需要实现重新登录逻辑,定期刷新 session。
网络问题
确保容器能够访问 ADXP 服务器:
# 进入容器测试网络
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: 数据中台 SDKmq.allclient-9.0.jar: IBM MQ 客户端- Apache CXF 3.2.4: SOAP 支持
- Jackson 1.9.13: JSON 序列化
许可证
内部项目