Description
HTTPS connections fail with "Method failed" if trustmanager_trust_all is false and remote CA signed certificates are not explicitly added. Symptoms of this issue include:
- Connections to remote HTTPS services (REST,SOAP,LDAP) could fail with "java.io.IOException: Method failed"
- The remote services certificates are self-signed and not explicitly added to the instance
- The com.glide.communications.trustmanager_trust_all system property is set to false.
The following example shows a sample of a data source using an HTTPS Web Service.
com.glide.db.impex.datasource.DataSourceException: com.glide.db.impex.datasource.DataSourceException: java.io.IOException: Method failed:(REMOTESERVER) null with code: 0 at com.glide.processors.ImportProcessorWorker.loadDataSource(ImportProcessorWorker.java:181) at com.glide.processors.ImportProcessorWorker.startWork(ImportProcessorWorker.java:104) at com.glide.worker.AbstractProgressWorker.startAndWait(AbstractProgressWorker.java:86) at com.glide.worker.HierarchicalProgressWorker.startAndWait(HierarchicalProgressWorker.java:37) at com.glide.worker.ProgressWorkerThread.run(ProgressWorkerThread.java:53) Caused by: com.glide.db.impex.datasource.DataSourceException: java.io.IOException: Method failed: (REMOTESERVER) null with code: 0 at com.glide.db.impex.datasource.DataSource.getFile(DataSource.java:312) at com.glide.db.impex.datasource.DataSource.getFile(DataSource.java:252) at com.glide.db.impex.CSVLoader.setDataSource(CSVLoader.java:127) at com.glide.db.impex.JDBCLoader.setImportDataSource(JDBCLoader.java:551) at com.glide.db.impex.datasource.CSVDataSource.getLoader(CSVDataSource.java:21) at com.glide.processors.ImportProcessorWorker.loadDataSource(ImportProcessorWorker.java:139) ... 4 more Caused by: java.io.IOException: Method failed: (REMOTESERVER) null with code: 0 at com.glide.protocol.http.HTTPURLConnection.connect(HTTPURLConnection.java:38) at com.glide.protocol.http.HTTPURLConnection.getInputStream(HTTPURLConnection.java:46) at com.glide.db.impex.datasource.DataSource.writeFile(DataSource.java:336) at com.glide.db.impex.datasource.DataSource.getFile(DataSource.java:305) ... 9 more |
Steps to Reproduce
-
Go to /sys_properties_list.do and set the system property com.glide.communications.trustmanager_trust_all to false.
-
Create a new data source with the following values:
- File Retrieval Method: HTTPS
- File path: Path of the file on destination server to be retrieved
- Server: IP of the destination server
For more information, see the product documentation topic Create a data source.
-
Click Test Load 20 Records.
-
Make sure the destination server is secured with a self-signed certificate and not by a trusted domain CA.
Connection URL: https://serverip or dns /datafile
-
Click Load All Records.
An error message appears similar to the following example:
com.glide.db.impex.datasource.DataSourceException: java.io.IOException: Method failed: (https://serverip or dns /datafile) null with code: 0
Workaround
Choose from one of the following workarounds:
- Set the system property com.glide.communications.trustmanager_trust_all to true.
- On the remote Web Service, replace the self-signed certificate with another one that is signed by a trusted Java Certificate Authority.
Related Problem: PRB1201373