【问题标题】:java.lang.NoClassDefFoundError: org/apache/beam/sdk/runners/PipelineRunner after migrating to dataflow 2.xjava.lang.NoClassDefFoundError:迁移到数据流 2.x 后的 org/apache/beam/sdk/runners/PipelineRunner
【发布时间】:2017-11-16 22:00:54
【问题描述】:

得到运行时错误:

"java.lang.NoClassDefFoundError: org/apache/beam/sdk/runners/PipelineRunner"

即使我的 pom.xml 中有以下内容

<dependency>
        <groupId>com.google.cloud.dataflow</groupId>
        <artifactId>google-cloud-dataflow-java-sdk-all</artifactId>
        <version>[2.1.0, 2.99)</version>
    </dependency>

迁移到 2.X 后,所有编译时错误都已解决,开始出现运行时错误。

在这个项目上的 mvn compile 也报告成功。就在我尝试从 Eclipse 运行管道时出现此错误。

【问题讨论】:

  • 你能发布更完整的 pom.xml 吗?你正在建造一个胖罐子来运行吗?最可能的原因是您的 jar 或类路径中未包含梁 jar。

标签: google-cloud-dataflow apache-beam


【解决方案1】:

我在pom.xml 中添加了以下内容,并删除了pom.xml 中的所有运行配置文件,错误已解决。

<dependency>
      <groupId>org.apache.beam</groupId>
      <artifactId>beam-runners-google-cloud-dataflow-java</artifactId>
      <version>[2.1.0, 2.99)</version>
    </dependency>

【讨论】:

  • 上面的解决方案也对我有用。我必须确保删除项目的 POM 文件中的运行配置文件(包含在 中),然后 Eclipse 能够运行而不会在上述 PUG 的问题中引发运行时错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多