java无法读取方案文档_由于过滤器,无法读取Swagger API文档

找到了解决方案 . 在web.xml中,我添加了处理/ api / api-docs / *请求的过滤器 . 它在处理/ api / *请求的过滤器之前设置 .

SwaggerDocRequestFilter

my.package.filters.SwaggerDocRequestFilter

SwaggerDocRequestFilter

/api/api-docs/*

REQUEST

SwaggerDocRequestFilter看起来像这样:

public class SwaggerDocRequestFilter implements Filter {

@Override

public void init(FilterConfig fc) throws ServletException {

}

@Override

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {

String path = ((HttpServletRequest) request).getRequestURI();

if (path.contains("/api-docs")) {

String forwardPath = ((HttpServletRequest) request).getServletPath() +

StringUtils.defaultString(((HttpServletRequest)request).getPathInfo());

request.getRequestDispatcher(forwardPath).

forward(request, response);

} else {

chain.doFilter(request, response);

}

}

@Override

public void destroy() {}

}

这将覆盖所有 javax.servlet.Filter 实现 .

对于重写JAX RS过滤器,需要提供 javax.ws.rs.container.DynamicFeature 接口的自己实现 . 此实现仅在针对特定资源的请求发生时应用过滤器,在我的情况下针对特定包中的资源 .

public class MyDynamicFiltersRegister implements DynamicFeature {

@Override

public void configure(final ResourceInfo resourceInfo, final FeatureContext context) {

if (resourceInfo.getResourceClass().getPackage().getName().equals("my.package.resources)) {

//register filters on FeatureContext objec only if resource in specific package.

...

}

}

}

在这种情况下,Swagger UI工作正常 . 在对特定资源的请求中,应用JAX RS过滤器 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值