当前位置: 首页 > 知识库问答 >
问题:

如何在Spring将 Swagger 与球衣搭配使用?

陶超
2023-03-14

我尝试在SpringBoot(1.5.8)中使用Swagger(2.6)和Jersey(1.5)

我对公共API的调用工作正常

我试着用Jersey跟踪这个Config Swagger ui,但它仍然没有回来。

这是我的球衣配置

@Configuration
@ApplicationPath("rest")
public class JerseyConfig extends ResourceConfig {

public JerseyConfig()
{
    register(CustomerImpl.class);
    configureSwagger();
}
public void configureSwagger()
{
    this.register(ApiListingResource.class);
    this.register(SwaggerSerializers.class);
    BeanConfig beanConfig = new BeanConfig();
    beanConfig.setTitle("Swagger sample app");
    beanConfig.setVersion("1.0.0");
    beanConfig.setSchemes(new String[]{"http"});
    beanConfig.setHost("localhost:57116");
    beanConfig.setBasePath("/rest");
    beanConfig.setResourcePackage("com.mypackage");
    beanConfig.setScan(true);
}
}

这是我的应用类

@SpringBootApplication
@EnableDiscoveryClient
@EnableSwagger2
public class CustomerApplication {...}

这是我的endpoint

@Component
@Path("customer")
@Api(value = "Customer API")
public class CustomerImpl {
    @Path("list")
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    @ApiOperation(value = "list")
    @ApiResponses(value = {
            @ApiResponse(code = 200, message = "Success", response = List.class),
            @ApiResponse(code = 401, message = "Unauthorized"),
            @ApiResponse(code = 403, message = "Forbidden"),
            @ApiResponse(code = 404, message = "Not Found"),
            @ApiResponse(code = 500, message = "Failure")})
    public String[] getList()
    {
        return new String[]{"IBM", "Microsoft", "Victor"};
    }
}

当我使用Spring Rest控制器尝试类似的配置时,它工作正常,但是对于泽西岛,我看不到我的公共API。它似乎忽略了我的炫耀配置

共有1个答案

席银龙
2023-03-14

您是否使用org.springframework.boot:sping-boot-starter-jersey依赖或org.springframework.boot:sping-boot-starter-web在您的pom.xml

似乎您使用的是由< code>SpringFox生成的Swagger bean,而不是由您的< code>BeanConfig生成的。

为了让Swagger工作,您应该依赖spring boot starter jersey并删除所有SpringFox依赖项,包括@EnableSwagger2annotation。

Jersey应用程序中的< code>swagger.json由< code > io . swagger:swagger-Jersey 2-jaxrs 库生成。至于Swagger UI,可以使用vanilla Swagger UI静态资源。

您可能还需要将 BeanConfig 中的资源包更改为应用程序基本包。目前,您有:

beanConfig.setResourcePackage("io.swagger.resources");

这是一个Spring Boot、Jersey和Swagger的工作示例。在此示例中,资源包设置为应用程序基本包:

beanConfig.setResourcePackage("com.basaki");
 类似资料:
  • 我有一个运行spring-boot、jersey2和spring度量的应用程序:下面是maven片段: 在引入致动器依赖性之前,Jersey一直工作得很好。然后创建了以下bean以使Jersey作为过滤器工作: 度量被映射到/admin路径。使用这种配置,我无法使度量标准工作。但是,通过添加management.port(不同于主应用程序端口),既可以使用Jersey资源,也可以使用metrics

  • 我遵循了以下步骤:http://springfox.github.io/springfox/docs/current/ 以下是我所做的: > build.gradle: 当我启动服务器并导航到http://localhost:8080/swagger-ui.html时,我可以看到“绿色”UI屏幕,其中只列出了basic-error-controller。我自己的控制器不在那里。 我做错了什么?谢谢

  • 我想在灰熊上使用Guice泽西2.0。根据这个如何将guice-servlet与泽西2.0一起使用?讨论目前没有直接用于Jersey2的Guice集成,但可以使用HK2作为桥梁来实现。我还检查了Githubhttps://github.com/piersy/jersey2-guice-example-with-test中的示例项目。这个项目是使用Jetty实现的。 但我的问题是在Grizzly中实

  • 问题内容: 我想使用Jersey来实现一些Java REST服务。默认的POJO转换器JAXB处理JSON对象有点奇怪,因此我想使用Jackson转换POJO的开销很少或更少。我如何告诉J2ME框架使用另一个转换器? 我的web.xml看起来像这样: 问题答案: 只需添加jackson JAR并修改web.xml即可,如下所示: 所需的Jackson Jackson JAR(http://jack

  • 我正在使用Swagger和泽西岛1。它生成斯瓦格规格 v1.2 中的规范。大多数工具(例如编辑器)都需要规范v2.0。有没有办法生成规范v2.0? 我实际上想要像bootprint swagger这样的可打印/静态文档,这也需要规范v2.0。

  • 首先,问题是当我从rest servlet调用ejb时,ejb总是null。 我在jersey spring 3.0.5中开发了一个rest web服务。以及用于服务的EJB3.1。 我已经在耳朵里打包了war和jar,所以我的应用程序看起来像(我使用maven作为依赖): 我想知道如何从war文件中的类调用jar文件中的服务。据我记忆,这是通过JNDI,我需要公开ejb apis?我应该怎么做?