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

被折叠的 条评论
为什么被折叠?



