2017-11-13 9 views
0

私はApache CXFとEmbedded Jettyを使用するRESTサービスを持っています。私は、CXF Swagger2Featureを使用してスワガードキュメントを実装したいと思いますが、スワッガーUIは「仕様に定義されている操作がありません!」と返します。The CXF Swagger2Feature

私は注釈とプロパティを使いこなそうとしましたが、私が行ったことは同じ出力を示しています。

public class AppConfig { 
@Bean(destroyMethod = "shutdown") 
public SpringBus cxf() { 
    return new SpringBus(); 
} 

@Bean 
public Server jaxRsServer() { 

    Swagger2Feature feature = new Swagger2Feature(); 
    feature.setUsePathBasedConfig(true); 
    feature.setResourcePackage("com.phoenixbv.rs"); 
    feature.setResourcePackage(MaterialsRestService.class.getPackage().getName()); 
    feature.setScanAllResources(true); 


    JAXRSServerFactoryBean factory = RuntimeDelegate.getInstance().createEndpoint(jaxRsApiApplication(), JAXRSServerFactoryBean.class); 
    factory.setServiceBeans(Arrays.<Object>asList(baseRestService(), peopleRestService(),materialsRestService(),batchRestService(),billingRestService(),locationRestService())); 
    factory.setAddress(factory.getAddress()); 
    factory.setProviders(Arrays.<Object>asList(jsonProvider(), authenticationService())); 
    factory.getFeatures().add(feature); 
    return factory.create(); 
} 

とサービスクラス:

は、ここに私のコードです。

闊歩-UIおよびサービス記述-闊歩両方が現在、私が使用しています私

のための問題を解決するために、依存関係にアーティファクトのバージョンを変更する

@Path("/materials") 
    @Api(value="Materials", description = "Endpoint for Material specific operations") 
public class MaterialsRestService extends BaseRestService { 

@Inject 
private GenericUserRightsUtil genericUserRightsUtil; 
@Inject 
private PxMaterialService materialsService; 

@Produces({ "application/json" }) 
@GET 
@ApiOperation(value = "GetAllMaterials", notes = "Returns a list of materials", response = MaterialsRestService.class) 
@ApiResponse(code = 200, message = "Successful retrieval of all materials", response = MaterialsRestService.class) 
public Response getMaterialList(@Context SecurityContext securityContext) { 

    Principal principal = securityContext.getUserPrincipal(); 
    String empid = principal.getName(); 
    Employee emp = getLoggedInUser(empid); 


    if((!genericUserRightsUtil.get(emp, Material.class).hasRights(UserRights.Dump))){ 
     return null; 
    } 
    return Response.status(200).entity(materialsService.getMaterialList()).build(); 
} 
+0

をすることができ/services/swagger.jsonの結果を追加してください。 –

答えて

0

<dependency> 
<groupId>org.apache.cxf</groupId> 
<artifactId>cxf-rt-rs-service-description-swagger</artifactId> 
<version>3.1.13</version> 
</dependency> 

<!-- https://mvnrepository.com/artifact/org.webjars/swagger-ui --> 
<dependency> 
<groupId>org.webjars</groupId> 
<artifactId>swagger-ui</artifactId> 
<version>3.1.5</version> 
</dependency>