Swagger-core: java.lang.NoSuchMethodError: org.reflections.util.ClasspathHelper.forPackag

创建于 2016-07-20  ·  5评论  ·  资料来源: swagger-api/swagger-core

我的代码是这样的
公共类 MyApplication 扩展应用程序 {
公共我的应用程序(){
BeanConfig beanConfig = new BeanConfig();
beanConfig.setVersion("1.0.2");
beanConfig.setSchemes(new String[]{"http"});
beanConfig.setHost("localhost:8080");
beanConfig.setBasePath("/api");
beanConfig.setResourcePackage("jerseyproject");
beanConfig.setScan(true);

}
<strong i="15">@Override</strong>
public Set<Class<?>> getClasses() {
    final Set<Class<?>> classes = new HashSet<Class<?>>();
    // register root resource
    classes.add(MyResource.class);

    //you would need to add swagger-core's providers to the set up process.
    classes.add(io.swagger.jaxrs.listing.ApiListingResource.class);
    classes.add(io.swagger.jaxrs.listing.SwaggerSerializers.class);
    return classes;
}

}

但它抛出错误:

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:248)
在 io.swagger.jaxrs.config.BeanConfig.scanAndRead(BeanConfig.java:221)
在 io.swagger.jaxrs.config.BeanConfig.setScan(BeanConfig.java:204)
在 jerseyproject.MyApplication。(MyApplication.java:23)
在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
在 sun.reflect.NativeConstructorAccessorImpl.newInstance(来源不明)
在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(未知来源)
在 java.lang.reflect.Constructor.newInstance(Unknown Source)
在 org.glassfish.hk2.utilities.reflection.ReflectionHelper.makeMe(ReflectionHelper.java:1350)
在 org.jvnet.hk2.internal.Utilities.justCreate(Utilities.java:1009)
在 org.jvnet.hk2.internal.ServiceLocatorImpl.create(ServiceLocatorImpl.java:961)
在 org.jvnet.hk2.internal.ServiceLocatorImpl.createAndInitialize(ServiceLocatorImpl.java:1053)
在 org.jvnet.hk2.internal.ServiceLocatorImpl.createAndInitialize(ServiceLocatorImpl.java:1045)
在 org.glassfish.jersey.server.ApplicationHandler.createApplication(ApplicationHandler.java:385)
在 org.glassfish.jersey.server.ApplicationHandler。(ApplicationHandler.java:342)
在 org.glassfish.jersey.servlet.WebComponent。(WebComponent.java:392)
在 org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:177)
在 org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:369)
在 javax.servlet.GenericServlet.init(GenericServlet.java:158)
在 org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1238)
在 org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1151)
在 org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1038)
在 org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5027)
在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5337)
在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
在 org.apache.catalina.core.StandardContext.reload(StandardContext.java:3858)
在 org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:291)
在 org.apache.catalina.core.StandardContext.backgroundProcess(StandardContext.java:5660)
在 org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1376)
在 org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1380)
在 org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1380)
在 org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1348)
在 java.lang.Thread.run(未知来源)

我使用的是 swagger-core 1.5.9 版本,我应该使用什么版本的 google 反射和 google 集合来解决这个错误

最有用的评论

我通过使用最新版本的谷歌反射罐解决了这个问题

所有5条评论

我通过使用最新版本的谷歌反射罐解决了这个问题

什么版本的反射对你有用? 我尝试了最新的没有帮助。

@kshitizbht ,你解决了问题吗?
使用不同版本的 org.reflections (v0.9.11, 0.9.10) - 没有帮助。

viachm,使用 swagger 1.5.18 版,这种方法对我也不起作用,但我降级到 1.5.9 版并有效。

@denisgmarques最后,我将 org.reflections 降级到 0.9.10(不包括 com.google.guava 和 com.google.code.findbugs),它对我有用。

我猜在你的情况下,虽然将 swagger 降级到 1.5.9 - org.reflections 的引擎盖版本被降级了,这解决了你的问题。

此页面是否有帮助?
0 / 5 - 0 等级