You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WebLogic部署Jersey集成OpenAPI访问文档报404问题排查

问题背景
  • 基于OpenAPI实现Jersey REST服务接口清单自动生成与文档展示,参考Swagger 2.X官方集成文档完成依赖引入与配置后,WAR包部署至WebLogic 12.2.1.4服务器
  • 访问目标地址https://localhost:7003/lsw/dme/datamanagement-svc/rest/myopenapi/openapi.json时返回404,无法列出服务接口
  • 前置调整:原生OpenAPI资源因未添加@RightNeeded权限注解访问返回401,因此自定义继承BaseOpenApiResource的CustomOpenApiResource类添加对应权限校验注解
  • 已提供排查依据:项目pom.xml依赖配置、web.xml配置、weblogic.xml配置、继承ResourceConfig的DataManagementApplication启动类、自定义CustomOpenApiResource类代码
404问题排查与修复点

按以下优先级逐一核对配置:

1. 自定义OpenAPI资源注册校验

Swagger 2.X默认只自动注册原生BaseOpenApiResource,自定义子类不会被自动识别加载,必须手动注册:

  • 检查DataManagementApplication的getClasses()方法,确认已显式添加CustomOpenApiResource类注册逻辑,参考代码:
@Override
public Set<Class<?>> getClasses() {
    Set<Class<?>> resources = new HashSet<>();
    // 原有业务接口注册逻辑保留
    resources.add(CustomOpenApiResource.class);
    return resources;
}
  • 核对CustomOpenApiResource类及方法上的@Path注解值:类级@Path需为/myopenapi,openapi.json对应方法级@Path需为/openapi.json,注意路径前后斜杠不要多写漏写,保证拼接后路径和访问地址完全匹配。

2. WebLogic类加载冲突校验

WebLogic 12.2.1.4自带Jersey 1.x旧版本依赖,会和项目引入的Jersey 2.x、Swagger 2.X依赖冲突,导致资源类初始化失败:

  • 检查weblogic.xml配置,需开启WEB-INF类优先加载:
<container-descriptor>
    <prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>
  • 若使用过滤优先加载策略,需将io.swagger.core.v3.*、org.glassfish.jersey.*相关包全部加入优先加载列表,禁止WebLogic加载自带旧版本类。

3. Jersey路由映射校验

  • 核对web.xml中Jersey Servlet的url-pattern配置:若配置为/rest/*,则全路径拼接规则为「应用上下文路径 + /rest + 资源类@Path值 + 资源方法@Path值」,逐段和目标访问地址比对,确认上下文路径/lsw/dme/datamanagement-svc配置正确,无路径段重复或遗漏。
  • 若Jersey配置为包扫描模式,检查jersey.config.server.provider.packages参数,确认CustomOpenApiResource所在包路径已加入扫描列表。

4. 拦截逻辑校验

  • 临时移除CustomOpenApiResource类上的@RightNeeded注解,测试接口是否可正常访问,排除自定义权限拦截器路径匹配逻辑错误,在资源路由匹配前提前返回404的情况。
  • 访问/rest路径下其他已正常运行的业务接口,确认Jersey根路由本身可正常访问,排除应用部署失败、上下文路径错误导致的根路径404。

5. 日志校验

查看WebLogic部署启动日志,搜索CustomOpenApiResource相关加载记录,确认类是否被Jersey成功注册,是否存在类找不到、依赖冲突、注解解析失败的报错信息,根据报错对应修复依赖或配置即可。

若以上配置全部核对无误,检查Swagger 2.X依赖版本和项目使用的Jersey版本兼容性,版本不兼容会导致OpenAPI资源初始化失败,无法对外提供服务。

内容的提问来源于stack exchange,提问作者Ruchi Gupta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 09:03:21