Java 如何在户外为nodeService.getChildAssocs找到一家公司?
实际上,我试图从alfresco中的当前任务中获取文件,但找不到任何关于如何获取当前节点的描述。我发现我可以使用以下方法获得所有需要的子节点:Java 如何在户外为nodeService.getChildAssocs找到一家公司?,java,lucene,alfresco,activiti,Java,Lucene,Alfresco,Activiti,实际上,我试图从alfresco中的当前任务中获取文件,但找不到任何关于如何获取当前节点的描述。我发现我可以使用以下方法获得所有需要的子节点: List<ChildAssociationRef> children = nodeService.getChildAssocs(companyHome) 但我不能硬编码路径,因为Alfresco可以在服务器或其他服务器上的任何位置运行。 使用Lucene也可以获得NodeRef,如下所示: SearchParameters
List<ChildAssociationRef> children = nodeService.getChildAssocs(companyHome)
但我不能硬编码路径,因为Alfresco可以在服务器或其他服务器上的任何位置运行。
使用Lucene也可以获得NodeRef,如下所示:
SearchParameters sp = new SearchParameters();
sp.addStore(getStoreRef());
sp.setLanguage(SearchService.LANGUAGE_LUCENE);
sp.setQuery("TYPE:\"{http://www.alfresco.org/model/content/1.0}content\"");
ResultSet results = null;
try
{
results = serviceRegistry.getSearchService().query(sp);
for(ResultSetRow row : results)
{
NodeRef currentNodeRef = row.getNodeRef();
...
}
}
finally
{
if(results != null)
{
results.close();
}
}
ServiceRegistry serviceRegistry = (ServiceRegistry) context.getBean("ServiceRegistry");
Node rootNode = session.getRootNode();
//obtaining root node company home
Node companyHome = rootNode.getNode("app:company_home");
// getting noderef of company home node
NodeRef companyHomeRef = JCRNodeRef.getNodeRef(companyHome);
List<ChildAssociationRef> children = nodeService.getChildAssocs(companyHomeRef);
for (ChildAssociationRef childAssoc : children) {
NodeRef childNodeRef = childAssoc.getChildRef();
// Use childNodeRef here.
}
但这将返回alfresco中存在的所有节点。
也许有可能改进其中一种方法来达到我的愿望?或者也许还有别的办法
UPD:下面是我想获取和使用节点的代码部分:
NodeService nodeService = getServiceRegistry().getNodeService();
ContentService contentService = getServiceRegistry().getContentService();
List<ChildAssociationRef> children = nodeService.getChildAssocs(companyHome);
if (children.isEmpty()) {
throw new AlfrescoRuntimeException("Workflow bpm_package does not contain any files");
}
for(ChildAssociationRef childAssoc: children){
NodeRef childNodeRef = childAssoc.getChildRef();
FileBinary = getFileBinary(childNodeRef, contentService);
NodeService NodeService=getServiceRegistry().getNodeService();
ContentService ContentService=getServiceRegistry().getContentService();
List children=nodeService.getChildAssocs(companyHome);
if(children.isEmpty()){
抛出新的AlfrescoRuntimeException(“工作流bpm_包不包含任何文件”);
}
for(ChildAssociationRef childAssoc:children){
NodeRef childNodeRef=childAssoc.getChildRef();
FileBinary=getFileBinary(childNodeRef,contentService);
此外,我还将执行文件转换。希望这能对这种情况有所帮助。尝试以下方法:
SearchParameters sp = new SearchParameters();
sp.addStore(getStoreRef());
sp.setLanguage(SearchService.LANGUAGE_LUCENE);
sp.setQuery("TYPE:\"{http://www.alfresco.org/model/content/1.0}content\"");
ResultSet results = null;
try
{
results = serviceRegistry.getSearchService().query(sp);
for(ResultSetRow row : results)
{
NodeRef currentNodeRef = row.getNodeRef();
...
}
}
finally
{
if(results != null)
{
results.close();
}
}
ServiceRegistry serviceRegistry = (ServiceRegistry) context.getBean("ServiceRegistry");
Node rootNode = session.getRootNode();
//obtaining root node company home
Node companyHome = rootNode.getNode("app:company_home");
// getting noderef of company home node
NodeRef companyHomeRef = JCRNodeRef.getNodeRef(companyHome);
List<ChildAssociationRef> children = nodeService.getChildAssocs(companyHomeRef);
for (ChildAssociationRef childAssoc : children) {
NodeRef childNodeRef = childAssoc.getChildRef();
// Use childNodeRef here.
}
试着这样做:
SearchParameters sp = new SearchParameters();
sp.addStore(getStoreRef());
sp.setLanguage(SearchService.LANGUAGE_LUCENE);
sp.setQuery("TYPE:\"{http://www.alfresco.org/model/content/1.0}content\"");
ResultSet results = null;
try
{
results = serviceRegistry.getSearchService().query(sp);
for(ResultSetRow row : results)
{
NodeRef currentNodeRef = row.getNodeRef();
...
}
}
finally
{
if(results != null)
{
results.close();
}
}
ServiceRegistry serviceRegistry = (ServiceRegistry) context.getBean("ServiceRegistry");
Node rootNode = session.getRootNode();
//obtaining root node company home
Node companyHome = rootNode.getNode("app:company_home");
// getting noderef of company home node
NodeRef companyHomeRef = JCRNodeRef.getNodeRef(companyHome);
List<ChildAssociationRef> children = nodeService.getChildAssocs(companyHomeRef);
for (ChildAssociationRef childAssoc : children) {
NodeRef childNodeRef = childAssoc.getChildRef();
// Use childNodeRef here.
}
试着这样做:
SearchParameters sp = new SearchParameters();
sp.addStore(getStoreRef());
sp.setLanguage(SearchService.LANGUAGE_LUCENE);
sp.setQuery("TYPE:\"{http://www.alfresco.org/model/content/1.0}content\"");
ResultSet results = null;
try
{
results = serviceRegistry.getSearchService().query(sp);
for(ResultSetRow row : results)
{
NodeRef currentNodeRef = row.getNodeRef();
...
}
}
finally
{
if(results != null)
{
results.close();
}
}
ServiceRegistry serviceRegistry = (ServiceRegistry) context.getBean("ServiceRegistry");
Node rootNode = session.getRootNode();
//obtaining root node company home
Node companyHome = rootNode.getNode("app:company_home");
// getting noderef of company home node
NodeRef companyHomeRef = JCRNodeRef.getNodeRef(companyHome);
List<ChildAssociationRef> children = nodeService.getChildAssocs(companyHomeRef);
for (ChildAssociationRef childAssoc : children) {
NodeRef childNodeRef = childAssoc.getChildRef();
// Use childNodeRef here.
}
试着这样做:
SearchParameters sp = new SearchParameters();
sp.addStore(getStoreRef());
sp.setLanguage(SearchService.LANGUAGE_LUCENE);
sp.setQuery("TYPE:\"{http://www.alfresco.org/model/content/1.0}content\"");
ResultSet results = null;
try
{
results = serviceRegistry.getSearchService().query(sp);
for(ResultSetRow row : results)
{
NodeRef currentNodeRef = row.getNodeRef();
...
}
}
finally
{
if(results != null)
{
results.close();
}
}
ServiceRegistry serviceRegistry = (ServiceRegistry) context.getBean("ServiceRegistry");
Node rootNode = session.getRootNode();
//obtaining root node company home
Node companyHome = rootNode.getNode("app:company_home");
// getting noderef of company home node
NodeRef companyHomeRef = JCRNodeRef.getNodeRef(companyHome);
List<ChildAssociationRef> children = nodeService.getChildAssocs(companyHomeRef);
for (ChildAssociationRef childAssoc : children) {
NodeRef childNodeRef = childAssoc.getChildRef();
// Use childNodeRef here.
}
你能详细说明一下吗?1.“其中一个也是一个NodeRef,我需要一个NodeRef才能得到NodeRef。”2.这个标题是“如何为nodeService.getChildAssocs在户外找到一个公司之家”。我会说app:companyhome将返回lucene将返回companyhome。3.实际上我正在尝试从alfresco的当前任务中获取文件,但找不到关于如何获取当前节点的任何描述。-->非常混乱noderef=File,不是吗?要对任务创建过程中附加的文件执行任何操作,我需要这些文件。我无法理解以及如何获取它们。所有的示例都与上下文断绝了联系,因此不可能获取这些方法的参数,直到无法理解为止?你能把整个java代码放进去吗?所有你创建的东西。@Krutik Jayswal更新了问题我想要完整的文件,包括spring Be配置、工作流定义和所有其他内容您用于此目的的配置。请详细说明以下内容1。“其中一个也是NodeRef,结果我需要一个NodeRef来获取NodeRef。”2.对于此标题“如何为nodeService.getChildAssocs在Alfresco获得公司之家”。我会说app:companyhome将返回lucene将返回companyhome。3.实际上我正在尝试从alfresco的当前任务中获取文件,但找不到关于如何获取当前节点的任何描述。-->非常混乱noderef=File,不是吗?要对任务创建过程中附加的文件执行任何操作,我需要这些文件。我无法理解以及如何获取它们。所有的示例都与上下文断绝了联系,因此不可能获取这些方法的参数,直到无法理解为止?你能把整个java代码放进去吗?所有你创建的东西。@Krutik Jayswal更新了问题我想要完整的文件,包括spring Be配置、工作流定义和所有其他内容您用于此目的的配置。请详细说明以下内容1。“其中一个也是NodeRef,结果我需要一个NodeRef来获取NodeRef。”2.对于此标题“如何为nodeService.getChildAssocs在Alfresco获得公司之家”。我会说app:companyhome将返回lucene将返回companyhome。3.实际上我正在尝试从alfresco的当前任务中获取文件,但找不到关于如何获取当前节点的任何描述。-->非常混乱noderef=File,不是吗?要对任务创建过程中附加的文件执行任何操作,我需要这些文件。我无法理解以及如何获取它们。所有的示例都与上下文断绝了联系,因此不可能获取这些方法的参数,直到无法理解为止?你能把整个java代码放进去吗?所有你创建的东西。@Krutik Jayswal更新了问题我想要完整的文件,包括spring Be配置、工作流定义和所有其他内容您用于此目的的配置。请详细说明以下内容1。“其中一个也是NodeRef,结果我需要一个NodeRef来获取NodeRef。”2.对于此标题“如何为nodeService.getChildAssocs在Alfresco获得公司之家”。我会说app:companyhome将返回lucene将返回companyhome。3.实际上我正在尝试从alfresco的当前任务中获取文件,但找不到关于如何获取当前节点的任何描述。-->非常混乱noderef=File,不是吗?要对任务创建过程中附加的文件执行任何操作,我需要这些文件。我无法理解以及如何获取它们。所有的示例都与上下文断绝了联系,因此不可能获取这些方法的参数,直到无法理解为止?你能把整个java代码放进去吗?所有你创建的东西。@Krutik Jayswal更新了问题我想要完整的文件,包括spring Be配置、工作流定义和所有其他内容您用于此的配置看起来很好,但是这里什么是会话,什么是上下文?ECLICE还说类型Nodelooks的方法getNode(String)未定义,但是这里什么是会话,什么是上下文?ECLICE还说方法getNode(String)类型Nodelooks未定义,但是这里什么是session,什么是context?eclicpe还说类型Nodelooks未定义getNode(String)方法,但是这里什么是session,什么是context?eclicpe还说类型节点未定义getNode(String)方法