SonarQube 6和Oracle 11G

SonarQube 6和Oracle 11G,oracle,oracle11g,sonarqube,Oracle,Oracle11g,Sonarqube,你好 我正在尝试将SonarQube 6设置为使用Oracle 11G数据库。我创建了一个空白模式,并将sonar.properties文件配置为指向上述数据库。在启动过程中,我可以看到sonarQube创建了所需的表,但我得到以下错误: org.apache.ibatis.executor.executor异常:获取生成的密钥或将结果设置为参数对象时出错。原因: java.lang.NullPointerExceptionat org.apache.ibatis.executor.keygen

你好

我正在尝试将SonarQube 6设置为使用Oracle 11G数据库。我创建了一个空白模式,并将
sonar.properties
文件配置为指向上述数据库。在启动过程中,我可以看到
sonarQube
创建了所需的表,但我得到以下错误:

org.apache.ibatis.executor.executor异常:获取生成的密钥或将结果设置为参数对象时出错。原因: java.lang.NullPointerExceptionat org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator.processBatch(Jdbc3KeyGenerator.java:82) 在 org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator.processAfter(Jdbc3KeyGenerator.java:56) 在 org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:50) 在 org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74) 在 org.apache.ibatis.executor.ReuseExecutor.doUpdate(ReuseExecutor.java:52) 在 org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117) 在 org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76) 在 org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:198) 在 org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:185) 在 org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:57) 位于org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59) 位于com.sun.proxy.$Proxy30.insert(未知源)


有人能帮忙吗?

问题是由于我正在使用的oracle驱动程序(版本7)中存在错误造成的。oracle在版本8中修复了此错误,如下所述:

具体而言,参考以下内容来解决:

我打开一个Chrome浏览器,试图进入SonarQube服务器的主页。唉,我得到的是:

幸运的是,Oracle JDBC驱动程序在方法Oracle.JDBC.driver.AutoKeyInfo.initMetaDataColumnIndexes中的空指针异常问题是一个已知的问题,并且在Oracle JDBC驱动程序的12.1.0.2版本中得到了修复,该版本刚刚发布,可以在此处找到。将经过修补的JDBC驱动程序复制到SonarQube/extensions目录后,我现在有了一个正常工作的SonarQube服务器


请分享你的代码,看看这个问题不是由我开发的代码引起的。我在云服务器上设置SonarQube,连接到Oracle数据库实例。SonarQube启动时指向带有ojdbc7.jar驱动程序的Oracle 11G数据库时引发错误。这是通过使用ojdbc8.jar解决的。您引用的站点上的信息看起来不错,但将来有人需要使用此信息时,该地址上可能不存在引用。因此,请将相关代码作为文本放在这里。