Dépannage : Erreur du pilote JDBC Oracle (java.lang.NullPointerException)
Lorsque vous utilisez une base de données Oracle et que vous exécutez l'utilitaire updatedb à partir de Utility server Docker container avec le paramètre isStaging spécifié, vous pouvez rencontrer une erreur NullPointerException.
Problème
Pour la base de données Oracle, l'utilitaire updatedb utilise le pilote JDBC existant oracle.jdbc.driver.OracleDriver par défaut. Cette version du pilote n'est pas compatible avec l'utilitaire, qui est conçu pour fonctionner avec le nouveau pilote oracle.jdbc.OracleDriver. Par conséquent, une erreur NullPointerException est lancée. Ce problème se présente uniquement sur une base de données Oracle de création.
L'erreur affichée est similaire à ce qui suit :
[stagingck] action=insert, tablename=WCS_Fixpack, serverOrToolkit=server, stagingServer=true, stagingDbChecked=false, logLevel=5
BUILD FAILED
/opt/WebSphere/CommerceServer90/components/common/xml/fixpack.xml:44: The following error occurred while executing this line:
/opt/WebSphere/CommerceServer90/components/common/xml/fixpack.xml:138: java.lang.NullPointerException
Caused by: java.lang.NullPointerException
at com.ibm.commerce.config.ant.tasks.BasicAntDbTask.execute(BasicAntDbTask.java:121)
at com.ibm.commerce.config.ant.tasks.CheckStagingDbTask.execute(CheckStagingDbTask.java:157)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
at org.apache.tools.ant.Task.perform(Task.java:364)
Solution
Pour résoudre le problème, spécifiez le pilote JDBC correct, oracle.jdbc.OracleDriver, à l'aide du paramètre jdbcDriver.
Par exemple :
Pour les versions de HCL Commerce Version 9.1.7.0 et ultérieures :./updatedb.sh -dbType dbType -dbName dbName -dbUserName dbUserName -dbUserPassword dbUserPassword -dbHostname dbHostname -dbServerPort dbServerPort -dbaName dbaName -dbaPassword dbaPassword -schemaName schemaName -jdbcURL jdbcURL -jdbcDriver oracle.jdbc.OracleDriver -isStaging isStaging- Pour les versions de HCL Commerce Version 9.1.0.0 à 9.1.6.0 :
./updatedb.sh -dbType dbType -dbName dbName -dbUserName dbUserName -dbUserPassword dbUserPassword -dbHostname dbHostname -dbServerPort dbServerPort -dbaName dbaName -dbaPassword dbaPassword -jdbcURL jdbcURL -jdbcDriver oracle.jdbc.OracleDriver -isStaging isStaging
L'erreur ne se produira pas.