“JDBC 类路径未定义”异常

如果要使用未对其定义 JDBC 类路径变量的数据库或属性扩展存储库,那么在启动 WebSphere Application Server 时,可能遇到以下异常。

问题

发生了 UndefinedVariableException,如以下 virtual member manager 跟踪样本中所示:

Loading JDBC driver class: com.ibm.db2.jcc.DB2Driver
Getting ${VMM_JDBC_CLASSPATH} using variable map...
Failed to retrieve WAS variable: VMM_JDBC_CLASSPATH
	com.ibm.wsspi.runtime.variable.UndefinedVariableException: Undefined variable VMM_JDBC_CLASSPATH
		at com.ibm.ws.runtime.component.VariableMapImpl.expand(VariableMapImpl.java:373)
		at com.ibm.ws.runtime.component.VariableMapImpl.expand(VariableMapImpl.java:325)
		at com.ibm.ws.wim.dao.DAOHelper.loadJDBCClass(DAOHelper.java:111)
		at com.ibm.ws.wim.dao.AbstractDAO.loadJDBCClass(AbstractDAO.java:324)
		at com.ibm.ws.wim.dao.AbstractDAO.getDirectAccessConnection(AbstractDAO.java:339)
		at com.ibm.ws.wim.config.ConfigValidator.validateDBParams(ConfigValidator.java:285)
		at com.ibm.ws.wim.config.ConfigValidator.validateRepositoryParams(ConfigValidator.java:214)

解决方案

通过完成下列步骤来在 WebSphere Application Server 配置中定义 VMM_JDBC_CLASSPATH 变量:
  1. 启动 WebSphere Application Server 管理控制台。
  2. 单击环境 > WebSphere 变量
  3. 作用域部分,从下拉列表中选择单元
  4. 单击新建以创建新变量。
  5. 名称字段中,输入 VMM_JDBC_CLASSPATH
  6. 字段中,输入 JDBC 驱动程序库文件的路径,对于 UNIX 或 Linux,这些文件以冒号 (:) 分隔,对于 Windows,这些文件以分号 (;) 分隔。例如,对于 Linux 或 UNIX,该路径如下所示:/opt/IBM/SQLLIB/java/db2jcc.jar:/opt/IBM/SQLLIB/java/db2jcc_license_cu.jar
  7. 单击确定
  8. 此外,复制已安装的每个 WebSphere Application Server 节点的 ${WAS_HOME}/lib 目录中所指定的 JDBC 驱动程序库文件。
  9. 保存配置,然后重新启动 WebSphere Application Server。
    注: 在集群环境中,您还必须停止并重新启动 Deployment Manager 和 Node Agent。


使用条款 | 反馈