在我当前的项目中使用Filenet P8 Content Platform Engine 5.2.1和WebSphere 8.5.5.3,Eclipse Mars 4.5.2和Apache Maven 3.3.1
我使用以下代码获取连接对象:
Connection connection = Factory.Connection.getConnection(url);
Subject subject = UserContext.createSubject(connection, username, password, null);
UserContext context = UserContext.get();
context.pushSubject(subject);
其中,用户名为p8admin
,对象存储方式为:
Domain domain = Factory.Domain.fetchInstance((com.filenet.api.core.Connection) conn, null, null);
objectStore = Factory.ObjectStore.fetchInstance(domain, objectStoreName, null);
使用fetchInstance方法从其路径获取文件夹时,使用以下代码:
String folderPath = "/Lotto L02/Amministrazione AMM_000072_00001";
PropertyFilter pf = new PropertyFilter();
pf.addIncludeProperty(new FilterElement(null, null, null, PropertyNames.PERMISSIONS, null));
Folder folder = Factory.Folder.fetchInstance(objectStore, folderPath, pf);
如果我使用folderID一切正常,而使用folderPath它不起作用,获取:
com.filenet.api.exception.EngineRuntimeException:FNRCE0051E: E_OBJECT_NOT_FOUND:找不到请求的项目。文件夹/乐透 未找到L02 / Amministrazione AMM_000072_00001。 errorStack = {at com.filenet.engine.retrieve.FolderCache.getFolderId(FolderCache.java:515) 在 com.filenet.engine.retrieve.IndependentClassRetriever.getObjectIdForPath(IndependentClassRetriever.java:936) 在 com.filenet.engine.retrieve.IndependentClassRetriever.getObjectByPath(IndependentClassRetriever.java:867) 在 com.filenet.engine.retrieve.IndependentClassRetriever.getObject(IndependentClassRetriever.java:815) 在 com.filenet.engine.retrieve.IndependentClassRetriever.getObject(IndependentClassRetriever.java:749) 在 com.filenet.engine.retrieve.IndependentClassRetriever.getObject(IndependentClassRetriever.java:362) 在 com.filenet.engine.jca.impl.RequestBrokerImpl.getObjects(RequestBrokerImpl.java:913) 在 com.filenet.engine.jca.impl.RequestBrokerImpl.getObjects(RequestBrokerImpl.java:816) ...
该文件夹位于Object Store的根目录中,安全性设置如下:
我做错了什么?
答案 0 :(得分:1)
FileNet为您提供了一个非常简洁明了的错误消息:
找不到请求的项目。找不到文件夹/乐透L02 / Amministrazione AMM_000072_00001。
这可能是因为您正在查找错误的域,objectstore,或者您没有权限读取该文件夹。也许您正在尝试获取尚未持久保存到objectstore的文件夹。
无论如何,我认为您提供的代码没有任何问题;但是,由于信息有限,我只能假设从FileNet连接的角度来看该文件夹不存在。