使用XmlUtil.serialize()时,org.apache.xml.serializer.ToXMLSAXHandler无法强制转换为JBOSS中的org.apache.xml.seriali
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用XmlUtil.serialize()时,org.apache.xml.serializer.ToXMLSAXHandler无法强制转换为JBOSS中的org.apache.xml.seriali相关的知识,希望对你有一定的参考价值。
我试图使用XmlParser从xml文件中删除和添加标签。以下是我的代码块,在使用“grails run-app”命令部署的grails应用程序中执行时运行正常:
def parser = new XmlParser()
def xmlTemplate = parser.parse(file1)
def origFile = parser.parse(file2)
for (def n : origFile.cars)
{
origFile.remove(n)
}
def children = origFile.children()
int i = 0 ;
for (def n : xmlTemplate.cars)
{
children.add(i,n)
i++
}
new File(finalFileName).write( XmlUtil.serialize(origFile) )
但是,当我在JBOSS服务器上部署此代码作为战争时,它会在调用时抛出以下错误:
13:50:36,312 INFO [stdout] (http-/10.64.96.82:8080-28) org.apache.xml.serializer.utils.WrappedRuntimeException: org.apache.xml.serializer.ToXMLSAXHandler cannot be cast to org.apache.xml.serializer.SerializationHandler
13:50:36,312 INFO [stdout] (http-/10.64.96.82:8080-28) at org.apache.xml.serializer.SerializerFactory.getSerializer(SerializerFactory.java:179)
13:50:36,312 INFO [stdout] (http-/10.64.96.82:8080-28) at org.apache.xalan.transformer.TransformerIdentityImpl.createResultContentHandler(TransformerIdentityImpl.java:260)
13:50:36,312 INFO [stdout] (http-/10.64.96.82:8080-28) at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:330)
13:50:36,312 INFO [stdout] (http-/10.64.96.82:8080-28) at groovy.xml.XmlUtil.serialize(XmlUtil.java:448)
13:50:36,312 INFO [stdout] (http-/10.64.96.82:8080-28) at groovy.xml.XmlUtil.serialize(XmlUtil.java:437)
13:50:36,312 INFO [stdout] (http-/10.64.96.82:8080-28) at groovy.xml.XmlUtil.serialize(XmlUtil.java:179)
13:50:36,312 INFO [stdout] (http-/10.64.96.82:8080-28) at groovy.xml.XmlUtil.serialize(XmlUtil.java:88)
13:50:36,312 INFO [stdout] (http-/10.64.96.82:8080-28) at groovy.xml.XmlUtil$serialize.call(Unknown Source)
13:50:36,312 INFO [stdout] (http-/10.64.96.82:8080-28) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
13:50:36,312 INFO [stdout] (http-/10.64.96.82:8080-28) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
13:50:36,312 INFO [stdout] (http-/10.64.96.82:8080-28) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
我在https://issues.jboss.org/browse/JBEAP-19上发现了一个类似的问题,建议从包中删除xalan serializer-2.7.1.jar,从应用程序之战中删除这个jar后它确实工作正常。 jar serializer-2.7.1.jar是我的war文件的一部分,因为我使用“grails war”命令创建了战争,我不知道它在哪里使用。我的应用程序运行正常后,删除jar所以它似乎grails框架也没有在任何地方内部使用这个jar。
任何人都可以解释这个问题的根本原因,以及grails app中serializer-2.7.1.jar的用途是什么?
为了他人的利益:似乎OP的答案嵌入在这个问题中:
我在https://issues.jboss.org/browse/JBEAP-19上发现了一个类似的问题,建议从包中删除xalan serializer-2.7.1.jar,从应用程序之战中删除这个jar后它确实工作正常。 jar serializer-2.7.1.jar是我的war文件的一部分,因为我使用“grails war”命令创建了战争,我不知道它在哪里使用。我的应用程序运行正常后,删除jar所以它似乎grails框架也没有在任何地方内部使用这个jar。
我有同样的问题用这些罐子建立我的docbook xmls。在我的ant构建外部工具配置中,运行时JRE被设置为在与工作空间相同的JRE中运行在jre1.8.0帮助下指定单独的JRE(尽管我的工作空间JRE设置为相同的JRE。)
以上是关于使用XmlUtil.serialize()时,org.apache.xml.serializer.ToXMLSAXHandler无法强制转换为JBOSS中的org.apache.xml.seriali的主要内容,如果未能解决你的问题,请参考以下文章
与 iexact 一起使用时,Django get_or_create 无法设置字段