【问题标题】:List all rest service urls in spring boot cxf列出spring boot cxf中的所有rest服务url
【发布时间】:2023-03-25 19:35:01
【问题描述】:

在使用 cxf 和 spring-boot 时是否可以列出所有 REST 服务?我已经创建了ApplicationListener<ContextRefreshedEvent>,我想在其中列出为我的 cxf servlet 注册的所有 REST 服务 url。我试图在 CXFServletServletContext、cxf Endpoint 和 cxf Server 类中闲逛,但我无法弄清楚。我还尝试查看 wadl 生成器(功能)和 swagger2 功能,但它们会在请求到来时创建 url 和内容。有可能吗?

谢谢。

【问题讨论】:

标签: java spring rest spring-boot cxf


【解决方案1】:

我会扫描类路径上的@WebService 注释,也许它会帮助你:

    @Autowired
    private ClassPathScanningCandidateComponentProvider annotationScanner;

    public List<ClassDocument> generate(String basePackage) throws ClassNotFoundException {
       Set<BeanDefinition> candidateComponents = annotationScanner.findCandidateComponents(basePackage);

       List<ClassDocument> classDocuments = new ArrayList<>();

       for (BeanDefinition component : candidateComponents) {
           ClassDocument classDocument = new ClassDocument();

           Class<?> beanClass = Class.forName(component.getBeanClassName());

           classDocument.setClassName(beanClass.getName());

           String[] baseUrl = beanClass.getAnnotation(javax.jws.WebService.class).value();

           addMethods(classDocument, beanClass, baseUrl);

           classDocuments.add(classDocument);
       }

       return classDocuments;
   }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-27
    • 1970-01-01
    • 2015-08-16
    • 2017-12-15
    • 2019-12-31
    • 2015-12-08
    • 1970-01-01
    • 2018-11-29
    相关资源
    最近更新 更多