Couldn't initialize a SAX driver to create an XML reader

Hi guys,

When I try to connect to my S3 using the Amazon S3 Connection node, and I push the “Test connection” button in the configuration windows, it connects but the following message is triggered:

Couldn't initialize a SAX driver to create an XML reader

Please, do you have idea why this happens?

Gio

Hi Gio,

Would you be able to supply your KNIME.log file after you've seen the error (find that in <workspace>\.metadata\knime\knime.log). Can you also confirm whether you have any additional extensions installed into the Analytics Platform.

Best,

Jon

Dear Jon,

Thank you for your reply. What is following is the log produced by the system when I use the Amazon S3 Connection.

2017-01-30 09:31:42,668 : INFO  : SwingWorker-pool-4-thread-2 : S3Connection : Amazon S3 Connection : 3:1996 : Create a new AmazonS3Client in Region "eu-west-1" with connection timeout 30000 milliseconds
2017-01-30 09:31:43,206 : WARN  : SwingWorker-pool-4-thread-2 : TestConnectionDialog$TestWorker : Amazon S3 Connection : 3:1996 : Couldn't connect
2017-01-30 09:31:43,206 : DEBUG : SwingWorker-pool-4-thread-2 : TestConnectionDialog$TestWorker : Amazon S3 Connection : 3:1996 : Couldn't connect
com.amazonaws.AmazonClientException: Couldn't initialize a SAX driver to create an XMLReader
	at com.amazonaws.services.s3.model.transform.XmlResponsesSaxParser.<init>(XmlResponsesSaxParser.java:85)
	at com.amazonaws.services.s3.model.transform.Unmarshallers$ListBucketsUnmarshaller.unmarshall(Unmarshallers.java:37)
	at com.amazonaws.services.s3.model.transform.Unmarshallers$ListBucketsUnmarshaller.unmarshall(Unmarshallers.java:34)
	at com.amazonaws.services.s3.internal.S3XmlResponseHandler.handle(S3XmlResponseHandler.java:62)
	at com.amazonaws.services.s3.internal.S3XmlResponseHandler.handle(S3XmlResponseHandler.java:31)
	at com.amazonaws.http.AmazonHttpClient.handleResponse(AmazonHttpClient.java:1274)
	at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:913)
	at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:723)
	at com.amazonaws.http.AmazonHttpClient.doExecute(AmazonHttpClient.java:475)
	at com.amazonaws.http.AmazonHttpClient.executeWithTimer(AmazonHttpClient.java:437)
	at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:386)
	at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3996)
	at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3933)
	at com.amazonaws.services.s3.AmazonS3Client.listBuckets(AmazonS3Client.java:851)
	at com.amazonaws.services.s3.AmazonS3Client.listBuckets(AmazonS3Client.java:857)
	at org.knime.cloud.aws.s3.filehandler.S3Connection.getBuckets(S3Connection.java:117)
	at org.knime.cloud.aws.s3.filehandler.S3Connection.open(S3Connection.java:64)
	at org.knime.base.filehandling.remote.files.RemoteFile.open(RemoteFile.java:126)
	at org.knime.base.filehandling.remote.files.RemoteFileFactory.createRemoteFile(RemoteFileFactory.java:134)
	at org.knime.base.filehandling.remote.connectioninformation.node.TestConnectionDialog$TestWorker.doInBackgroundWithContext(TestConnectionDialog.java:234)
	at org.knime.base.filehandling.remote.connectioninformation.node.TestConnectionDialog$TestWorker.doInBackgroundWithContext(TestConnectionDialog.java:1)
	at org.knime.core.util.SwingWorkerWithContext.doInBackground(SwingWorkerWithContext.java:106)
	at javax.swing.SwingWorker$1.call(SwingWorker.java:295)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at javax.swing.SwingWorker.run(SwingWorker.java:334)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)
Caused by: org.xml.sax.SAXException: SAX2 driver class org.apache.xerces.parsers.SAXParser not found
java.lang.ClassNotFoundException: org.apache.xerces.parsers.SAXParser
	at org.xml.sax.helpers.XMLReaderFactory.loadClass(XMLReaderFactory.java:230)
	at org.xml.sax.helpers.XMLReaderFactory.createXMLReader(XMLReaderFactory.java:191)
	at com.amazonaws.services.s3.model.transform.XmlResponsesSaxParser.<init>(XmlResponsesSaxParser.java:83)
	... 27 more
Caused by: java.lang.ClassNotFoundException: org.apache.xerces.parsers.SAXParser
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at org.eclipse.osgi.internal.framework.ContextFinder.loadClass(ContextFinder.java:132)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at org.xml.sax.helpers.NewInstance.newInstance(NewInstance.java:82)
	at org.xml.sax.helpers.XMLReaderFactory.loadClass(XMLReaderFactory.java:228)
	... 29 more

 

Please, what do you mean exacly with "additional extensions"?

Gio

Hi Gio,

Could you try to make the connection with a fresh KNIME Installation. Does that help?

Do you have a list of installed extensions for the KNIME installation that cannot make the connection? Could you also share your OS version and the KNIME AP version that you are using.

Best,

Jon

Does the issue happen after a KNIME restart when this is the first node that is run? 

We've had issue with XML and xerces, for example using the XPATH node will break XML parsing in our java libraries unless we implement a workaround. But I don't believe it was the same issue reported in the stack trace.

Cheers

Sam

Hi Jon,

I will try it from a fresh KNIME installation as you suggested. I'm currently using KNIME 3.3.1 running on Ubuntu 14.04.

Best,

Gio

I continue to have this problem even starting from a fresh new installation of knime (version 3.5.0). Please, is there a way to know what is that causes the problem?

Bit of a long shot but you could try running this in a Java Snippet

if(System.getProperty("org.apache.xerces.xni.parser.XMLParserConfiguration") != null)
{
    System.clearProperty("org.apache.xerces.xni.parser.XMLParserConfiguration");
}