2016-09-10 9 views
1

Cloud Bigtableに接続しようとしています。しかし、私はnetty-tcnativeで問題が見つかりません。Google Cloud Bigtable Javaクライアント - tcnativeエラー

Mavenの依存関係:

<dependency> 
    <groupId>com.google.cloud.bigtable</groupId> 
    <artifactId>bigtable-hbase-1.2</artifactId> 
    <version>0.9.2</version> 
</dependency> 

<dependency> 
    <groupId>io.netty</groupId> 
    <artifactId>netty-tcnative-boringssl-static</artifactId> 
    <version>1.1.33.Fork19</version> 
</dependency> 

エラー出力:

ERROR 2016-09-09 22:26:00,969 [main] com.google.cloud.bigtable.grpc.BigtableSession: Neither Jetty ALPN nor OpenSSL are available. OpenSSL unavailability cause: 
java.lang.IllegalArgumentException: Failed to load any of the given libraries: [netty-tcnative-osx-x86_64, netty-tcnative]  
Exception in thread "BigtableSession-startup-2" java.lang.ExceptionInInitializerError 
at com.google.cloud.bigtable.grpc.BigtableSession$3.run(BigtableSession.java:194) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.IllegalStateException: zip file closed 
at java.util.zip.ZipFile.ensureOpen(ZipFile.java:634) 
at java.util.zip.ZipFile.getEntry(ZipFile.java:305) 
at java.util.jar.JarFile.getEntry(JarFile.java:227) 
at java.util.jar.JarFile.getJarEntry(JarFile.java:210) 
at sun.misc.URLClassPath$JarLoader.getResource(URLClassPath.java:840) 
at sun.misc.URLClassPath.getResource(URLClassPath.java:199) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:358) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
at org.mule.module.launcher.FineGrainedControlClassLoader.findClass(FineGrainedControlClassLoader.java:175) 
at org.mule.module.launcher.MuleApplicationClassLoader.findClass(MuleApplicationClassLoader.java:134) 
at org.mule.module.launcher.FineGrainedControlClassLoader.loadClass(FineGrainedControlClassLoader.java:119) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
at com.google.bigtable.repackaged.io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:36) 
at com.google.bigtable.repackaged.io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:58) 
at com.google.bigtable.repackaged.io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:47) 
at com.google.bigtable.repackaged.io.netty.channel.MultithreadEventLoopGroup.<init>(MultithreadEventLoopGroup.java:58) 
at com.google.bigtable.repackaged.io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:77) 
at com.google.bigtable.repackaged.io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:72) 
at com.google.bigtable.repackaged.io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:59) 
at com.google.cloud.bigtable.grpc.BigtableSessionSharedThreadPools.init(BigtableSessionSharedThreadPools.java:85) 
at com.google.cloud.bigtable.grpc.BigtableSessionSharedThreadPools.<init>(BigtableSessionSharedThreadPools.java:77) 
at com.google.cloud.bigtable.grpc.BigtableSessionSharedThreadPools.<clinit>(BigtableSessionSharedThreadPools.java:45) 
... 4 more 
Exception in thread "BigtableSession-startup-1" java.lang.IllegalStateException: zip file closed 
at java.util.zip.ZipFile.ensureOpen(ZipFile.java:634) 
at java.util.zip.ZipFile.getEntry(ZipFile.java:305) 
at java.util.jar.JarFile.getEntry(JarFile.java:227) 
at java.util.jar.JarFile.getJarEntry(JarFile.java:210) 
at sun.misc.URLClassPath$JarLoader.getResource(URLClassPath.java:840) 
at sun.misc.URLClassPath.getResource(URLClassPath.java:199) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:358) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
at org.mule.module.launcher.FineGrainedControlClassLoader.findClass(FineGrainedControlClassLoader.java:175) 
at org.mule.module.launcher.MuleApplicationClassLoader.findClass(MuleApplicationClassLoader.java:134) 
at org.mule.module.launcher.FineGrainedControlClassLoader.loadClass(FineGrainedControlClassLoader.java:119) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
at com.google.bigtable.repackaged.com.google.api.client.http.javanet.NetHttpTransport$Builder.trustCertificates(NetHttpTransport.java:270) 
at com.google.bigtable.repackaged.com.google.api.client.googleapis.javanet.GoogleNetHttpTransport.newTrustedTransport(GoogleNetHttpTransport.java:55) 
at com.google.cloud.bigtable.config.CredentialFactory.getHttpTransport(CredentialFactory.java:94) 
at com.google.cloud.bigtable.grpc.BigtableSession$2.run(BigtableSession.java:183) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
at java.lang.Thread.run(Thread.java:745) 

答えて

2

この問題は、ミュールのクラスローダによるものでした。 Muleは独自のクラスローダーで各アプリケーションを実行します。これをアプリクラスローダではなくMuleの共通クラスローダ(java.class.path)に移動する必要があります。 BigTableクライアントライブラリとtcnativeの両方が同じクラスパスにあることを保証します。

この問題は、Tomcatなどの他のコンテナでも同様のクラスローダーパターンに従うため発生します。

+1

mule-deploy.propertiesに以下を追加すると、親ではなくファイングレインクラスローダーを使用して、クラスローダーの問題が修正されます。 loader.override = io.netty、org.apache.tomcat、com.google – mnouh1

+0

これを解決できてうれしいです。 –

関連する問題