Skip to content

Can't instantiate PubSub because of this error ClassNotFoundException: io.netty.handler.codec.Headers #1462

@mvipat

Description

@mvipat

I've added following dependency

	<dependency>
		<groupId>com.google.cloud</groupId>
		<artifactId>google-cloud-pubsub</artifactId>
		<version>0.6.0</version>
	</dependency>
	<dependency>
		<groupId>com.google.auth</groupId>
		<artifactId>google-auth-library-oauth2-http</artifactId>
		<version>0.6.0</version>
	</dependency>
	<dependency>
		<groupId>com.google.appengine</groupId>
		<artifactId>appengine-api-1.0-sdk</artifactId>
		<version>1.9.48</version>
	</dependency>
	<dependency>
		<groupId>com.google.cloud</groupId>
		<artifactId>google-cloud-nio</artifactId>
		<version>0.6.0</version>
    </dependency>

Below is the code snippet

PubSub buildPubSub(String appName){
    PubSubOptions.Builder optionsBuilder = PubSubOptions.newBuilder();
    return optionsBuilder.setProjectId(appName).build().getService();
}

I keep on getting below error

Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.google.cloud.pubsub.PubSub]: Factory method 'pubSub' threw exception; nested exception is java.lang.NoClassDefFoundError: io/netty/handler/codec/Headers
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189) ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588) ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
... 104 common frames omitted
Caused by: java.lang.NoClassDefFoundError: io/netty/handler/codec/Headers
at java.lang.ClassLoader.defineClass1(Native Method) ~[na:1.8.0_45]
at java.lang.ClassLoader.defineClass(ClassLoader.java:760) ~[na:1.8.0_45]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) ~[na:1.8.0_45]
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) ~[na:1.8.0_45]
at java.net.URLClassLoader.access$100(URLClassLoader.java:73) ~[na:1.8.0_45]
at java.net.URLClassLoader$1.run(URLClassLoader.java:368) ~[na:1.8.0_45]
at java.net.URLClassLoader$1.run(URLClassLoader.java:362) ~[na:1.8.0_45]
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_45]
at java.net.URLClassLoader.findClass(URLClassLoader.java:361) ~[na:1.8.0_45]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_45]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[na:1.8.0_45]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_45]
at io.grpc.netty.NettyChannelBuilder$NettyTransportFactory.(NettyChannelBuilder.java:311) ~[grpc-netty-1.0.1.jar:1.0.1]
at io.grpc.netty.NettyChannelBuilder$NettyTransportFactory.(NettyChannelBuilder.java:280) ~[grpc-netty-1.0.1.jar:1.0.1]
at io.grpc.netty.NettyChannelBuilder.buildTransportFactory(NettyChannelBuilder.java:230) ~[grpc-netty-1.0.1.jar:1.0.1]
at io.grpc.internal.AbstractManagedChannelImplBuilder.build(AbstractManagedChannelImplBuilder.java:239) ~[grpc-core-1.0.1.jar:1.0.1]
at com.google.api.gax.grpc.InstantiatingChannelProvider.createChannel(InstantiatingChannelProvider.java:120) ~[gax-0.0.22.jar:na]
at com.google.api.gax.grpc.InstantiatingChannelProvider.getChannel(InstantiatingChannelProvider.java:107) ~[gax-0.0.22.jar:na]
at com.google.api.gax.grpc.ProviderManager.getChannel(ProviderManager.java:107) ~[gax-0.0.22.jar:na]
at com.google.api.gax.grpc.ChannelAndExecutor.create(ChannelAndExecutor.java:68) ~[gax-0.0.22.jar:na]
at com.google.api.gax.grpc.ServiceApiSettings.getChannelAndExecutor(ServiceApiSettings.java:82) ~[gax-0.0.22.jar:na]
at com.google.cloud.pubsub.spi.v1.PublisherApi.(PublisherApi.java:203) ~[google-cloud-pubsub-0.6.0.jar:0.6.0]
at com.google.cloud.pubsub.spi.v1.PublisherApi.create(PublisherApi.java:194) ~[google-cloud-pubsub-0.6.0.jar:0.6.0]
at com.google.cloud.pubsub.spi.DefaultPubSubRpc.(DefaultPubSubRpc.java:168) ~[google-cloud-pubsub-0.6.0.jar:0.6.0]
at com.google.cloud.pubsub.PubSubOptions$DefaultPubSubRpcFactory.create(PubSubOptions.java:69) ~[google-cloud-pubsub-0.6.0.jar:0.6.0]
at com.google.cloud.pubsub.PubSubOptions$DefaultPubSubRpcFactory.create(PubSubOptions.java:63) ~[google-cloud-pubsub-0.6.0.jar:0.6.0]
at com.google.cloud.ServiceOptions.getRpc(ServiceOptions.java:478) ~[google-cloud-core-0.6.0.jar:0.6.0]
at com.google.cloud.pubsub.PubSubImpl.(PubSubImpl.java:115) ~[google-cloud-pubsub-0.6.0.jar:0.6.0]
at com.google.cloud.pubsub.PubSubOptions$DefaultPubSubFactory.create(PubSubOptions.java:44) ~[google-cloud-pubsub-0.6.0.jar:0.6.0]
at com.google.cloud.pubsub.PubSubOptions$DefaultPubSubFactory.create(PubSubOptions.java:39) ~[google-cloud-pubsub-0.6.0.jar:0.6.0]
at com.google.cloud.ServiceOptions.getService(ServiceOptions.java:465) ~[google-cloud-core-0.6.0.jar:0.6.0]
at com.homedepot.checkout.pubsub.PubSubAdapter.buildPubSub(PubSubAdapter.java:83) ~[classes/:na]
at com.homedepot.checkout.pubsub.PubSubConfiguration.pubSub(PubSubConfiguration.java:69) ~[classes/:na]
at com.homedepot.checkout.pubsub.PubSubConfiguration$$EnhancerBySpringCGLIB$$2a49f60b.CGLIB$pubSub$1() ~[classes/:na]
at com.homedepot.checkout.pubsub.PubSubConfiguration$$EnhancerBySpringCGLIB$$2a49f60b$$FastClassBySpringCGLIB$$b610cce5.invoke() ~[classes/:na]
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) ~[spring-core-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:355) ~[spring-context-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at com.homedepot.checkout.pubsub.PubSubConfiguration$$EnhancerBySpringCGLIB$$2a49f60b.pubSub() ~[classes/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162) ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
... 105 common frames omitted
Caused by: java.lang.ClassNotFoundException: io.netty.handler.codec.Headers
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_45]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_45]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[na:1.8.0_45]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_45]
... 148 common frames omitted

Any help would be appreciated.

Thanks
MV

Metadata

Metadata

Labels

api: loggingIssues related to the Cloud Logging API.api: pubsubIssues related to the Pub/Sub API.priority: p2Moderately-important priority. Fix may not be included in next release.running on app enginetriaged for GA

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions