における非既存の機能にグアバ前提条件checkArgumentを呼び出します。Apacheのビーム2.1.0は、私は(Google App Engineのから)のStackdriverログに次のエラーを取得するGAE
java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;I)V at org.apache.beam.sdk.io.gcp.datastore.DatastoreV1$Read.withQuery(DatastoreV1.java:494) .... my code
これは、データストアからの読み取りが生成される行で発生します。ポンポン依存
<!-- https://mvnrepository.com/artifact/org.apache.beam/beam-sdks-java-io-google-cloud-platform -->
<dependency>
<groupId>org.apache.beam</groupId>
<artifactId>beam-sdks-java-io-google-cloud-platform</artifactId>
<version>2.1.0</version>
</dependency>
参照
<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>20.0</version>
</dependency>
しかし、このバージョンは、クラスの前提条件に方法checkArgument(文字列)を含有し、また私は見て他のバージョンをしていません。前述のように、テンプレートはGAEの柔軟な環境プロジェクト内に構築して後で実行する必要がありますが、テンプレートの生成は失敗します。
メイン関数でローカルにテンプレートを生成させると、正常に動作しますが、プロジェクトがGAEに入るとすぐに失敗します。
任意の入力は非常に
EDITを理解されたい。com.google.guavaの依存関係ツリーを:
[INFO] xy.company_name.test:bcc.dataflow.project_name:war:0.0.3
[INFO] \- org.apache.beam:beam-runners-google-cloud-dataflow-java:jar:2.1.0:compile
[INFO] +- org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:jar:2.1.0:compile
[INFO] | \- com.google.cloud.bigdataoss:gcsio:jar:1.4.5:compile
[INFO] | \- (com.google.guava:guava:jar:18.0:compile - omitted for conflict with 20.0)
[INFO] +- org.apache.beam:beam-sdks-java-io-google-cloud-platform:jar:2.1.0:compile
[INFO] | +- io.grpc:grpc-core:jar:1.2.0:compile
[INFO] | | \- (com.google.guava:guava:jar:19.0:compile - omitted for conflict with 20.0)
[INFO] | +- com.google.api:gax-grpc:jar:0.20.0:compile
[INFO] | | +- io.grpc:grpc-protobuf:jar:1.2.0:compile
[INFO] | | | +- (com.google.guava:guava:jar:19.0:compile - omitted for duplicate)
[INFO] | | | \- io.grpc:grpc-protobuf-lite:jar:1.2.0:compile
[INFO] | | | \- (com.google.guava:guava:jar:19.0:compile - omitted for duplicate)
[INFO] | | +- com.google.api:api-common:jar:1.1.0:compile
[INFO] | | | \- (com.google.guava:guava:jar:19.0:compile - omitted for duplicate)
[INFO] | | +- (com.google.guava:guava:jar:19.0:compile - omitted for duplicate)
[INFO] | | \- com.google.api:gax:jar:1.3.1:compile
[INFO] | | \- (com.google.guava:guava:jar:19.0:compile - omitted for duplicate)
[INFO] | +- com.google.cloud:google-cloud-core-grpc:jar:1.2.0:compile
[INFO] | | +- (com.google.guava:guava:jar:19.0:compile - omitted for duplicate)
[INFO] | | \- com.google.protobuf:protobuf-java-util:jar:3.2.0:compile
[INFO] | | \- (com.google.guava:guava:jar:18.0:compile - omitted for conflict with 19.0)
[INFO] | +- com.google.cloud.datastore:datastore-v1-proto-client:jar:1.4.0:compile
[INFO] | | \- (com.google.guava:guava:jar:18.0:compile - omitted for conflict with 19.0)
[INFO] | +- io.grpc:grpc-all:jar:1.2.0:runtime
[INFO] | | \- io.grpc:grpc-protobuf-nano:jar:1.2.0:runtime
[INFO] | | \- (com.google.guava:guava:jar:19.0:runtime - omitted for duplicate)
[INFO] | +- com.google.cloud:google-cloud-core:jar:1.0.2:compile
[INFO] | | \- (com.google.guava:guava:jar:19.0:compile - omitted for duplicate)
[INFO] | +- com.google.cloud.bigtable:bigtable-protos:jar:0.9.7.1:compile
[INFO] | | \- (com.google.guava:guava:jar:19.0:compile - omitted for duplicate)
[INFO] | +- com.google.cloud.bigtable:bigtable-client-core:jar:0.9.7.1:compile
[INFO] | | +- com.google.auth:google-auth-library-appengine:jar:0.6.1:compile
[INFO] | | | \- (com.google.guava:guava:jar:19.0:compile - omitted for duplicate)
[INFO] | | \- (com.google.guava:guava:jar:19.0:compile - omitted for duplicate)
[INFO] | \- com.google.guava:guava:jar:20.0:compile
[INFO] +- com.google.auth:google-auth-library-oauth2-http:jar:0.7.1:compile
[INFO] | \- (com.google.guava:guava:jar:19.0:compile - omitted for conflict with 20.0)
[INFO] \- com.google.cloud.bigdataoss:util:jar:1.4.5:compile
[INFO] \- (com.google.guava:guava:jar:18.0:compile - omitted for conflict with 20.0)
UPDATE:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>20.0</version>
</dependency>
</dependencies>
</dependencyManagement>
の追加と更新後関数DatastoreEntitiesを処理すると、再び動作するようです! ご迷惑をおかけして申し訳ありませんが、時には問題の構造化に役立ち、stackoverflowは大きな助けとなります。
ありがとうございました! Google AppEngineでテンプレートの生成が失敗し、ローカルではない理由を教えてください。 GAEでどのバージョンが使用されているかを確認する方法はありますか? – user2122552
質問が更新されました。ベン、ありがとう – user2122552