You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@flink.apache.org by Christopher Gustafson <ch...@kth.se> on 2022/03/21 11:43:11 UTC

Protobuf ClassNotFound for Embedded Module

Hi,


I am trying to run a StateFun job with a custom ingress for extracting additional headers from Kafka, but I am having issues where the Protobuf classes are not being found:


statefun-manager_1         | Caused by: java.lang.ClassNotFoundException: org.apache.flink.statefun.playground.java.shoppingcart.protos.AddToCart
statefun-manager_1         |     at java.net.URLClassLoader.findClass(URLClassLoader.java:387) ~[?:1.8.0_322]
statefun-manager_1         |     at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[?:1.8.0_322]
statefun-manager_1         |     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352) ~[?:1.8.0_322]
statefun-manager_1         |     at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[?:1.8.0_322]
statefun-manager_1         |     at java.lang.Class.forName0(Native Method) ~[?:1.8.0_322]
statefun-manager_1         |     at java.lang.Class.forName(Class.java:348) ~[?:1.8.0_322]
statefun-manager_1         |     at org.apache.flink.statefun.flink.core.message.MessagePayloadSerializerPb.findParser(MessagePayloadSerializerPb.java:93) ~[statefun-flink-core.jar:3.2.0]


The setup I am using is using a embedded module, that is built as a fat jar and added to the runtime image as indicated in the documentation. I have tried both using the maven plugin for generting the Protobuf sources, like they do in the playground. I have also tried compiling the Protobuf classes myself and adding these to the source directory, but flink is not able to find them anyhow. Any idea of what I could be doing wrong?


Best Regards,

Christopher Gustafson