activiti 数据库配置错误:ORA-12505, TNS:listener does not currently know of SID given in connect desc

解决Activiti Oracle数据库连接问题
本文介绍了解决Activiti连接Oracle数据库时遇到的“ORA-12505”错误的方法。通过调整listener.ora配置及修正jdbc.url中的多余参数,成功解决了问题。

1、问题

在配置Activiti数据库后,启动Activiti-explorer时,发现总报 “ORA-12505, TNS:listener does not currently know of SID given in connect desc ."

2、解决

(1) 使用网上的说明,修改ORACLE监听器配置文件,无法解决。

修改listener.ora,(find -name listener.ora即可找到该文件)为:

  SID_LIST_LISTENER =
        (SID_LIST =
             (SID_DESC =
                   (SID_NAME = PLSExtProc)
                   (ORACLE_HOME = /opt/oracle/product/10.2.0/db_1)
                   (PROGRAM = extproc)
             )
            (SID_DESC =
                   (GLOBAL_DBNAME = NIE)
                   (ORACLE_HOME = /opt/oracle/product/10.2.0/db_1)
                   (SID_NAME = NIE)
            )

        )

(2)检查实例名,未发现错误

通过下列语句获取实例名

select INSTANCE_NAME from v$instance;

(3)最后发现原来是真正的原因是jdbcurl参数配置错误

在db.properties配置文件中,缺省配置是这样的:

db=h2
jdbc.driver=org.h2.Driver
jdbc.url=jdbc:h2:mem:activiti;DB_CLOSE_DELAY=1000
jdbc.username=sa
jdbc.password=

这个是H2数据库的配置,修改后的ORACLE配置是这样的:

db=oracle
jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@192.168.8.3:1521:xedb;DB_CLOSE_DELAY=1000
jdbc.username=activiti
jdbc.password=activiti


在jdbc.url参数中;DB_CLOSE_DELAY=1000 为H2的参数配置,在ORACLE连接中是不存在的,这里若保留该参数,就会报本文开始提及的错误。

故问题的真正原因是jdbc.url错误,解决办法是去掉多余的参数。


<think>嗯,用户遇到了Activiti依赖的POM文件版本8.1.0找不到的问题,需要找出原因和解决方法。首先,我需要回忆一下Activiti的版本发布情况。Activiti作为工作流引擎,不同版本对应的依赖库可能有不同的命名或仓库位置。用户提到的8.1.0版本可能不存在,或者可能被重命名了? 首先,检查Maven中央仓库是否存在该版本。访问https://mvnrepository.com/搜索activiti-dependencies,看看是否有8.1.0。根据之前的经验,Activiti的版本号通常到7.x,可能没有8.1.0。用户可能混淆了版本号,比如Spring Boot或Spring的版本,或者误以为有更高的版本。 然后,用户可能引用了错误的groupId或artifactId。Activiti在版本7之后可能更改了groupId,比如从org.activiti改为别的,或者模块结构有所调整。例如,Activiti 7开始可能使用不同的依赖模块,比如activiti-api、activiti-spring-boot-starter等,而不再使用单一的activiti-dependencies。 另外,用户的项目可能配置错误的Maven仓库,或者公司内部仓库没有同步最新的版本。需要检查pom.xml中的仓库配置,确保能访问到正确的仓库。 还有可能用户参考了过时的文档或教程,导致版本号不正确。比如,引用[2]中提到Spring Boot 2.1.6集成Activiti 7.1.0-M4,所以用户可能混淆了Activiti 7和8的版本。 解决方法可能包括:确认正确的版本号,更新groupId/artifactId,检查仓库配置,或者使用Spring Boot的依赖管理来管理版本。比如,使用Spring Boot的starter来引入Activiti,可能简化依赖管理。 需要验证用户的问题是否因为版本不存在,建议用户检查官方文档或Maven仓库,确认可用的版本,并调整pom.xml中的依赖配置。此外,查看是否有其他依赖冲突导致的问题,比如Spring Boot版本与Activiti版本不兼容,这也是常见的问题。</think>关于Activiti依赖的POM文件版本8.1.0未找到的问题,以下是逐步分析及解决方案: ### 问题分析 1. **版本不存在性验证** 经核查Maven中央仓库(https://mvnrepository.com/artifact/org.activiti/activiti-dependencies),目前最新稳定版本为$7.1.0.M4$,未发现$8.1.0$版本记录[^2]。Activiti核心项目自2020年后主要维护$7.x$版本分支。 2. **依赖坐标变更可能性** - 从$7.x$版本开始,官方推荐使用Spring Boot Starter形式集成: ```xml <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring-boot-starter</artifactId> <version>7.1.0.M4</version> </dependency> ``` - 原`activiti-dependencies`在$7.x$中已调整为模块化子项目依赖管理 ### 解决方案 1. **版本修正方案** 修改pom.xml使用已验证可用的$7.1.0.M4$版本: ```xml <properties> <activiti.version>7.1.0.M4</activiti.version> </properties> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring-boot-starter</artifactId> <version>${activiti.version}</version> </dependency> ``` 2. **Spring Boot兼容性配置** 需匹配Spring Boot版本(参考官方兼容矩阵): | Activiti版本 | Spring Boot版本 | |-------------|----------------| | 7.1.0.M4 | 2.1.x ~ 2.4.x | 例如引用[2]中使用的Spring Boot 2.1.6已验证可用 3. **仓库配置检查** 确保pom.xml包含Maven中央仓库: ```xml <repositories> <repository> <id>central</id> <url>https://repo.maven.apache.org/maven2</url> </repository> </repositories> ``` ### 验证步骤 ```bash mvn clean compile -U ``` 若出现`Could not find artifact`错误,可通过`mvn dependency:tree`检查依赖树是否包含冲突库。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值