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

作成日 2016年07月20日  ·  5コメント  ·  ソース: swagger-api/swagger-core

私のコードはこんな感じです
パブリッククラスMyApplicationはApplicationを拡張します{
public 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(ネイティブメソッド)で
sun.reflect.NativeConstructorAccessorImpl.newInstance(不明なソース)で
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(不明なソース)で
java.lang.reflect.Constructor.newInstance(不明なソース)で
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バージョンを使用していますが、このエラーを解決するには、どのバージョンのgoogleReflectionとgoogleコレクションを使用する必要がありますか

最も参考になるコメント

私はグーグルリフレクションジャーの最新バージョンを使用してこれを解決しました

全てのコメント5件

私はグーグルリフレクションジャーの最新バージョンを使用してこれを解決しました

どのバージョンのリフレクションが効果的でしたか? 私は最新のものを試しましたが役に立ちませんでした。

こんにちは@kshitizbht 、問題を修正しましたか?
異なるバージョンのorg.reflections(v0.9.11、0.9.10)を使用しました-役に立ちません。

viachm、swaggerバージョン1.5.18を使用すると、このアプローチは私にも機能しませんが、swagger1.5.9にダウングレードして機能します。

@denisgmarques最後に、org.reflectionsを0.9.10(com.google.guavaとcom.google.code.findbugsを除く)にダウングレードしました。

あなたの場合、swaggerを1.5.9にダウングレードしているときに、org.reflectionsの内部バージョンがダウングレードされ、問題が修正されたと思います。

このページは役に立ちましたか?
0 / 5 - 0 評価