title: Can't connect to Bigtable from a Spring Boot application
body: <p>I have a standalone application that works fine with Bigtable when creating a connection like this:</p>
  
  <pre><code>Connection connection = BigtableConfiguration.connect(PROJECT_ID, INSTANCE_ID)
  </code></pre>
  
  <p>and using the following dependencies:</p>
  
  <pre><code>&lt;dependency&gt;
      &lt;groupId&gt;com.google.apis&lt;/groupId&gt;
      &lt;artifactId&gt;google-api-services-storage&lt;/artifactId&gt;
      &lt;version&gt;v1-rev78-1.22.0&lt;/version&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
      &lt;groupId&gt;com.google.apis&lt;/groupId&gt;
      &lt;artifactId&gt;google-api-services-pubsub&lt;/artifactId&gt;
      &lt;version&gt;v1-rev11-1.22.0&lt;/version&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
      &lt;groupId&gt;com.google.cloud.bigtable&lt;/groupId&gt;
      &lt;artifactId&gt;bigtable-hbase-1.2&lt;/artifactId&gt;
      &lt;version&gt;0.9.5&lt;/version&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
      &lt;groupId&gt;org.apache.hbase&lt;/groupId&gt;
      &lt;artifactId&gt;hbase-client&lt;/artifactId&gt;
      &lt;version&gt;1.2.4&lt;/version&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
      &lt;groupId&gt;io.netty&lt;/groupId&gt;
      &lt;artifactId&gt;netty-tcnative-boringssl-static&lt;/artifactId&gt;
      &lt;version&gt;1.1.33.Fork26&lt;/version&gt;
  &lt;/dependency&gt;
  </code></pre>
  
  <p>I'm converting it now to a Spring Boot web application, so I had to add this dependency:</p>
  
  <pre><code>&lt;dependency&gt;
      &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
      &lt;artifactId&gt;spring-boot-starter-web&lt;/artifactId&gt;
      &lt;version&gt;1.4.2.RELEASE&lt;/version&gt;
  &lt;/dependency&gt;
  </code></pre>
  
  <p>I haven't changed anything else at all, <strong>just added these 5 lines</strong> and now I'm getting this error:</p>
  
  <pre><code>java.lang.IllegalStateException: Could not find an appropriate constructor for com.google.cloud.bigtable.hbase1_1.BigtableConnection
      at com.google.cloud.bigtable.hbase.BigtableConfiguration.connect(BigtableConfiguration.java:88)
      at com.google.cloud.bigtable.hbase.BigtableConfiguration.connect(BigtableConfiguration.java:72)
      at poc.google.cloud.BigtableTest.testHelloWorld(BigtableTest.java:57)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
      at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
      at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
      at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
      at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
      at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
      at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
      at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
      at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
      at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
      at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
      at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
      at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
      at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
      at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78)
      at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212)
      at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
  Caused by: java.lang.reflect.InvocationTargetException
      at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
      at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
      at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
      at com.google.cloud.bigtable.hbase.BigtableConfiguration.connect(BigtableConfiguration.java:85)
      ... 28 more
  Caused by: java.lang.IllegalStateException: Neither Jetty ALPN nor OpenSSL via netty-tcnative were properly configured.
      at com.google.cloud.bigtable.grpc.BigtableSession.&lt;init&gt;(BigtableSession.java:258)
      at org.apache.hadoop.hbase.client.AbstractBigtableConnection.&lt;init&gt;(AbstractBigtableConnection.java:137)
      at org.apache.hadoop.hbase.client.AbstractBigtableConnection.&lt;init&gt;(AbstractBigtableConnection.java:104)
      at com.google.cloud.bigtable.hbase1_1.BigtableConnection.&lt;init&gt;(BigtableConnection.java:48)
      ... 33 more
  </code></pre>