任何建议或帮助非常感谢.
有许多参考链接,但没有明确的解决方案.我想知道Spring项目如何与返回XMLType输出的PLsql过程交互.你需要XMLParser,然后我们都会在使用Spring时遇到这个错误.有没有人有任何建议?
我有一个运行良好的Maven spring应用程序(mvc / Rest),我添加了以下依赖项来与PLsql程序进行交互,
包含xdb6和xmlparserv2后,我在Spring应用程序启动时遇到以下错误(运行服务器时)
2014-08-19 18:28:51,898 INFO |主要| o.s.beans.factory.xml.XmlBeanDefinitionReader
Loading XML bean definitions from class path resource [META-INF/spring/myapp-context.xml]
来自类路径资源[META-INF / spring / myapp-context.xml]的XML文档中的第16行无效;
MYAPP-的context.xml
Line16是http://www.springframework.org/schema/cache/spring-cache.xsd\”\u0026gt;
假设我删除了Line16及其引用,然后在不同的行抛出相同的错误,比如第13行
更多错误堆栈跟踪:
Caused by: org.xml.sax.SAXParseException:
更新1
根据公布的答案,它说可以提供快速解决方案,
要覆盖xmlparserv2.jar所做的更改,请将以下JVM属性添加到应用程序服务器启动参数中. java.xml.parsers.FactoryFinder逻辑将首先检查环境变量.
-Djavax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl
-Djavax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl
-Djavax.xml.transform.TransformerFactory=com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl
如链接中明确指出的那样,不建议这样做
https://community.oracle.com/thread/1080787
这里提到了另一种解决方案(与hibernate相关,但类似):Using Oracle XMLType column in hibernate
在maven spring项目中,通过在%PROJECT_HOME%/ src / main / resources目录中创建以下文件来覆盖xmlparserv2.jar设置:
%PROJECT_HOME%/src/main/resources/Meta-INF/services/javax.xml.parsers.DocumentBuilderFactory (which defines com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl as the default)
%PROJECT_HOME%/src/main/resources/Meta-INF/services/javax.xml.parsers.SAXParserFactory (which defines com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl as the default)
%PROJECT_HOME%/src/main/resources/Meta-INF/services/javax.xml.transform.TransformerFactory (which defines com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl as the default)
这对我来说并不清楚.
更新2
我尝试添加VM参数-Djavax.xml.parsers.DocumentBuilderFactory = com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl并且它可以工作.
但是寻找替代的,更合适的解决方案.这只是一种解决方法.当应用程序通过Jenkins部署到服务器时,不适合设置与XML解析器相关的这些VM参数设置.
更新3
@Ian Roberts的答案解决了这个问题.我清理了context.xml以始终使用xsd的版本号.