2017-08-16 68 views
0

所以我有看過之前使用,但所有嘗試其他修復都沒有奏效問題。我與谷歌扳手havinga問題,更具體地說在該行:Google Spanner | java.lang.IllegalArgumentException異常:碼頭ALPN/NPN沒有被正確配置

SpannerOptions options = SpannerOptions.newBuilder().build(); 

當我收到的堆棧錯誤:我嘗試添加Maven依賴等,但每次

WARNING: Error for /_ah/api/discovery/v1/apis/helloworld/v1/rest 
java.lang.ExceptionInInitializerError 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Unknown Source) 
    at com.google.api.server.spi.ServletInitializationParameters.getClassForName(ServletInitializationParameters.java:115) 
    at com.google.api.server.spi.ServletInitializationParameters.fromServletConfig(ServletInitializationParameters.java:72) 
    at com.google.api.server.spi.EndpointsServlet.init(EndpointsServlet.java:56) 
    at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:440) 
    at org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:339) 
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) 
    at com.google.appengine.api.socket.dev.DevSocketFilter.doFilter(DevSocketFilter.java:74) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:134) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:34) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:48) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectRequest(DevAppServerModulesFilter.java:366) 
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectModuleRequest(DevAppServerModulesFilter.java:349) 
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doFilter(DevAppServerModulesFilter.java:116) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) 
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) 
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) 
    at com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:95) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:508) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.Server.handle(Server.java:326) 
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 
    at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923) 
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547) 
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) 
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) 
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) 
Caused by: java.lang.IllegalArgumentException: Jetty ALPN/NPN has not been properly configured. 
    at io.grpc.netty.GrpcSslContexts.selectApplicationProtocolConfig(GrpcSslContexts.java:174) 
    at io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:151) 
    at io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:139) 
    at io.grpc.netty.GrpcSslContexts.forClient(GrpcSslContexts.java:109) 
    at com.google.cloud.spanner.SpannerOptions$NettyRpcChannelFactory.newSslContext(SpannerOptions.java:289) 
    at com.google.cloud.spanner.SpannerOptions$NettyRpcChannelFactory.newChannel(SpannerOptions.java:278) 
    at com.google.cloud.spanner.SpannerOptions.createChannel(SpannerOptions.java:252) 
    at com.google.cloud.spanner.SpannerOptions.createChannels(SpannerOptions.java:239) 
    at com.google.cloud.spanner.SpannerOptions.<init>(SpannerOptions.java:88) 
    at com.google.cloud.spanner.SpannerOptions.<init>(SpannerOptions.java:43) 
    at com.google.cloud.spanner.SpannerOptions$Builder.build(SpannerOptions.java:179) 
    at com.example.b612.SpannerTools.<init>(SpannerTools.java) 
    at com.example.b612.AsteroidList.<clinit>(AsteroidList.java) 
    ... 42 more 

Aug 16, 2017 5:13:55 PM com.google.apphosting.utils.jetty.JettyLogger warn 
WARNING: Nested in java.lang.ExceptionInInitializerError: 
java.lang.IllegalArgumentException: Jetty ALPN/NPN has not been properly configured. 
    at io.grpc.netty.GrpcSslContexts.selectApplicationProtocolConfig(GrpcSslContexts.java:174) 
    at io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:151) 
    at io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:139) 
    at io.grpc.netty.GrpcSslContexts.forClient(GrpcSslContexts.java:109) 
    at com.google.cloud.spanner.SpannerOptions$NettyRpcChannelFactory.newSslContext(SpannerOptions.java:289) 
    at com.google.cloud.spanner.SpannerOptions$NettyRpcChannelFactory.newChannel(SpannerOptions.java:278) 
    at com.google.cloud.spanner.SpannerOptions.createChannel(SpannerOptions.java:252) 
    at com.google.cloud.spanner.SpannerOptions.createChannels(SpannerOptions.java:239) 
    at com.google.cloud.spanner.SpannerOptions.<init>(SpannerOptions.java:88) 
    at com.google.cloud.spanner.SpannerOptions.<init>(SpannerOptions.java:43) 
    at com.google.cloud.spanner.SpannerOptions$Builder.build(SpannerOptions.java:179) 
    at com.example.b612.SpannerTools.<init>(SpannerTools.java) 
    at com.example.b612.AsteroidList.<clinit>(AsteroidList.java) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Unknown Source) 
    at com.google.api.server.spi.ServletInitializationParameters.getClassForName(ServletInitializationParameters.java:115) 
    at com.google.api.server.spi.ServletInitializationParameters.fromServletConfig(ServletInitializationParameters.java:72) 
    at com.google.api.server.spi.EndpointsServlet.init(EndpointsServlet.java:56) 
    at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:440) 
    at org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:339) 
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) 
    at com.google.appengine.api.socket.dev.DevSocketFilter.doFilter(DevSocketFilter.java:74) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:134) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:34) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:48) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectRequest(DevAppServerModulesFilter.java:366) 
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectModuleRequest(DevAppServerModulesFilter.java:349) 
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doFilter(DevAppServerModulesFilter.java:116) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) 
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) 
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) 
    at com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:95) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:508) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.Server.handle(Server.java:326) 
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 
    at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923) 
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547) 
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) 
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) 
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) 

它沒有做任何事情來解決我不斷收到的錯誤。我正在使用帶端點的應用程序引擎,隨後此應用程序引擎將啓動計算引擎。這是我目前的pom.xml文件:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 

    <modelVersion>4.0.0</modelVersion> 
    <packaging>war</packaging> 
    <version>1.0-SNAPSHOT</version> 

    <groupId>com.example.b612</groupId> 
    <artifactId>AsteroidEndpointTest</artifactId> 

    <properties> 
     <maven.compiler.source>1.7</maven.compiler.source> 
     <maven.compiler.target>1.7</maven.compiler.target> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 


    <dependencies> 
     <!-- Compile/runtime dependencies --> 
     <!-- Uncomment to use Endpoints Frameworks v1.0 and comment the v2.0 section --> 
     <!--<dependency> 
       <groupId>com.google.appengine</groupId> 
       <artifactId>appengine-endpoints</artifactId> 
       <version>1.9.53</version> 
     </dependency>--> 
     <!-- End of Endpoints Frameworks v1.0 --> 
     <!-- Endpoints Frameworks v2.0 --> 
     <dependency> 
      <groupId>com.google.endpoints</groupId> 
      <artifactId>endpoints-framework</artifactId> 
      <version>2.0.7</version> 
     </dependency> 
     <!-- End of Endpoints Frameworks v2.0 --> 
     <dependency> 
      <groupId>com.google.appengine</groupId> 
      <artifactId>appengine-api-1.0-sdk</artifactId> 
      <version>1.9.54</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>servlet-api</artifactId> 
      <version>2.5</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>javax.inject</groupId> 
      <artifactId>javax.inject</artifactId> 
      <version>1</version> 
     </dependency> 
     <dependency> 
      <groupId>com.google.cloud</groupId> 
      <artifactId>google-cloud-spanner</artifactId> 
      <version>0.21.1-beta</version> 
      <exclusions> 
       <exclusion> <!-- exclude an old version of Guava --> 
        <groupId>com.google.guava</groupId> 
        <artifactId>guava-jdk5</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>com.google.guava</groupId> 
      <artifactId>guava</artifactId> 
      <version>20.0</version> 
     </dependency> 
     <dependency> 
      <groupId>com.google.cloud</groupId> 
      <artifactId>google-cloud</artifactId> 
      <version>0.21.1-alpha</version> 
     </dependency> 
     <dependency> 
      <groupId>com.google.apis</groupId> 
      <artifactId>google-api-services-compute</artifactId> 
      <version>v1-rev154-1.22.0</version> 
     </dependency> 
<dependency> 
<groupId>com.google.api-client</groupId> 
<artifactId>google-api-client</artifactId> 
<version>1.22.0</version> 
</dependency> 
<dependency> 
<groupId>com.google.api-client</groupId> 
<artifactId>google-api-client-appengine</artifactId> 
<version>1.22.0</version> 
</dependency> 
<dependency> 
<groupId>com.google.http-client</groupId> 
<artifactId>google-http-client-appengine</artifactId> 
<version>1.22.0</version> 
</dependency> 
<dependency> 
<groupId>com.google.http-client</groupId> 
<artifactId>google-http-client</artifactId> 
<version>1.22.0</version> 
</dependency> 
<dependency> 
<groupId>com.google.oauth-client</groupId> 
<artifactId>google-oauth-client</artifactId> 
<version>1.22.0</version> 
</dependency> 
<dependency> 
<groupId>com.google.oauth-client</groupId> 
<artifactId>google-oauth-client-servlet</artifactId> 
<version>1.22.0</version> 
</dependency> 
<dependency> 
<groupId>com.google.oauth-client</groupId> 
<artifactId>google-oauth-client-appengine</artifactId> 
<version>1.22.0</version> 
</dependency> 
<dependency> 
<groupId>com.google.http-client</groupId> 
<artifactId>google-http-client-jackson2</artifactId> 
<version>1.22.0</version> 
</dependency> 
<dependency> 
<groupId>com.google.http-client</groupId> 
<artifactId>google-http-client-jackson</artifactId> 
<version>1.22.0</version> 
</dependency> 
<dependency> 
<groupId>org.codehaus.jackson</groupId> 
<artifactId>jackson-core-asl</artifactId> 
<version>1.9.13</version> 
</dependency> 
<dependency> 
<groupId>com.fasterxml.jackson.core</groupId> 
<artifactId>jackson-core</artifactId> 
<version>2.9.0.pr2</version> 
</dependency> 
<dependency> 
<groupId>com.google.cloud</groupId> 
<artifactId>google-cloud-core</artifactId> 
<version>1.0.0</version> 
</dependency> 
<dependency> 
<groupId>com.google.auth</groupId> 
<artifactId>google-auth-library-oauth2-http</artifactId> 
<version>0.6.1</version> 
</dependency> 
<dependency> 
<groupId>com.google.auth</groupId> 
<artifactId>google-auth-library-credentials</artifactId> 
<version>0.6.1</version> 
</dependency> 
<dependency> 
<groupId>joda-time</groupId> 
<artifactId>joda-time</artifactId> 
<version>2.9.2</version> 
</dependency> 
<dependency> 
<groupId>org.json</groupId> 
<artifactId>json</artifactId> 
<version>20151123</version> 
</dependency> 
<dependency> 
<groupId>com.google.protobuf</groupId> 
<artifactId>protobuf-java</artifactId> 
<version>3.0.0</version> 
</dependency> 
<dependency> 
<groupId>com.google.protobuf</groupId> 
<artifactId>protobuf-java-util</artifactId> 
<version>3.0.0</version> 
</dependency> 
<dependency> 
<groupId>com.google.api</groupId> 
<artifactId>gax</artifactId> 
<version>1.0.0</version> 
</dependency> 
</dependencies> 

    <build> 
     <!-- for hot reload of the web application--> 
     <outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/classes</outputDirectory> 
     <plugins> 
      <plugin> 
       <groupId>com.google.cloud.tools</groupId> 
       <artifactId>appengine-maven-plugin</artifactId> 
       <version>1.3.1</version> 
       <configuration> 
        <!-- deploy configuration --> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>com.google.cloud.tools</groupId> 
       <artifactId>endpoints-framework-maven-plugin</artifactId> 
       <version>1.0.0</version> 
       <configuration> 
        <!-- plugin configuration --> 
        <hostname>better-world-175517.appspot.com</hostname> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>versions-maven-plugin</artifactId> 
       <version>2.1</version> 
       <executions> 
        <execution> 
         <phase>compile</phase> 
         <goals> 
          <goal>display-dependency-updates</goal> 
          <goal>display-plugin-updates</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

任何幫助或建議,你可以提供非常感謝。

回答

0

從谷歌雲扳手文檔:

此頁面上提到的雲扳手客戶端庫支持谷歌計算引擎(GCE),谷歌應用程序引擎 - 靈活的環境,谷歌集裝箱引擎(GKE)和Google雲端功能。 Google App Engine - 標準環境Java 8 Beta支持Java雲端Spanner客戶端庫。

如果您正在使用谷歌應用程序引擎 - 標準環境中的Java 7,或谷歌應用程序引擎 - 一起去,PHP或者Python標準環境中,使用REST接口來訪問雲扳手。

來源:https://cloud.google.com/spanner/docs/reference/libraries

據我所看到的,你試圖結合Java 7中,這是不支持使用Java庫。

+0

我使用java8測試階段,因此切換行家編譯源和目標?它不幸地解決了這個問題。 –

+0

發現錯誤,不得不 java8添加到AppEngine上-web.xml中 –

相關問題