Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

java.lang.NoSuchMethodError: org.reflections.util.ClasspathHelper.forPackag #1860

Closed
bodycombathuang opened this issue Jul 20, 2016 · 6 comments

Comments

@bodycombathuang
Copy link

My code is like this
public class MyApplication extends 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);

}
@Override
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;
}

}

but it throws error:

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

I am using swagger-core 1.5.9 version, what version of google reflection and google collections should I use to solve this error

@bodycombathuang
Copy link
Author

I solved this by using a newest version of google reflection jar

@kshitizbht
Copy link

What version of reflection worked for you? i tried the latest didn't help.

@viachm
Copy link

viachm commented Jan 12, 2018

Hi @kshitizbht, have you fixed a problem?
Used the different version of org.reflections (v0.9.11, 0.9.10) - does not help.

@denisgmarques
Copy link

denisgmarques commented Mar 5, 2018

viachm, using swagger version 1.5.18 this aproach does not worked for me too, but I downgraded to swagger 1.5.9 and works.

@viachm
Copy link

viachm commented Mar 5, 2018

@denisgmarques Finally, I downgraded org.reflections to 0.9.10 (excluding com.google.guava and com.google.code.findbugs) and it worked for me.

I guess in you'r case, while downgrading swagger to 1.5.9 - under the hood version of org.reflections was downgraded and that fixed you'r problem.

@mks21998
Copy link

mks21998 commented Jul 3, 2023

Thanks @viachm, as you suggested to use org.reflections to 0.9.10 (excluding com.google.guava and com.google.code.findbugs), I did the same and it worked.

Pasting the corresponding code for others.
Use this code in pom.xml file.

                  <dependency>
			<groupId>org.reflections</groupId>
			<artifactId>reflections</artifactId>
			<version>0.9.10</version>
			<exclusions>
				<exclusion>
					<groupId>com.google.guava</groupId>
					<artifactId>guava</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.google.code.findbugs</groupId>
					<artifactId>annotations</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants