Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Batik函数调用的不兼容对象参数_Java_Batik - Fatal编程技术网

Java Batik函数调用的不兼容对象参数

Java Batik函数调用的不兼容对象参数,java,batik,Java,Batik,我在尝试将svg文档加载到JSVG面板时看到以下错误 Exception occurred in target VM: (class: org/apache/batik/bridge/BridgeContext, method: dispose signature: ()V) Incompatible object argument for function call java.lang.VerifyError: (class: org/apache/batik/bridge/BridgeCo

我在尝试将svg文档加载到JSVG面板时看到以下错误

Exception occurred in target VM: (class: org/apache/batik/bridge/BridgeContext, method: dispose signature: ()V) Incompatible object argument for function call 
java.lang.VerifyError: (class: org/apache/batik/bridge/BridgeContext, method: dispose signature: ()V) Incompatible object argument for function call
    at org.apache.batik.swing.svg.JSVGComponent.createBridgeContext(Unknown Source)
    at org.apache.batik.swing.svg.JSVGComponent.installSVGDocument(Unknown Source)
    at org.apache.batik.swing.JSVGCanvas.installSVGDocument(Unknown Source)
    at org.apache.batik.swing.svg.JSVGComponent$2.run(Unknown Source)
    at org.apache.batik.swing.svg.JSVGComponent.stopThenRun(Unknown Source)
    at org.apache.batik.swing.svg.JSVGComponent.setSVGDocument(Unknown Source)
    at org.netbeans.modules.plantumlnb.SVGImagePreviewPanel.renderSVGFile(SVGImagePreviewPanel.java:48)
    at org.netbeans.modules.plantumlnb.RenderImageThread$1.run(RenderImageThread.java:56)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
    at java.awt.EventQueue.access$200(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:694)
    at java.awt.EventQueue$3.run(EventQueue.java:692)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
    at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
这是相关代码

canvas.setSVGDocument(createSVGDocument(newstringreader(imageContent))


我不确定我在这里做错了什么。感谢您的帮助

我认为不兼容不在于应用程序和batik之间,而在于batik和它所需的一个库之间,后者要么不存在,要么存在于不同的版本中。典型的候选对象是xml实用程序库,它可能与使用它的其他软件一起进入您的环境,例如xml-api.jar。另一个陷入麻烦的可能是使用一个Java版本,该版本太旧,因为包含的DOM API类会随着版本的变化而变化。

从堆栈跟踪判断,我们实际上不需要查看
createSVGDocument()
setSVGDocument()
更有可能与此相关。(看起来
setSVGDocument
正在调用
stopThenRun
,正在调用
run
,等等)感谢您的回复。但是你的建议是编辑并删除SO帖子中的调用吗?是的,用
setSVGDocument
的代码替换它。查看堆栈跟踪,看起来您肯定正在使用该函数(因此它可能不是
createSVGDocument
)(从第6行缩进开始,向上阅读以了解我的意思)查看有关验证错误的问题。我将看到堆栈跟踪中的最后一个方法(JSVGComponent.createBridgeContext)在做什么,以及它调用了什么库。请确保编译和运行的库/jar版本相同。您的回答将引导我找到我正在寻找的内容。似乎Netbeans提供了自己的
xerces
版本,这与我所包含的内容相冲突。谢谢你的帮助。