【发布时间】:2018-07-12 11:39:38
【问题描述】:
我正在尝试制作一个接受侧面输入的自定义转换类,并且我正在使用 PipelineTester 和 PAssert 尝试对其进行测试,但是在尝试将其引入转换的方法上,我不断收到无此类方法异常来自其他类。
引起:java.lang.NoSuchMethodError: com.org.utils.MyUtils.createMap(Ljava/lang/Iterable;)Ljava/util/Map; 在 com.org.beam.MyTransform.ProcessElement(MyTransform.java:51)
我尝试过使用@Autowired 注解来引入类
@Autowired
private MyUtils myutils;
就像在代码中创建一个静态实例一样
private static MyUtils myUtils = new MyUtils();
然后调用
this.myUtils.createMap(mapThisToThat(inputCollection, this.myMap));
我也尝试过将方法设为静态并像这样调用它们
MyUtils.createMap(mapThisToThat(inputCollection, this.myMap));
mapThisToThat 的签名是
private Iterable<MyObject> mapThisToThat(Iterable<MyObject> objectIterator, Map<String, Integer> myMap) {
正在传递给具有此签名的 createMap 方法 -
public Map<String, MyObject> createMap(Iterable<MyObject> inputCollection){
所以它正确地传递了 MyObjects 的 Iterable,但它说由于某种原因该方法不存在。这是否意味着光束变换不能有外部方法或者我做错了什么?
【问题讨论】:
标签: java google-cloud-platform google-cloud-dataflow apache-beam