Resolución de problemas: Error de controlador JDBC de Oracle (java.lang.NullPointerException)

Al utilizar una base de datos Oracle y ejecutar el programa de utilidad updatedb desde Utility server Docker container con el parámetro isStaging especificado, puede experimentar un error NullPointerException.

Problema

Para la base de datos Oracle, el programa de utilidad updatedb utiliza el controlador JDBC heredado oracle.jdbc.driver.OracleDriver de forma predeterminada. Esta versión del controlador no es compatible con el programa de utilidad, que está diseñado para funcionar con el nuevo controlador oracle.jdbc.OracleDriver. Como resultado, se genera un error NullPointerException. Este problema solo se encuentra en una base de datos de autoría Oracle.

El error visualizado se parece al siguiente:
[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)

Solución

Para resolver el problema, especifique el controlador JDBC correcto, oracle.jdbc.OracleDriverutilizando el parámetro jdbcDriver.

Por ejemplo:
  • HCL Commerce Version 9.1.7.0 or laterPara versiones de HCL Commerce Version 9.1.7.0 y posteriores:
    ./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
  • Para versiones de HCL Commerce Version 9.1.0.0 a 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

El error no se producirá.