Spring Boot 读写Oracle XMLTYPE,部分异常解决方式

在处理Oracle数据库中的XMLType时,需要特定的依赖包,包括ojdbc8、xdb和xmlparserv2。然而,通过Maven无法直接下载xmlparserv2,导致NoClassDefFoundError。解决方案是在mvnrepository上找到替代依赖xmlparserv2_sans_jaxp_services,成功解决了XMLParseException和外部实体不支持的问题。

Oracle操作xmltype需要下面的依赖套件。

<project>
    <dependencies>
        <dependency>
            <groupId>com.oracle.database.jdbc</groupId>
            <artifactId>ojdbc8</artifactId>
        </dependency>
        <dependency>
            <groupId>com.oracle.database.xml</groupId>
            <artifactId>xdb</artifactId>
            <version>21.5.0.0</version>
        </dependency>
        <dependency>
            <groupId>com.oracle.jdbc</groupId>
            <artifactId>xmlparserv2</artifactId>
            <version>12.2.0.1</version>
        </dependency>
    </dependencies>
</project> 

不然会抛出下面错误:

org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: oracle/xml/parser/v2/XMLParseException

但是使用 Maven 无法下载这三个依赖,出现下面错误:

Could not find artifact com.oracle.jdbc:xmlparserv2:pom:12.2.0.1 in central (https://repo.maven.apache.org/maven2)

上网找了很久,有些人说直接下载 jar,但是连接都失效了,在 Oracle 官网上也找不到。如果安裝 com.oracle.database.xml 的 xmlparserv2 则会出现 Parser configuration error occurred 错误

<dependency>
    <groupId>com.oracle.database.xml</groupId>
    <artifactId>xmlparserv2</artifactId>
    <version>21.5.0.0</version>
</dependency>

错误信息:

Caused by: javax.xml.parsers.ParserConfigurationException: SAX feature ‘http://xml.org/sax/features/external-general-entities’ not supported.

解决方式
后来 在 mvnrepository 上面看到 xmlparserv2_sans_jaxp_services 这个套件

<dependency>
    <groupId>com.oracle.database.xml</groupId>
    <artifactId>xmlparserv2_sans_jaxp_services</artifactId>
    <version>21.5.0.0</version>
</dependency>

果然,成功解決!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值