在使用vnd.sun.star.webdav://domain:8080//path/to/document_library和XStorable.storeToURL将OO文档保存到webdav库文件夹方面,我看到了多个线程。但是,我还没有看到有人在Java中成功地使用了这一功能的帖子。虽然在options中使用文件、保存菜单选项时使用UCB vnd.sun.star.webdav://domain:8080//path/to/document_library/doc.odt有效,但提示我输入用户名和密码。通过vnd.sun.star.webdav://user:password@domain:8080/提供用户和密码对我不起作用。我需要在Java类中使用这个方法来保存OO文档。是否有人使用以下或类似的方法获得成功?
xStorable.storeToURL("vnd.sun.star.webdav://domain:8080/path/to/document_library/doc.odt", storeProps)在OO指南中,有一个关于WebDav身份验证的段落:
使用UCB的交互处理程序机制访问需要身份验证的DAV资源。DAV内容调用客户端提供的交互处理程序,让它处理身份验证请求。交互处理程序的实现从某个位置(例如登录对话框)收集用户名或密码,并将这些数据作为交互响应提供。
也许这跟这件事有关?如果是,在尝试通过webdav进行storeToURL时,如何使用交互处理程序进行身份验证?
发布于 2013-12-11 22:11:00
添加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);https://stackoverflow.com/questions/20509692
复制相似问题