意外删除数据字典(app:Dictionary)后,Alfresco不会';开始
一名操作员删除了数据字典,并重新启动了Alfresco 3.4.12企业版。上下文/露天不会以以下异常开始:意外删除数据字典(app:Dictionary)后,Alfresco不会';开始,alfresco,alfresco-enterprise,Alfresco,Alfresco Enterprise,一名操作员删除了数据字典,并重新启动了Alfresco 3.4.12企业版。上下文/露天不会以以下异常开始: 17:43:11,100 INFO [STDOUT] 17:43:11,097 ERROR [web.context.ContextLoader] Context initialization failed org.alfresco.error.AlfrescoRuntimeException: 08050000 Failed to find 'app:dictionary' nod
17:43:11,100 INFO [STDOUT] 17:43:11,097 ERROR [web.context.ContextLoader] Context initialization failed
org.alfresco.error.AlfrescoRuntimeException: 08050000 Failed to find 'app:dictionary' node
at org.alfresco.repo.action.scheduled.ScheduledPersistedActionServiceImpl.locatePersistanceFolder(ScheduledPersistedActionServiceImpl.java:132)
查看org.alfresco.repo.action.ScheduledPersistedActionServiceImpl.java中的源代码,路径是硬连线的
然后,我们按照来自的提示,编辑bootstrap-context.xml,注释掉这个类
更改后错误消失,现在格式副本服务无法启动
我们正在寻找一种恢复已删除节点的方法,因为我们可以从数据库中获取nodeid。所以我们创建了一个小类,并通过bootstrap-context.xml中的spring调用它,但由于权限问题,它失败了。你能看一下密码,告诉我们出了什么问题吗。代码是:
package com.impulseit.test;
import javax.transaction.UserTransaction;
import org.alfresco.repo.node.archive.NodeArchiveService;
import org.alfresco.repo.node.archive.RestoreNodeReport;
import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
import org.alfresco.service.ServiceRegistry;
import org.alfresco.service.cmr.repository.NodeRef;
public class RestoreNode {
private NodeArchiveService nodeArchiveService;
private ServiceRegistry serviceRegistry;
private String nodeName ="archive://SpacesStore/adfc0cfe-e20b-467f-ad71-253aea8f9ac9";
public void setNodeArchiveService(NodeArchiveService value)
{
this.nodeArchiveService = value;
}
public void setServiceRegistry(ServiceRegistry value)
{
this.serviceRegistry = value;
}
public void doRestore() {
RunAsWork<Void> runAsWork = new RunAsWork<Void>()
{
public Void doWork() throws Exception
{
NodeRef nodeRef = new NodeRef(nodeName);
//RestoreNodeReport restoreNodeReport =
UserTransaction trx_A = serviceRegistry.getTransactionService().getUserTransaction();
trx_A.begin();
AuthenticationUtil.setFullyAuthenticatedUser(AuthenticationUtil.getSystemUserName());
RestoreNodeReport restored = nodeArchiveService.restoreArchivedNode(nodeRef);
trx_A.commit();
return null;
}
};
AuthenticationUtil.runAs(runAsWork,AuthenticationUtil.getSystemUserName());
}
public RestoreNode() {
}
}
先谢谢你
LuisIIRC有一个特定的引导修补程序,如果删除已应用修补程序的记录,将导致重新创建数据字典。但是你进入了非常危险的高级领域。。。我建议你打电话给户外支持,寻求他们的帮助,他们可以帮你解决问题!我会尝试从还原的备份数据库或普通系统导入旧的导出/导入。您是否没有可以从中还原的好备份?
19:31:21,747 User:admin ERROR [node.archive.NodeArchiveServiceImpl] An unhandled exception stopped the restore
java.lang.NullPointerException
at org.alfresco.repo.security.permissions.impl.model.PermissionModel.getPermissionReference(PermissionModel.java:1315)
at org.alfresco.repo.security.permissions.impl.PermissionServiceImpl.getPermissionReference(PermissionServiceImpl.java:956)
at org.alfresco.repo.security.permissions.impl.PermissionServiceImpl.hasPermission(PermissionServiceImpl.java:976)