I identified the root-cause of the problem: When the FlinkUserCodeClassLoader ist created it simply instantiates the URLClassLoader which takes the System-Classloader as parent. However in the web-application-setting the current thread-webapp-classloader should be taken. I tried to change the class slightly to take the "right" threads class loader as parent. private static class FlinkUserCodeClassLoader extends URLClassLoader { public FlinkUserCodeClassLoader(URL[] urls) { super(urls, Thread.currentThread().getContextClassLoader());}}
Unfortunately there are multiple places where the system-classloader ist taken instead of the thread class loader: flink-runtime/src/main/java/org/apache/flink/runtime/accumulators/AccumulatorSnapshot.java That solved my problem for the moment. However, I am not sure if that introduces problems somewhere else. In theory it should not be critical since the web-appclassloader simply introduces an additional level of classes to look for. It would cool if that problem could be resolved in flink ;-) -- View this message in context: http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/ClassNotFoundException-org-apache-flink-api-common-operators-util-UserCodeObjectWrapper-while-tryingy-tp5922p9653.html Sent from the Apache Flink Mailing List archive. mailing list archive at Nabble.com.