QAUP_Management/adxp-adapter
2025-10-16 10:50:50 +08:00
..
libs 用适配器的方式,增加了ADXP SDK的支持 2025-10-16 10:50:50 +08:00
src/main 用适配器的方式,增加了ADXP SDK的支持 2025-10-16 10:50:50 +08:00
docker-compose.yml 用适配器的方式,增加了ADXP SDK的支持 2025-10-16 10:50:50 +08:00
Dockerfile 用适配器的方式,增加了ADXP SDK的支持 2025-10-16 10:50:50 +08:00
IMPLEMENTATION_SUMMARY.md 用适配器的方式,增加了ADXP SDK的支持 2025-10-16 10:50:50 +08:00
pom.xml 用适配器的方式,增加了ADXP SDK的支持 2025-10-16 10:50:50 +08:00
QUICKSTART.md 用适配器的方式,增加了ADXP SDK的支持 2025-10-16 10:50:50 +08:00
README.md 用适配器的方式,增加了ADXP SDK的支持 2025-10-16 10:50:50 +08:00
start.sh 用适配器的方式,增加了ADXP SDK的支持 2025-10-16 10:50:50 +08:00

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

方式2Docker 运行(推荐)

# 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

方式3Docker 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

故障排查

登录失败

  1. 检查 ADXP 服务器是否可达
  2. 验证用户名密码是否正确
  3. 查看日志: 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: 数据中台 SDK
  • mq.allclient-9.0.jar: IBM MQ 客户端
  • Apache CXF 3.2.4: SOAP 支持
  • Jackson 1.9.13: JSON 序列化

许可证

内部项目