question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

java.lang.ClassNotFoundException: org/eclipse/jetty/alpn/ALPN

See original GitHub issue

My team has built a very thing wrapper around the spanner java driver and we have ran a number of tests successfully.

An issue came up when we tried to integrate the layer we built with vert.x (http://vertx.io)

An exception is occurring on the following code block:

SpannerOptions.newBuilder().build();

The following exception is being thrown:

java.lang.IllegalArgumentException: Jetty ALPN/NPN has not been properly configured.
	at io.grpc.netty.GrpcSslContexts.selectApplicationProtocolConfig(GrpcSslContexts.java:162)
	at io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:136)
	at io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:124)
	at io.grpc.netty.GrpcSslContexts.forClient(GrpcSslContexts.java:94)
	at com.google.cloud.spanner.SpannerOptions$NettyRpcChannelFactory.newSslContext(SpannerOptions.java:318)
	at com.google.cloud.spanner.SpannerOptions$NettyRpcChannelFactory.newChannel(SpannerOptions.java:306)
	at com.google.cloud.spanner.SpannerOptions.createChannel(SpannerOptions.java:279)
	at com.google.cloud.spanner.SpannerOptions.createChannels(SpannerOptions.java:266)
	at com.google.cloud.spanner.SpannerOptions.<init>(SpannerOptions.java:91)
	at com.google.cloud.spanner.SpannerOptions.<init>(SpannerOptions.java:45)
	at com.google.cloud.spanner.SpannerOptions$Builder.build(SpannerOptions.java:202)
	at com.godaddy.commerce.store.core.RelationalStoreSpanner.<init>(RelationalStoreSpanner.java:52)
	at com.godaddy.commerce.store.core.RelationalStore.<init>(RelationalStore.java:38)
	at com.godaddy.commerce.store.examples.SpannerExampleVerticle.start(SpannerExampleVerticle.java:36)
	at io.vertx.core.AbstractVerticle.start(AbstractVerticle.java:111)
	at io.vertx.core.impl.DeploymentManager.lambda$doDeploy$10(DeploymentManager.java:481)
	at io.vertx.core.impl.ContextImpl.lambda$wrapTask$2(ContextImpl.java:344)
	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:403)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:463)
	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: org/eclipse/jetty/alpn/ALPN
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:348)
	at io.grpc.netty.JettyTlsUtil.isJettyAlpnConfigured(JettyTlsUtil.java:34)
	at io.grpc.netty.GrpcSslContexts.selectApplicationProtocolConfig(GrpcSslContexts.java:153)
	... 21 more

The dependency tree is as follows:

+- io.vertx:vertx-core:jar:3.5.0:compile
|  +- io.netty:netty-common:jar:4.1.15.Final:compile
|  +- io.netty:netty-buffer:jar:4.1.15.Final:compile
|  +- io.netty:netty-transport:jar:4.1.15.Final:compile
|  +- io.netty:netty-handler:jar:4.1.15.Final:compile
|  |  \- io.netty:netty-codec:jar:4.1.15.Final:compile
|  +- io.netty:netty-handler-proxy:jar:4.1.15.Final:compile
|  |  \- io.netty:netty-codec-socks:jar:4.1.15.Final:compile
|  +- io.netty:netty-codec-http:jar:4.1.15.Final:compile
|  +- io.netty:netty-codec-http2:jar:4.1.15.Final:compile
|  +- io.netty:netty-resolver:jar:4.1.15.Final:compile
|  +- io.netty:netty-resolver-dns:jar:4.1.15.Final:compile
|  |  \- io.netty:netty-codec-dns:jar:4.1.15.Final:compile
|  +- com.fasterxml.jackson.core:jackson-core:jar:2.9.1:compile
|  \- com.fasterxml.jackson.core:jackson-databind:jar:2.9.1:compile
+- io.vertx:vertx-web:jar:3.5.0:compile
|  +- io.vertx:vertx-auth-common:jar:3.5.0:compile
|  \- io.vertx:vertx-bridge-common:jar:3.5.0:compile
+- io.vertx:vertx-web-client:jar:3.5.0:compile
|  \- io.vertx:vertx-web-common:jar:3.5.0:compile
+- io.vertx:vertx-unit:jar:3.5.0:compile
+- junit:junit:jar:4.12:compile
|  \- org.hamcrest:hamcrest-core:jar:1.3:compile
\- com.x.y:0.0.1-SNAPSHOT:compile
   +- com.google.cloud:google-cloud-spanner:jar:0.32.0-beta:compile
   |  +- io.netty:netty-tcnative-boringssl-static:jar:2.0.6.Final:test
   |  +- com.google.cloud:google-cloud-core:jar:1.14.0:compile
   |  |  +- com.google.guava:guava:jar:20.0:compile
   |  |  +- org.json:json:jar:20160810:compile
   |  |  +- com.google.http-client:google-http-client:jar:1.23.0:compile
   |  |  |  \- org.apache.httpcomponents:httpclient:jar:4.5.3:compile
   |  |  |     +- org.apache.httpcomponents:httpcore:jar:4.4.7:compile
   |  |  |     +- commons-logging:commons-logging:jar:1.2:compile
   |  |  |     \- commons-codec:commons-codec:jar:1.10:compile
   |  |  +- com.google.api:api-common:jar:1.2.0:compile
   |  |  +- com.google.api:gax:jar:1.15.0:compile
   |  |  +- com.google.protobuf:protobuf-java-util:jar:3.4.0:compile
   |  |  +- com.google.api.grpc:proto-google-common-protos:jar:1.0.2:compile
   |  |  \- com.google.api.grpc:proto-google-iam-v1:jar:0.1.26:compile
   |  +- com.google.cloud:google-cloud-core-grpc:jar:1.14.0:compile
   |  |  +- com.google.auth:google-auth-library-credentials:jar:0.9.0:compile
   |  |  +- com.google.protobuf:protobuf-java:jar:3.4.0:compile
   |  |  +- io.grpc:grpc-protobuf:jar:1.7.0:compile
   |  |  |  \- io.grpc:grpc-protobuf-lite:jar:1.7.0:compile
   |  |  \- io.grpc:grpc-context:jar:1.7.0:compile
   |  +- com.google.api:gax-grpc:jar:1.15.0:compile
   |  |  +- com.google.auto.value:auto-value:jar:1.2:compile
   |  |  +- org.threeten:threetenbp:jar:1.3.3:compile
   |  |  \- com.google.auth:google-auth-library-oauth2-http:jar:0.9.0:compile
   |  |     \- com.google.http-client:google-http-client-jackson2:jar:1.19.0:compile
   |  +- com.google.api.grpc:proto-google-cloud-spanner-v1:jar:0.1.26:compile
   |  +- com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:jar:0.1.26:compile
   |  +- com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:jar:0.1.26:compile
   |  +- com.google.api.grpc:grpc-google-cloud-spanner-v1:jar:0.1.26:compile
   |  +- com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:jar:0.1.26:compile
   |  +- com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:jar:0.1.26:compile
   |  +- com.google.api.grpc:grpc-google-common-protos:jar:1.0.2:compile
   |  +- io.grpc:grpc-netty:jar:1.7.0:compile
   |  |  \- io.grpc:grpc-core:jar:1.7.0:compile (version selected from constraint [1.7.0,1.7.0])
   |  |     +- com.google.errorprone:error_prone_annotations:jar:2.0.19:compile
   |  |     +- com.google.instrumentation:instrumentation-api:jar:0.4.3:compile
   |  |     \- io.opencensus:opencensus-api:jar:0.6.0:compile
   |  +- io.grpc:grpc-auth:jar:1.7.0:compile
   |  +- io.grpc:grpc-stub:jar:1.7.0:compile
   |  +- com.google.code.findbugs:jsr305:jar:3.0.0:compile
   |  \- joda-time:joda-time:jar:2.9.2:compile
   +- org.slf4j:slf4j-api:jar:1.7.25:compile

The environment I’m developing on is the following:

OS: MacOSX JDK Version: 1.8.0_152 Spanner Driver version: 0.32.0-beta

I believe this is a gRPC error. I have tried excluding dependencies such as grpc-netty but that hasn’t sorted the issue yet.

Issue Analytics

  • State:closed
  • Created 6 years ago
  • Comments:23 (8 by maintainers)

github_iconTop GitHub Comments

12reactions
n0mercommented, Jan 4, 2018

@garrettjonesgoogle @fmatar in my case problem was in the OS itself. Once i changed OS from java:8-jre-alpine to openjdk:8-jre-slim, problem disappeared.

2reactions
garrettjonesgooglecommented, Jan 2, 2018

io.netty:netty-common:jar:4.1.15.Final and io.grpc:grpc-netty:jar:1.7.0 aren’t compatible. See https://github.com/grpc/grpc-java/blob/master/SECURITY.md#netty for a table of compatible versions; it looks like you’ll need 4.1.16 of netty.

Read more comments on GitHub >

github_iconTop Results From Across the Web

org/eclipse/jetty/alpn/ALPN, but I have access to this class ...
Caused by: java.lang.ClassNotFoundException: org/eclipse/jetty/alpn/ALPN at java.lang.Class.forName0(Native Method) at java.lang.Class.
Read more >
Getting java.lang.NoClassDefFoundError: org/eclipse/jetty ...
java.lang.NoClassDefFoundError: org/eclipse/jetty/alpn/ALPN$Provider. at io.netty.handler.ssl.JdkAlpnApplicationProtocolNegotiator$1.
Read more >
org/eclipse/jetty/alpn/ALPN, but I have access to this class ...
Caused by: java.lang.ClassNotFoundException: org/eclipse/jetty/alpn/ALPN at java.lang.Class.forName0(Native Method) at java.lang.Class.
Read more >
1.1.3.v20160715 - Maven Central Repository Search
Official search by the maintainers of Maven Central Repository.
Read more >
[jira] [Created] (HDDS-5352) java.lang.ClassNotFoundException
ClassNotFoundException : org/eclipse/jetty/alpn/ALPN Key: HDDS-5352 URL: https://issues.apache.org/jira/browse/HDDS-5352 Project: Apache ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found