Java XStorable storeToURL和WebDav

Java XStorable storeToURL和WebDav,java,liferay,openoffice.org,openoffice-writer,Java,Liferay,Openoffice.org,Openoffice Writer,我见过多个关于使用XStorable.storeToURL和vnd.sun.star的线程。webdav://domain:8080//path/to/document_library 将OO文档保存到webdav库文件夹。然而,我还没有看到有人在Java中成功地使用它的帖子。而使用UCB vnd.sun.star。webdav://domain:8080//path/to/document_library/doc.odt 当使用OO Writer中的文件、保存菜单选项时,系统会提示输入用户名和

我见过多个关于使用XStorable.storeToURL和vnd.sun.star的线程。webdav://domain:8080//path/to/document_library 将OO文档保存到webdav库文件夹。然而,我还没有看到有人在Java中成功地使用它的帖子。而使用UCB vnd.sun.star。webdav://domain:8080//path/to/document_library/doc.odt 当使用OO Writer中的文件、保存菜单选项时,系统会提示输入用户名和密码。通过vnd.sun.star提供用户和密码。webdav://user:password@域名:8080/对我不起作用。我需要在Java类中使用此方法来保存OO文档。是否有人成功地使用了以下或类似的方法

xStorable.storeToURL("vnd.sun.star.webdav://domain:8080/path/to/document_library/doc.odt", storeProps)
在OO开发者指南中,有一段关于WebDav身份验证的内容:

使用UCB的交互处理程序机制访问需要身份验证的DAV资源。DAV内容调用客户端提供的交互处理程序,让它处理身份验证请求。交互处理程序的实现从一个位置(例如登录对话框)收集用户名或密码,并将此数据作为交互响应提供


也许这与这个问题有关?如果是这样,那么在尝试通过webdav存储Tourl时,如何使用交互处理程序进行身份验证?

添加InteractionHandler就是问题所在。添加此选项后,可以通过storeToURL保存文档,并将处理程序作为参数传入:

String oooExeFolder = "C:/OpenOffice/program";
XComponentContext xLocalContext = BootstrapSocketConnector.bootstrap(oooExeFolder);
Object serviceManager = xLocalServiceManager.createInstanceWithContext("com.sun.star.task.InteractionHandler", xLocalContext); 
XInteractionHandler xHandler = (XInteractionHandler)UnoRuntime.queryInterface( XInteractionHandler.class, serviceManager);
PropertyValue[] storeProps = new PropertyValue[1];
storeProps[0] = new PropertyValue();
storeProps[0].Name  = "InteractionHandler";
storeProps[0].Value = xHandler;
xStorable.storeToURL("vnd.sun.star.webdav://domain:8080/path/to/document_library/doc.odt", storeProps);