I want to list remote files (images), saved in a server repository and then use the Image Reader (Table) Remote to see the images in the workflow. But the Image Reader Node failes with the following error: “ERROR Image Reader (Table) Remote 0:88 Execute failed: No resulver found for location: org.knime.knip.io2.resolver.DefaultKNIMELocationService [priority = 10000.0]”
Log:
2020-06-09 14:20:48,906 : ERROR : KNIME-Worker-42-Image Reader (Table) Remote 0:88 : : Node : Image Reader (Table) Remote : 0:88 : Execute failed: No resulver found for location: org.knime.knip.io2.resolver.DefaultKNIMELocationService [priority = 10000.0]
java.lang.IllegalArgumentException: No resulver found for location: org.knime.knip.io2.resolver.DefaultKNIMELocationService [priority = 10000.0]
at org.knime.knip.io2.nodes.imgreader3.table.ImgReaderTableNodeModel.execute(ImgReaderTableNodeModel.java:123)
at org.knime.core.node.NodeModel.executeModel(NodeModel.java:571)
at org.knime.core.node.Node.invokeFullyNodeModelExecute(Node.java:1236)
at org.knime.core.node.Node.execute(Node.java:1016)
at org.knime.core.node.workflow.NativeNodeContainer.performExecuteNode(NativeNodeContainer.java:557)
at org.knime.core.node.exec.LocalNodeExecutionJob.mainExecute(LocalNodeExecutionJob.java:95)
at org.knime.core.node.workflow.NodeExecutionJob.internalRun(NodeExecutionJob.java:218)
at org.knime.core.node.workflow.NodeExecutionJob.run(NodeExecutionJob.java:124)
at org.knime.core.util.ThreadUtils$RunnableWithContextImpl.runWithContext(ThreadUtils.java:334)
at org.knime.core.util.ThreadUtils$RunnableWithContext.run(ThreadUtils.java:210)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.knime.core.util.ThreadPool$MyFuture.run(ThreadPool.java:123)
at org.knime.core.util.ThreadPool$Worker.run(ThreadPool.java:246)
I was able to reproduce the issue, @sven-abx. @gab1one has worked on this implementation, so I am hoping for some additional insight from him. Let’s see if he can shed some light on the issue when he is back from vacation…
This sounds like you are training the model on Server as well: If so, have you tried working around the issue by referencing the images via the knime protocol? Another workaround would be to Download the images and use the regular Image Reader (Table)…
Hi Stefan,
my goal is to run the complete workflow on the server. on my local machine i just want to prepare the images, upload them to the server repo an then execute the training workflow.
In that case, knime:// URIs should be resolved properly on KNIME Server if you use the “regular” Image Reader (Table). Be careful, though, that List Remote Files returns http(s):// links to the files so you can’t readily use that. Instead, use the List Files node and point it to a folder on KNIME Server, for instance, knime://knime.mountpoint/path/to/images/in/repository.
i used the remote fie list, because list files was not able to resolve the path (also when i tried knime://).
so i builed a workaround with some string manipilation.
List Files and: Ansoluite URL:
knime://knime-srv/Projects/Data/Source leads to: Error: remote directories are not supported Mountpoint-relative URL:
knime://knime.mountpoint/Projects/Images leads to: Error: remote directories are not supported knime.workspace and knime.workflow:
Error: input directory does not exist
Sorry for the confusion: knime.workspace in my previous message should have read knime.mountpoint!
I was able to load an image using relative paths in this workflow when it is executed on KNIME Server. In order to build and configure such a workflow, you’ll have to have a copy of your Images/ folder (with only a couple of images) in your LOCAL workspace. This helps since the relative paths point to something meaningful locally as well.
Since KNIME Server takes care of providing access to the images in a Distributed Executor setup as well, this workflow does also work when executor and KNIME Server are running on different machines (as I have just tested).
Let me know if you are experiencing issues with using knime://knime.mountpoint and knime://knime.workflow as shown in my example workflow…
Best,
Stefan
EDIT: Please make sure to add a Column Filter node that removes the Location column before passing the table to Image Reader (Table). If you don’t, the Image Reader (Table) node will try to use the empty Location and fail to execute. This is due to auto-guessing which column to use, if there are multiple putative columns for the location of images.