Customer uses Oracle Wallet (.p12 file) with a self-signed certificate and uses the following connection string to connect to Oracle 12c:
 jdbc:actuate:oracle:TNSServerName=<tnsservername>;TNSNamesFile=<tnsnamesfile_path>;TrustStore=<location of the .p12 wallet file>;TrustStorePassword=<wallet password>;ValidateServerCertificate=true;User=;Password=; 
The protocol in the TNSnames.ora file specified as "TCPS"
It fails with the following error:
java.sql.SQLNonTransientConnectionException: [DataDirect][Oracle JDBC Driver]Error establishing socket to host and port: <hostname>:2484. Reason: Invalid keystore format

I have worked with QA engineer Kiran to get a test env where connection to Oracle 12c using Oracle Wallet (.p12 file) works using the following  connection string:
jdbc:datadirect:oracle:TNSServerName=<server name from the tnsnames.ora file>;TNSNamesFile=<location of tnsnames.ora>;ConnectionRetryCount=0;EncryptionMethod=ssl;AuthenticationMethod=SSL;keystore=<location of keystore wallet file>;keystorePassword=<password used>;truststore=<location of truststore wallet file>;truststorepassword=<password used> 
The protocol in the TNSnames.ora file specified as "TCPS". But in this case Oracle Wallet contains certificate signed by CAs.  According to the QA engineer, all our test env where connection to Oracle using Oracle Wallet works, Oracle Wallet contains certificate signed by CAs. And he mentioned that we don't support Oracle Wallet with a self-signed certificate.
But it is not documented anywhere. So let me know whether that is true or not. Depending on your answer, I will document it.