2017-02-14 15 views
0

のすべての休憩サービスのURLを一覧表示することができますcxfをspring-bootで使用する場合は、すべてのRESTサービスをリストできますか?私はApplicationListener<ContextRefreshedEvent>を作成しました。そこに、私のcxfサーブレットに登録されたすべてのRESTサービスURLをリストしたいと思います。私はCXFServletServletContext、cxf Endpointおよびcxf Serverクラスを突き抜こうとしましたが、私はそれを理解できません。また、wadlジェネレータ(機能)とswagger2の機能を見直そうとしましたが、リクエストが来たらURLとコンテンツを作成します。出来ますか?spring-bootでcxf

ありがとうございました。

+0

基本的に、あなただけのURLエンドポイントが表示されるようにしたいですか?内容ではない? –

+0

はい。 http:// localhost:8080/rest/someServiceのようなもののリスト – viliam

答えて

0

私は多分それはあなたを助ける、クラスパス上の@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; 
    }