Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.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 尝试使用OpenOffice API获取XDesktop实例时发生ClassCastException_Java_Openoffice.org - Fatal编程技术网

Java 尝试使用OpenOffice API获取XDesktop实例时发生ClassCastException

Java 尝试使用OpenOffice API获取XDesktop实例时发生ClassCastException,java,openoffice.org,Java,Openoffice.org,我一直在开发一个OpenOffice Writer扩展。目前,我需要检索当前文档对象。以下内容应将当前组件作为编写器文档返回 XMultiComponentFactory factory = context.getServiceManager(); XDesktop desktop = (XDesktop) factory.createInstanceWithContext("com.sun.star.frame.Desktop", context); XTextDocument documen

我一直在开发一个OpenOffice Writer扩展。目前,我需要检索当前文档对象。以下内容应将当前组件作为编写器文档返回

XMultiComponentFactory factory = context.getServiceManager();
XDesktop desktop = (XDesktop) factory.createInstanceWithContext("com.sun.star.frame.Desktop", context);
XTextDocument document = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, desktop.getCurrentComponent());

return document;
我的问题发生在第二条线路运行时。将引发以下异常:

java.lang.ClassCastException: com.sun.proxy.$Proxy0 cannot be cast to com.sun.star.frame.XDesktop
为什么
createInstanceWithContext
返回的内容与请求的接口不一致?有办法解决吗?

查看文档,有两个步骤可以获得界面:

          Object desktop = xRemoteServiceManager.createInstanceWithContext (
              "com.sun.star.frame.Desktop", xRemoteContext);
          XDesktop xDesktop = (XDesktop)UnoRuntime.queryInterface(XDesktop.class, desktop);

事实上,这正是我所缺少的。谢谢