Apache flink 在示例中找不到StateFunctionModule,未定义路由器错误

Apache flink 在示例中找不到StateFunctionModule,未定义路由器错误,apache-flink,flink-statefun,Apache Flink,Flink Statefun,我可以举个例子 但是我将代码复制到了另一个目录,并在pom.xml中使用了相同的依赖项,这引发了一个错误,即没有定义路由器 我调试并发现未找到扩展了StateFunModule的MyModule。因此,类加载器没有模块,路由器和函数大小为0,并且在验证步骤中失败。(检查入口、出口、路由器、func的步骤不是0) PS:我刚刚复制了所有代码,因此也包括了@AutoService。根据,它应该可以在没有进一步配置的情况下工作 更新: 似乎它的statefun问题与@AutoService 我在另一

我可以举个例子

但是我将代码复制到了另一个目录,并在
pom.xml
中使用了相同的依赖项,这引发了一个错误,即
没有定义路由器

我调试并发现未找到扩展了StateFunModule的
MyModule
。因此,类加载器没有模块,路由器和函数大小为0,并且在验证步骤中失败。(检查入口、出口、路由器、func的步骤不是0)

PS:我刚刚复制了所有代码,因此也包括了
@AutoService
。根据,它应该可以在没有进一步配置的情况下工作


更新: 似乎它的statefun问题与
@AutoService

我在另一个项目的pom中添加了以下代码(与statefun无关)


com.google.auto.service
汽车服务
1.0-rc6
真的
它起作用,生成META-INF

但是如果使用

        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>statefun-flink-distribution</artifactId>
            <version>2.2-SNAPSHOT</version>
        </dependency>

org.apache.flink
斯塔芬-弗林克分布
2.2-2快照
META-INF没有生成,我在statefun中发现,使用的依赖关系实际上是

        <dependency>
            <groupId>com.google.auto.service</groupId>
            <artifactId>auto-service</artifactId>
            <version>1.0-rc6</version>
            <optional>true</optional>
        </dependency>

com.google.auto.service
汽车服务
1.0-rc6
真的

我测试了这种依赖性,它无法生成META-INF,我很好奇,为什么如果我们直接克隆statefun repo和
mvn clean package
,它可以工作。

不确定是什么问题,但也许有另一个例子会有所帮助。您可以看看@DavidAnderson,我认为应该毫不费力地执行具有不同位置和0代码更改的示例,在flink statefun workshop中编写线束测试时遇到的问题是,我必须使用与statefun中使用的protobuf版本完全相同的protobuf,但在其他方面,它非常简单。该测试已通过。@Litchy您能否验证您的jar是否确实包含META-INF/services/org.apache.flink.statefun.sdk.spi.StatefulFunctionModule,并且它的内容指向您的MyModule类?@Igal我想您明白了。在这个例子中,有正确的META-INF,但在我复制它并构建之后,这个META-INF并没有生成。但是谁控制这个操作,除了复制和生成之外,我还需要额外的代码吗?
        <dependency>
            <groupId>com.google.auto.service</groupId>
            <artifactId>auto-service</artifactId>
            <version>1.0-rc6</version>
            <optional>true</optional>
        </dependency>