java.lang.NoSuchMethodError: oracle.i18n.text.converter.Characte
用springboot在linux上发布项目,打成jar包时,可以正常启动。
打成war包时,就会出现上面标题的错误,后面发现是orai18n版本不对,orai18n版本必须和oracle数据库版本对应,数据库用的是12c,orai18n改成如下版本之后可以正常发布
<dependency>
<groupId>com.oracle.database.nls</groupId>
<artifactId>orai18n</artifactId>
<version>12.2.0.1</version>
</dependency>
2021年6月30日再次出现了这个问题
发现问题的原因是12.2.0.1版本的ojdbc8引用了19.3.0.0版本的一些依赖
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>12.2.0.1</version>
</dependency>
于是排除了所有ojdbc8对19.3.0.0版本的依赖,重新引入了12.2.0.1版本的
最后,最重要的一点,,在引入依赖的时候,orai18n写在ojdbc8之后
<dependency>
<groupId>com.oracle.database.security</groupId>
<artifactId>oraclepki</artifactId>
<version>12.2.0.1</version>
</dependency>
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ucp</artifactId>
<version>12.2.0.1</version>
</dependency>
<dependency>
<groupId>com.oracle.database.security</groupId>
<artifactId>osdt_cert</artifactId>
<version>12.2.0.1</version>
</dependency>
<dependency>
<groupId>com.oracle.database.security</groupId>
<artifactId>osdt_core</artifactId>
<version>12.2.0.1</version>
</dependency>
<dependency>
<groupId>com.oracle.database.ha</groupId>
<artifactId>simplefan</artifactId>
<version>12.2.0.1</version>
<exclusions>
<exclusion>
<groupId>com.oracle.database.ha</groupId>
<artifactId>ons</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.oracle.database.ha</groupId>
<artifactId>ons</artifactId>
<version>12.2.0.1</version>
</dependency>
<!--oracle驱动-->
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>12.2.0.1</version>
<exclusions>
<exclusion>
<groupId>com.oracle.database.security</groupId>
<artifactId>oraclepki</artifactId>
</exclusion>
<exclusion>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ucp</artifactId>
</exclusion>
<exclusion>
<groupId>com.oracle.database.security</groupId>
<artifactId>osdt_cert</artifactId>
</exclusion>
<exclusion>
<groupId>com.oracle.database.security</groupId>
<artifactId>osdt_core</artifactId>
</exclusion>
<exclusion>
<groupId>com.oracle.database.ha</groupId>
<artifactId>simplefan</artifactId>
</exclusion>
<exclusion>
<groupId>com.oracle.database.ha</groupId>
<artifactId>ons</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.oracle.database.nls</groupId>
<artifactId>orai18n</artifactId>
<version>${oracle.version}</version>
</dependency>