Пожалуйста, реализуйте метод, подобный этому
public NodeRef getCompanyHomeNodeReference() {
NodeRef companyHomeNodeRef = null;
companyHomeNodeRef = (NodeRef)AuthenticationUtil.runAsSystem(new AuthenticationUtil.RunAsWork<Object>() {
public Object doWork() throws Exception {
StoreRef storeRef = new StoreRef(StoreRef.PROTOCOL_WORKSPACE, "SpacesStore"));
ResultSet rs = serviceRegistry.getSearchService().query(storeRef, SearchService.LANGUAGE_XPATH,
"/app:company_home");
Object companyHome = null;
try {
if (rs.length() == 0) {
LOG.error("Didn't find Company Home ");
throw new AlfrescoRuntimeException("Didn't find Company Home");
}
final NodeRef companyHomeNodeRef1 = rs.getNodeRef(0);
if(companyHomeNodeRef1 == null) {
LOG.info("Didn't find Company Homes");
}else {
companyHome = companyHomeNodeRef1;
}
} finally {
rs.close();
}
return companyHome;
}
});
return companyHomeNodeRef;
}
import, как показано ниже:
import org.alfresco.service.cmr.search.SearchService;
import org.alfresco.service.cmr.repository.StoreRef;
пожалуйста, посмотрите, как критический код помещается в AuthenticationUtil (это очень важно).
А затем используйте приведенный ниже код для создания файла:
fileFolderService.create(companyNodeRef, "yourfilename", ContentModel.TYPE_CONTENT);
Добавьте этот компонент в контексте службы. xml
<bean id="yourObj" class="MoveMonthlyDataAction">
<property name="serviceRegistry">
<ref bean="ServiceRegistry" />
</property>
</bean>
и укажите в MoveMonthlyDataAction . java
как ниже,
public class MoveMonthlyDataAction {
ServiceRegistry serviceRegistry;
public void execute(){
// your code
}
// getter and setter
}
Надеюсь, это поможет.