我正试图在我的申请中加入炫耀。
我正在遵循这个指南https://github . com/Swagger-API/Swagger-Core/wiki/Swagger-Core-Jersey-2。x-Project-Setup-1.5 #使用-a-custom-application-subclass
但我将Jersey配置为ResourceConfig,如下所示:
@ApplicationPath("/resources/api")
public class ApiApplication extends ResourceConfig {
public ApiApplication() {
super(MultiPartFeature.class);
packages("my.rest.resources");
register(io.swagger.jaxrs.listing.ApiListingResource.class);
register(io.swagger.jaxrs.listing.SwaggerSerializers.class);
BeanConfig beanConfig = new BeanConfig();
beanConfig.setVersion("1.0.2");
beanConfig.setSchemes(new String[]{"http"});
beanConfig.setHost("localhost:8080");
beanConfig.setBasePath("/resources/api");
beanConfig.setResourcePackage("my.rest.resources");
beanConfig.setScan(true);
}
}
这是正确的吗?
没有昂首阔步。json生成。
根据我的理解,swagger文件应该在下面的链接上 http://localhost/api/api-docs/swagger.json
已将BasePath更改为resources/api
我在tomcat日志中也收到以下异常:
SEVERE: Servlet /XXXXXX threw load() exception
java.lang.NoSuchMethodError: org.reflections.util.ClasspathHelper.forPackage(Ljava/lang/String;[Ljava/lang/ClassLoader;)Ljava/util/Collection;
at io.swagger.jaxrs.config.BeanConfig.classes(BeanConfig.java:189)
at io.swagger.jaxrs.config.BeanConfig.setScan(BeanConfig.java:168)
at my.rest.resources.apps.ApiApplication.<init>(ApiApplication.java:34)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
java.lang.NoSuchMethodError:org.reflections.util.ClasspathHelper.forPackage(Ljava/lang/String;[Ljava/lang/ClassLoader;)Ljava/util/Collection;在io.swagger.jaxrs.config.BeanConfig.classes(BeanConfig.java:189)在io.swagger.jaxrs.config.BeanConfig.setScan(BeanConfig.java:168)在my.rest.resources.apps.ApiApplication.(ApiApplication.java:34)在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
通过上述堆栈跟踪,观察到如下情况:
实际上,您使用的是Jersey1. x支持的jar,即reflections-0.9.9-RC1.jar,因此请将泽西2. x支持的jarreflections-0.9.9.jar添加到您的libs文件夹或类路径中。这将解决上述问题
>
ApiListingResource
(swagger数据的来源)只不过是另一个JAX-RS(Jersey)资源类。
@Path("/")
public class ApiListingResource {
...
@GET
...
@Path("/swagger.{type:json|yaml}")
public Response getListing(..) {...}
...
}
因此,资源路径将是基本@ApplicationPath(“/资源/api”)
和变量资源路径 /swagger.json
。因此,您需要访问 /resources/api/swagger.json
。
您需要在BeanConfig
中修复您的基本路径。此基本路径用于为swagger UI创建URL。使用基本路径"/api"
意味着URL数据将导致UI访问不存在的/api/your Resources
。基本路径应该是servlet上下文(我猜在您的情况下没有)和泽西基本路径(即/Resources/api
)的组合。因此将BeanConfig
基本路径设置为"/Resources/api"
我正在使用Swagger和泽西岛1。它生成斯瓦格规格 v1.2 中的规范。大多数工具(例如编辑器)都需要规范v2.0。有没有办法生成规范v2.0? 我实际上想要像bootprint swagger这样的可打印/静态文档,这也需要规范v2.0。
我正在寻找一种方法来覆盖GuiceServletContextListener中与guice绑定的jersey资源。我的代码,我正在努力工作: 但不幸的是,这不起作用,虽然我不能像接口一样将jersey资源绑定到实现,但只有work。但是这样的绑定是不可能覆盖的。如果我试图用覆盖,我会收到一个错误而@Path应该是唯一的。那么我的用例有什么解决方案吗?
我有一个运行spring-boot、jersey2和spring度量的应用程序:下面是maven片段: 在引入致动器依赖性之前,Jersey一直工作得很好。然后创建了以下bean以使Jersey作为过滤器工作: 度量被映射到/admin路径。使用这种配置,我无法使度量标准工作。但是,通过添加management.port(不同于主应用程序端口),既可以使用Jersey资源,也可以使用metrics
我使用Jersey 2.10异常映射器类来处理异常。我想返回错误状态和错误信息的JSON正文。我想得到类似的回应: Jersey没有在响应中发送JSON正文。我得到的是: 如果我将状态代码更改为200,那么我将获得预期的响应正文 请帮我找出这个问题的解决方案。 异常映射器在错误对象中填充错误消息和状态。以下是异常映射程序代码: 这是来自错误对象的代码:
主要内容:1.kubernetes 架构,2.从创建 deployment 开始,3.Pod,3.容器编排,4.水平扩缩容,5.更新/回滚,6.滚动更新,7.kubernetes 中的网络,8.微服务—service,9.kubernetes 中的服务发现与网络调用kubernetes 已经成为容器编排领域的王者,它是基于容器的集群编排引擎,具备扩展集群、滚动升级回滚、弹性伸缩、自动治愈、服务发现等多种特性能力。 1.kubernetes 架构 从宏观上来看 kubernetes 的整体架构,包
Resource Planet 是一款点击、放置、收集资源的游戏。 点击试玩 https://static.oschina.net/trytry/resource-planet/