Preview KNIME AP 4.4 -- Java 11 & Eclipse Upgrade

Thanks Gabriel. I have accepted the same.

Do I need to install a new SDK version (new eclipse) to update any extensions?

I recommend you to use at at least eclipse 2021-03. Also use a fresh eclipse workspace

Hi @ravikiran and @gab1one,

Have you been able to come up with a solution to this problem. I am trying to develop a node that wraps some PMML models in the XML format. It worked fine in Java 8, but I’m getting the same errors when I try the suggested solutions. So I would be interested in whatever was figured out.

Thanks
Reed

2 Likes

Hello,

We are facing issues with generic Web Service Client node in Knime 4.4.
Its working without any issues in Knime 4.3, with the WSDL provided, but the same wsdl is giving us an error while analysing in Generic Web Service Client in 4.4 as below:
“JAXBException: Noclassdeffounderror”
“Javax/xml/bind/JAXBException”
“caused by ClassNotFound Exception: javax.xml.bind.JAXBException cannot be found by org.apache.cxf_2.12.v201908122027”

We are on Windows 2019 virtual server. Please help.

Thanks You in advance!
Kavita

1 Like

Hi @rbjacob1,

Are you using Xalan / Xerces in your extension? This is the most likely origin of problems like this.

best,
Gabriel

1 Like

Hi @Kavita_Selkery

Are you able to share the WSDL with us so that I can try reproducing the issue? You could also do so via email to support@knime.com if you don’t want to post it on the forum.

best,
Gabriel

1 Like

Hello,
You were correct that it is trying to look for Xalan / Xerces. How do I prevent it from doing that, if its possible? I am trying to create a wrapper around an already existing JAR.

Thanks
Reed

1 Like

Hi @rbjacob1,

Can you share the exact error message with us? What usually worked for make sure Xalan / Xerces are not on the class path of the bundle.

best,
Gabriel

1 Like

@gab1one,

I will try my best to explain it. I have had to trace it through multiple layers as the error messages kept getting overwritten with different ones. What I can determine is that XMLReaderFactory is unable to find an XMLReader and defaults to looking for “com.sun.org.apache.xerces.internal.parsers.SAXParser()” in the default distro.

I understand that this is due to changing to Java 11.
I don’t have access to the source code of the JARs I’m working with. They were all created with JRE 1.8 I believe. For help, I am trying to develop the wrapper node for Vega QSARs (VEGA QSAR Download – VEGA HUB).

Here is the classpath for the node I’m trying to create:

<classpath>
	<classpathentry kind="src" path="src"/>
	<classpathentry exported="true" kind="lib" path="resources/insilicoModel_20201012.jar"/>
	<classpathentry exported="true" kind="lib" path="resources/insilicoModel2.jar"/>
	<classpathentry exported="true" kind="lib" path="resources/weka.jar"/>
	<classpathentry exported="true" kind="lib" path="resources/ToxTreeWrapper-1.0-shaded.jar"/>
	<classpathentry exported="true" kind="lib" path="resources/pmml-schema-1.3.6.jar"/>
	<classpathentry exported="true" kind="lib" path="resources/pmml-model-1.3.6.jar"/>
	<classpathentry exported="true" kind="lib" path="resources/pmml-evaluator-1.3.5.jar"/>
	<classpathentry exported="true" kind="lib" path="resources/pmml-agent-1.3.6.jar"/>
	<classpathentry exported="true" kind="lib" path="resources/padel-full-1.00.jar"/>
	<classpathentry exported="true" kind="lib" path="resources/joda-time-2.9.7.jar"/>
	<classpathentry exported="true" kind="lib" path="resources/Jama-1.0.3.jar"/>
	<classpathentry exported="true" kind="lib" path="resources/iText-2.1.4.jar"/>
	<classpathentry exported="true" kind="lib" path="resources/insilicoModelPNG.jar"/>
	<classpathentry exported="true" kind="lib" path="resources/insilicoModelPNG_2.jar"/>
	<classpathentry exported="true" kind="lib" path="resources/insilicoModelLibraries.jar"/>
	<classpathentry exported="true" kind="lib" path="resources/insilicoCore.jar"/>
	<classpathentry exported="true" kind="lib" path="resources/insilicoAlertsPNG.jar"/>
	<classpathentry exported="true" kind="lib" path="resources/httpmime-4.1.3.jar"/>
	<classpathentry exported="true" kind="lib" path="resources/httpcore-4.1.4.jar"/>
	<classpathentry exported="true" kind="lib" path="resources/httpclient-cache-4.1.3.jar"/>
	<classpathentry exported="true" kind="lib" path="resources/httpclient-4.1.3.jar"/>
	<classpathentry exported="true" kind="lib" path="resources/guava-20.0.jar"/>
	<classpathentry exported="true" kind="lib" path="resources/commons-cli-1.2.jar"/>
	<classpathentry exported="true" kind="lib" path="resources/cdk-1.4.9-pruned.jar"/>
	<classpathentry exported="true" kind="lib" path="resources/AbsoluteLayout.jar"/>
	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
	<classpathentry kind="output" path="bin"/>
</classpath>

So I’m not sure what to do from here to make it work correctly.

Thanks

Reed

@rbjacob1
Those integrations can be tricky, but I am sure we’ll find a way.
Are you getting class not found errors or compilation errors?
Can you please post the exact error message here?

best,
Gabriel

@gab1one
As I mentioned I get mostly class not found errors. But the initial error gets past through and caught many times along the way until the final error. And I have found that each time it is caught a new and different error message is passed onto the next. It reminds me of the telephone game.

Anyway, I will try and capture as many of them as I can as I go through the debug process again.

Thanks
Reed

@gab1one
Here is what I was able to get.
When I went step by step I get the following error messages:

  • Implementation of JAXB-API has not been found on module path or classpath.
  • java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory
  • insilico.core.exception.InitFailureException: Unable to init PMML model - Implementation of JAXB-API has not been found on module path or classpath.

These of course are overwritten by later catches. The final trace that is printed is.
insilico.core.exception.GenericFailureException: Unable to init model
at insilico.model.utils.ModelsList.getModel(ModelsList.java:366)
at insilico.model.utils.ModelsList.getAllModels(ModelsList.java:277)
at com.upl.regulatory.vega.VegaNodeDialog.ModelsCollection(VegaNodeDialog.java:57)
at com.upl.regulatory.vega.VegaNodeDialog.(VegaNodeDialog.java:47)
at com.upl.regulatory.vega.VegaNodeFactory.createNodeDialogPane(VegaNodeFactory.java:63)
at org.knime.core.node.Node$1.run(Node.java:2276)
at org.knime.core.node.util.ViewUtils$3.run(ViewUtils.java:353)
at org.knime.core.node.util.ViewUtils$2.run(ViewUtils.java:155)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

My Manifest is:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Vega-Node extension for KNIME Workbench
Bundle-SymbolicName: com.upl.regulatory.vega;singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-ClassPath: vega.jar,
resources/AbsoluteLayout.jar,
resources/cdk-1.4.9-pruned.jar,
resources/commons-cli-1.2.jar,
resources/guava-20.0.jar,
resources/httpclient-4.1.3.jar,
resources/httpclient-cache-4.1.3.jar,
resources/httpcore-4.1.4.jar,
resources/httpmime-4.1.3.jar,
resources/insilicoAlertsPNG.jar,
resources/insilicoCore.jar,
resources/insilicoModelLibraries.jar,
resources/insilicoModelPNG_2.jar,
resources/insilicoModelPNG.jar,
resources/iText-2.1.4.jar,
resources/Jama-1.0.3.jar,
resources/joda-time-2.9.7.jar,
resources/padel-full-1.00.jar,
resources/pmml-agent-1.3.6.jar,
resources/pmml-evaluator-1.3.5.jar,
resources/pmml-model-1.3.6.jar,
resources/pmml-schema-1.3.6.jar,
resources/ToxTreeWrapper-1.0-shaded.jar,
resources/weka.jar,
resources/insilicoModel_20201012.jar,
resources/insilicoModel2.jar
Bundle-Activator: com.upl.regulatory.vega.VegaNodePlugin
Bundle-Vendor: Reed Jacob
Require-Bundle: org.eclipse.core.runtime;bundle-version=“3.20.100”,
org.knime.workbench.core;bundle-version=“4.4.1”,
org.knime.workbench.repository;bundle-version=“4.4.0”,
org.knime.base;bundle-version=“4.4.1”,
org.knime.chem.types;bundle-version=“4.4.0”,
jakarta.xml.bind;bundle-version=“2.3.3”,
org.apache.cxf;bundle-version=“2.7.12”,
org.apache.xerces;bundle-version=“2.9.0”
Bundle-ActivationPolicy: lazy
Export-Package: com.upl.regulatory.vega

Thanks for any help.
Reed

In that case you’ll need a jar containing the jaxb implemenation to your classpath, e.g this one:
https://mvnrepository.com/artifact/com.sun.xml.bind/jaxb-impl/2.3.5

best,
Gabriel