Alfresco Java-backed Web Scripts: история workflow

В этой статье я покажу на примере как писать Java-backed Web Script. Параллельно с этим я на том же примере продемонстрирую следующие пункты:
- как с помощью Java API альфрески собирать историю workflow;
- как передавать глобальные свойства альфрески в Java-backed Web Script;
- как создавать файлы в репозитории;
- как поднимать созданные файлы в новом workflow

В прошлый раз мной был представлен пример создания workflow на Activiti. Представим, что документооборот в компании, в которой работает описанный workflow, включает в себя также генерацию отчета о неисполненных поручениях и их статусе. Напишем скрипт, который будет собирать в файл отчета все еще неисполненные поручения. Скрипт запишет, в каком состоянии находится поручение, у кого на столе оно находится, а также соберем ссылки на документы каждого пакета поручений.

Каждый Java-backed Web Script  должен имплементировать интерфейс org.springframework.extensions.webscripts.WebScript. В моем примере мы просто расширим класс AbstractWebScript и имплементируем один абстрактный метод execute.

Несмотря на то, что результаты исполнения нашего скрипта запишутся в файл в репозиторий альфрески, все же создадим JSON объект, который будет содержать историю, и запишем этот объект в web script response:  если бы мы не генерировали файл, не поднимали бы его в workflow, мы могли бы использовать объект в дальнейшем в дашлете.

Ниже привожу код Java-backed Web Script:

package ru.ossportal.webscripts;
 
import java.io.*;
import java.util.*;
 
import org.springframework.extensions.webscripts.AbstractWebScript;
import org.springframework.extensions.webscripts.WebScriptException;
import org.springframework.extensions.webscripts.WebScriptRequest;
import org.springframework.extensions.webscripts.WebScriptResponse;
import org.springframework.extensions.webscripts.servlet.WebScriptServletRequest;
import org.springframework.extensions.surf.RequestContext;
 
import org.json.JSONException;
import org.json.JSONObject;
 
import org.alfresco.repo.workflow.*;
import org.alfresco.service.cmr.workflow.*;
import org.alfresco.service.ServiceRegistry;
import org.alfresco.service.cmr.security.AuthenticationService;
import org.alfresco.repo.model.*;
import org.alfresco.service.namespace.*;
import org.alfresco.service.cmr.repository.*;
import org.alfresco.model.ContentModel;
import org.alfresco.repo.jscript.ScriptLogger;
 
public class DirectiveHistory extends AbstractWebScript {
 
	ScriptLogger logger = new ScriptLogger();
 
	private ServiceRegistry registry;
	private Repository repository;
 
	private String externalHost;
	private String externalPort;
	private String externalProtocol;
 
	// Отчеты о статусе неисполненных поручений будут лежать в CompanyHome/WFHISTORY
	private String WFHISTORY_FOLDER_NAME = "WFHISTORY";
	private String WFHISTORY_FILE_NAME= "wfhistory";
 
	/* Так как мы будем работать с историей workflow и репозиторием
	нам нужны текущие объекты ServiceRegistry и Repository
	*/
	public void setServiceRegistry (ServiceRegistry registry) {
		this.registry = registry;
	}
 
	public void setRepository (Repository repository) {
		this.repository = repository;
	}
 
 
	/* Параметры внешнего хоста, порта и протокола нам понадобятся 
	для генерации внешней ссылки на документы в альфреске.
	Параметры мы берем из глобальных свойств альфрески, - параметры,
	прописанные в файле ALFRESCO_HOME/tomcat/shared/classes/alfresco-global.properties
	*/
	public void setExternalHost(String externalHost) {
		this.externalHost = externalHost;
	}
 
	public void setExternalPort(String externalPort) {
		this.externalPort = externalPort;
	}
 
	public void setExternalProtocol(String externalProtocol) {
		this.externalProtocol = externalProtocol;
	}
 
	/* Метод, находящий узел в альфреске
	*/
	protected NodeRef getNodeRef(NodeRef parent, String path) {
		List<String> pathElements = new ArrayList<String>();
		StringTokenizer tokenizer = new StringTokenizer(path, "/");
		while (tokenizer.hasMoreTokens()) {
			String childName = tokenizer.nextToken();
			pathElements.add(childName);
		}
 
		NodeRef nodeRef = null;
		try {			
			nodeRef = this.registry.getFileFolderService().resolveNamePath(parent, pathElements).getNodeRef();
		}	catch(Exception fnfe)	{}		
		return nodeRef;
	}
 
	//Метод, генерящий список внешних ссылок на документы из пакета
	protected String getURLString(NodeRef pkg) {
		NodeService nodeService = this.registry.getNodeService();
		List<ChildAssociationRef> children = nodeService.getChildAssocs(pkg);
 
		String urls = "";
 
		for (ChildAssociationRef childAssoc : children) {
			NodeRef child = childAssoc.getChildRef();
			String name = (String) nodeService.getProperty(child, ContentModel.PROP_NAME);
 
			StringBuilder serverPathBuilder = new StringBuilder();
			serverPathBuilder.append((externalProtocol!=null) ? externalProtocol : "http");
			serverPathBuilder.append( "://" );
			serverPathBuilder.append((externalHost!= null) ? externalHost : "localhost" );
			serverPathBuilder.append((externalPort!= null) ? ":"+externalPort : ":8080" );
			urls += serverPathBuilder.toString()+"/alfresco/d/d/workspace/SpacesStore/"+child.getId()+"/"+name+"; ";
		}		
 
		return urls;
	}
 
	/* Создаем файл с отчетом в репозитории альфрески
           В данном случае создается простой текстовый файл.
           Вы можете переписать часть кода, чтобы сформировать
           тот формат файла, который вам нужен, используя разные сторонние библиотеки
	*/
	protected NodeRef createHistory(Hashtable history) {
		NodeRef historyNode = null;
 
		QName contentQName = QName.createQName("{http://www.alfresco.org/model/content/1.0}content");
		java.text.DateFormat dateFormat = new java.text.SimpleDateFormat("dd-MMM-yyyy-HH-mm-ss");
    Date d = new Date();
    String date = dateFormat.format(d);
		String filename =  WFHISTORY_FILE_NAME+date+".txt";
		NodeRef companyHomeRef = this.repository.getCompanyHome();
		NodeRef nodeRef = getNodeRef(companyHomeRef, WFHISTORY_FOLDER_NAME);
 
		if (nodeRef!=null) {
			NodeRef fnode = getNodeRef(nodeRef, filename);
			if (fnode!=null) {
				if (logger.isLoggingEnabled()) logger.warn(filename+" is already created");
				this.registry.getFileFolderService().delete(fnode);
			}
			try {		
				historyNode = this.registry.getFileFolderService().create(nodeRef, filename, contentQName).getNodeRef();
				if (logger.isLoggingEnabled()) logger.info(filename+"' was created");	
				ContentWriter writer = this.registry.getFileFolderService().getWriter(historyNode);
				String total = "";
				java.util.Enumeration e = history.keys();
				while (e.hasMoreElements()) {
					String key = (String) e.nextElement();
					String[] value = (String[]) history.get(key);
					total +="nCтатус поручения: "+value[1];
					total +="tДокументы: "+value[0]+"n";
				}
				writer.putContent(total);
			} catch(Exception fee) {
				if (logger.isLoggingEnabled()) logger.error(filename+"' cannot be created"+fee.toString());
				throw new WebScriptException(filename+"' cannot be created"+fee.toString());				
			}
		} else throw new WebScriptException("Unable to locate "+WFHISTORY_FOLDER_NAME+" path");
 
		return historyNode;
	}
 
	public void execute(WebScriptRequest req, WebScriptResponse res)
																								throws IOException {
 
		//Принимаем параметр user, представляющий из себя alfresco user id																					
		String controller = req.getParameter("user");
 
		Hashtable history = new Hashtable();
 
		WorkflowService wsi = this.registry.getWorkflowService();
 
		try {
 
			//Создаем объект JSONObject, который и запишем в rsponse скрипта
			JSONObject obj = new JSONObject();
 
			org.alfresco.service.namespace.QName inspection = 
				org.alfresco.service.namespace.QName.createQName(
										"http://www.somecompany.ru/model/workflow/1.0", "inspection");
 
			org.alfresco.service.namespace.QName perform = 
				org.alfresco.service.namespace.QName.createQName(
										"http://www.somecompany.ru/model/workflow/1.0", "perform");
 
			org.alfresco.service.namespace.QName approve = 
				org.alfresco.service.namespace.QName.createQName(
										"http://www.somecompany.ru/model/workflow/1.0", "approve");
 
			org.alfresco.service.namespace.QName owner = 
				org.alfresco.service.namespace.QName.createQName(
										"http://www.alfresco.org/model/content/1.0", "owner");
 
			/* Ищем все активные задачи ознакомления с поручениями.
			*/
			WorkflowTaskQuery workflowTaskQuery = new WorkflowTaskQuery();
			workflowTaskQuery.setWorkflowDefinitionName("activiti$PerformDirective");
			workflowTaskQuery.setActive(null);
			workflowTaskQuery.setTaskName(inspection);
			workflowTaskQuery.setTaskState(WorkflowTaskState.IN_PROGRESS);
 
			List<WorkflowTask> tasks = wsi.queryTasks(workflowTaskQuery);
 
			for (WorkflowTask task : tasks) {
				Map props = task.getProperties();
				NodeRef node = (NodeRef)task.properties.get(WorkflowModel.ASSOC_PACKAGE);
				String[] temp = new String[2];
				if (node!=null) temp[0] = getURLString(node); 
				else temp[0] ="Документы отсутствуют";
				temp[1] = "Поручение на ознакомлении у "+props.get(owner)+"";
				history.put(task.getId(), temp);
				obj.put(task.getId(), temp);
			}
 
			/* Ищем все активные задачи исполнения поручений
			*/
			workflowTaskQuery = new WorkflowTaskQuery();
			workflowTaskQuery.setWorkflowDefinitionName("activiti$PerformDirective");
			workflowTaskQuery.setActive(null);
			workflowTaskQuery.setTaskName(perform);
			workflowTaskQuery.setTaskState(WorkflowTaskState.IN_PROGRESS);
 
			tasks = wsi.queryTasks(workflowTaskQuery);
 
			for (WorkflowTask task : tasks) {
				Map props = task.getProperties();
				NodeRef node = (NodeRef)task.properties.get(WorkflowModel.ASSOC_PACKAGE);
				String[] temp = new String[2];
				if (node!=null) temp[0] = getURLString(node);
				else temp[0] ="Документы отсутствуют";
				temp[1] = "Поручение на исполнении у "+props.get(owner)+"";
				history.put(task.getId(), temp);
				obj.put(task.getId(), temp);
			}
 
			/* Ищем все активные задачи проверки исполнения поручений
			*/
			workflowTaskQuery = new WorkflowTaskQuery();
			workflowTaskQuery.setWorkflowDefinitionName("activiti$PerformDirective");
			workflowTaskQuery.setActive(null);
			workflowTaskQuery.setTaskName(approve);
			workflowTaskQuery.setTaskState(WorkflowTaskState.IN_PROGRESS);
 
			tasks = wsi.queryTasks(workflowTaskQuery);
 
			for (WorkflowTask task : tasks) {
				Map props = task.getProperties();
				NodeRef node = (NodeRef)task.properties.get(WorkflowModel.ASSOC_PACKAGE);
				String[] temp = new String[2];
				if (node!=null) temp[0] = getURLString(node);
				else temp[0] ="Документы отсутствуют";
				temp[1] = "Поручение на проверке исполнения у "+props.get(owner)+"";
				history.put(task.getId(), temp);
				obj.put(task.getId(), temp);
			}
 
			//Записываем результат в response
			String jsonString = obj.toString();
			res.getWriter().write(jsonString);
		} catch(JSONException e) {
			throw new WebScriptException("Unable to serialize JSON");
		}
 
		//Создаем файл отчета в репозитории
		NodeRef file = createHistory(history);
 
		/* Поднимаем процесс RequestResult с прицепленным отчетом
		Владельцем (получателем) задачи с отчетом будет юзер, переданный нам 
		в параметре user.
		*/
		if (file!=null) {
			String wfdefId = wsi.getDefinitionByName("activiti$RequestResult").getId();
 
			if (wfdefId!=null) {
				Map<QName, Serializable> params = new HashMap<QName, Serializable>();
 
				NodeRef pckg = wsi.createPackage(null);
				NodeService nodeService = this.registry.getNodeService();
				nodeService.addChild(pckg, file, ContentModel.ASSOC_CONTAINS,
               QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI,
               QName.createValidLocalName(
               (String) nodeService.getProperty(file, ContentModel.PROP_NAME))));
 
				params.put(WorkflowModel.ASSOC_PACKAGE, pckg);      
 
				NodeRef cu =  this.registry.getPersonService().getPerson(controller);
				params.put(WorkflowModel.ASSOC_ASSIGNEE, cu);
 
				params.put(WorkflowModel.PROP_WORKFLOW_DESCRIPTION, 
						"Отчет о состоянии поручений");
 
				WorkflowPath wfPath = wsi.startWorkflow(wfdefId, params);
			}
		}
	}
}

 


Компилируем наш класс, создаем jar и помещаем его в ALFRESCO_HOME/tomcat/webapps/alfresco/WEB-INF/lib

Как видите, программа поднимает workflow с названием RequestResult. Процесс этот элементарный, состоящий всего из одной задачи с прицепленным к ней документом отчета. 



Теперь мы должны объявить наш DirectiveHistory в Spring bean. Для этого в ALFRESCO_HOME/tomcat/shared/classes/extension создадим файл demo-context.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
<beans>
 
	<bean id="webscript.demo.demo.get" 
			class="ru.ossportal.webscripts.DirectiveHistory" 
			parent="webscript">
		<property name="repository" ref="repositoryHelper" />
		<property name="serviceRegistry" ref="ServiceRegistry" />
		<property name="externalHost">
			<value>${alfresco.externalHost}</value>
		</property>
		<property name="externalPort">
			<value>${alfresco.externalPort}</value>
		</property>
		<property name="externalProtocol">
			<value>${alfresco.externalProtocol}</value>
		</property>
	</bean>
 
</beans>

Отмечу, что в объявлении в Spring bean важно указывать установленные альфреской имена аттрибутов:
- префикс webscript означает, что вы объявляете реализацию веб-сценария;
- окончание get означает, что вэб скрипт будет "общаться" через HTTP GET;
- остальное указывает имя вэб скрипта и наименование пакета.

Таким образом мы объявили следующее:
- у нас есть вэб скрипт, имплементированный классом ru.ossportal.webscripts.DirectiveHistory;
- он объявлен пакетом org.alfresco.demo;
- его имя - demo;
- он принимает HTTP GET запросы.

Также в декларации указано, что Spring bean принимает ссылки на такие объекты, как Repository и Service Registry, а также ссылки на параметры, объявленные в alfresco-global.properties

Теперь время описать дескриптор вэб скрипта, который имплементирует GET:

<webscript>
  <shortname>Directive workflow history</shortname>
  <description>Directive report</description>
  <url>/demo/demo?user={user}</url>
  <authentication>user</authentication>
  <format default="">argument</format>
</webscript>

 


Дескриптор определяет метаданные регистрации для вэб скрипта: способ аутентификации, формат и пр. В нашем случае аутентификация установлена user, что означает как доступ, так и обязательную аутентификацию для любого юзеров альфрески, как только наш скрипт вызывается. Обязательная аутентификация необходима для защиты контента альфрески, так как в скрипте мы будем работать с папками и документами в репозитории.

Также наш дескриптор описывает, что параметром запроса будет имя учетной карточки в альфреске - конечного получателя отчета.

Запишем наш дескриптор в файл demo.get.desc.xml в папку ALFRESCO_HOME/tomcat/shared/classes/alfresco/templates/webscripts/demo

После того, как мы создали дескриптор, сделаем шаблон для вывода JSON. Там же, где находится дескриптор, создадим файл demo.get.json.ftl и запишем в него следующее:

${result}

 Шаблон будет выводить наш JSON объект "как есть".

Теперь осталось прописать в  ALFRESCO_HOME/tomcat/shared/classes/alfresco-global.properties параметры внешнего хоста, порта и протокола. В нашем случае их значения совпадают с локальными:

alfresco.externalHost=localhost
alfresco.externalProtocol=http
alfresco.externalPort=8080 

 Теперь рестартуем сервер, создадим в репозитории папку CompanyHome/WFHISTORY, отредактируем в Manage Space Users в свойствах папки доступ (добавим доступ EVERYONE/Сoorfinator) и вызовем наш скрипт:

http://localhost:8080/alfresco/service/demo/demo?user=ivanov

На столе у Иванова, учетная карточка которого ivanov, появится задача с прицепленным к ней отчетом

155
Прикрепленные файлыРазмер
requestresult.png3.67 кб
src.zip11.03 кб

Комментарии

Сделал все как вы написали но ничего не получилось. В чем проблема?

Message: 01140006 Web Script format '' is not registered
   
Exception: org.springframework.extensions.webscripts.WebScriptException - 01140006 Web Script format '' is not registered
Angelina аватар
С ходу ничего не приходит на ум.

Проверьте, прописаны ли переменные в alfresco-global.properties и проверьте внимательно, как Вы описали дескриптор. И еще вопрос: рестартовали ли Вы альфреско после всего?
Angelina аватар
Вы знаете, попробуйте еще переместить дескриптор (demo.get.desc.xml) и вьюер (demo.get.json.ftl) в папку ALFRESCO/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/templates/webscripts/org/alfresco/demo/

 Все проверил, переместил дескриптор и вьювер. Рестартовал альфреско. Ничего не помогло, та же ошибка...

11:19:10,369 ERROR [org.springframework.extensions.webscripts.AbstractRuntime] Exception from executeScript - redirecting to status template error: 01140012 Web Script format '' is not registered
org.springframework.extensions.webscripts.WebScriptException: 01140012 Web Script format '' is not registered
Angelina аватар
Скажите, а во время рестарта в логе не появляется никаких сообщений об ошибках?
В прошлом сообщении я написал ошибку котороя появляется в логах
Angelina аватар
В предыдущих сообщениях, я так понимаю, строки лога при запуске скрипта. Я хотела знать, появляются ли ошибки  при рестарте альфреско, а не скрипта. Может, запись в Spring bean некорректна. Может, еще что-то.
log после запуска алфрески

 
09:29:56,579 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Starting 'sysAdmin' subsystem, ID: [sysAdmin, default]
09:29:56,672 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Startup of 'sysAdmin' subsystem, ID: [sysAdmin, default] complete
09:30:57,054 INFO  [org.springframework.extensions.webscripts.TemplateProcessorRegistry] Registered template processor Repository Template Processor for extension ftl
09:30:57,085 INFO  [org.springframework.extensions.webscripts.ScriptProcessorRegistry] Registered script processor Repository Script Processor for extension js
09:31:23,072 INFO  [org.alfresco.repo.domain.schema.SchemaBootstrap] Connecting to database: jdbc:postgresql://localhost:5437/alfresco, UserName=alfresco, PostgreSQL Native Driver
09:31:23,087 INFO  [org.alfresco.repo.domain.schema.SchemaBootstrap] Schema managed by database dialect org.hibernate.dialect.PostgreSQLDialect.
09:31:29,479 INFO  [org.alfresco.repo.domain.schema.SchemaBootstrap] No changes were made to the schema.
09:31:33,948 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Starting 'Search' subsystem, ID: [Search, managed, solr]
09:31:34,354 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Startup of 'Search' subsystem, ID: [Search, managed, solr] complete
09:31:35,448 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Starting 'thirdparty' subsystem, ID: [thirdparty, default]
09:31:36,495 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Startup of 'thirdparty' subsystem, ID: [thirdparty, default] complete
09:31:36,495 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Starting 'OOoDirect' subsystem, ID: [OOoDirect, default]
09:31:38,698 WARN  [org.alfresco.util.OpenOfficeConnectionTester] An initial OpenOffice connection could not be established.
09:31:38,714 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Startup of 'OOoDirect' subsystem, ID: [OOoDirect, default] complete
09:31:38,714 INFO  [org.alfresco.repo.admin.ConfigurationChecker] The Alfresco root data directory ('dir.root') is: C:\Alfresco\alf_data
09:31:38,823 INFO  [org.alfresco.repo.admin.patch.PatchExecuter] Checking for patches to apply ...
09:31:42,714 INFO  [org.alfresco.repo.admin.patch.PatchExecuter] No patches were required.
09:31:42,761 INFO  [org.alfresco.repo.module.ModuleServiceImpl] Found 7 module(s).
09:31:43,199 INFO  [org.alfresco.repo.module.ModuleServiceImpl] Starting module 'workflow-shortcut-dashlet' version 1.3.
09:31:43,433 INFO  [org.alfresco.repo.module.ModuleServiceImpl] Starting module 'org.alfresco.module.vti' version 1.2.
09:31:43,574 INFO  [org.alfresco.repo.module.ModuleServiceImpl] Starting module 'com.alvexcore' version 1.3.1.
09:31:43,652 INFO  [org.alfresco.repo.module.ModuleServiceImpl] Starting module 'documents-registers' version 1.3.
09:31:43,777 INFO  [org.alfresco.repo.module.ModuleServiceImpl] Starting module 'org.alfresco.integrations.google.docs' version 2.0.1.
09:31:43,855 INFO  [org.alfresco.repo.module.ModuleServiceImpl] Starting module 'board-collaboration' version 1.3.
09:31:43,996 INFO  [org.alfresco.repo.module.ModuleServiceImpl] Starting module 'extension-registry' version 1.3.
09:31:44,137 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Starting 'fileServers' subsystem, ID: [fileServers, default]
09:31:46,105 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Starting 'Authentication' subsystem, ID: [Authentication, managed, alfrescoNtlm1]
09:31:46,762 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Startup of 'Authentication' subsystem, ID: [Authentication, managed, alfrescoNtlm1] complete
09:31:47,293 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Startup of 'fileServers' subsystem, ID: [fileServers, default] complete
09:31:47,293 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Starting 'imap' subsystem, ID: [imap, default]
09:31:48,887 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Startup of 'imap' subsystem, ID: [imap, default] complete
09:31:48,887 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Starting 'email' subsystem, ID: [email, outbound]
09:31:49,121 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Startup of 'email' subsystem, ID: [email, outbound] complete
09:31:49,121 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Starting 'email' subsystem, ID: [email, inbound]
09:31:49,450 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Startup of 'email' subsystem, ID: [email, inbound] complete
09:31:49,450 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Starting 'googledocs' subsystem, ID: [googledocs, default]
09:31:49,653 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Startup of 'googledocs' subsystem, ID: [googledocs, default] complete
09:31:49,653 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Starting 'Subscriptions' subsystem, ID: [Subscriptions, default]
09:31:49,700 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Startup of 'Subscriptions' subsystem, ID: [Subscriptions, default] complete
09:31:49,715 INFO  [org.alfresco.repo.usage.UserUsageTrackingComponent] Disabled - clear non-missing user usages ...
09:31:50,215 INFO  [org.alfresco.repo.usage.UserUsageTrackingComponent] Found 0 users to clear
09:31:50,215 INFO  [org.alfresco.repo.usage.UserUsageTrackingComponent] ... cleared non-missing usages for 0 users
09:31:50,215 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Starting 'Synchronization' subsystem, ID: [Synchronization, default]
09:31:50,434 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Startup of 'Synchronization' subsystem, ID: [Synchronization, default] complete
09:31:52,169 INFO  [org.alfresco.service.descriptor.DescriptorService] Alfresco JVM - v1.7.0_07-b10; maximum heap size 682,688MB
09:31:52,169 INFO  [org.alfresco.service.descriptor.DescriptorService] Alfresco started (Community). Current version: 4.2.0 (4576) schema 6 022. Originally installed version: 4.2.0 (4576) schema 6 022.
09:31:52,169 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Starting 'ActivitiesFeed' subsystem, ID: [ActivitiesFeed, default]
09:31:52,700 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Startup of 'ActivitiesFeed' subsystem, ID: [ActivitiesFeed, default] complete
09:31:52,700 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Starting 'Replication' subsystem, ID: [Replication, default]
09:31:52,731 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Startup of 'Replication' subsystem, ID: [Replication, default] complete
09:31:58,951 ERROR [org.alfresco.repo.action.AsynchronousActionExecutionQueueImpl] Failed to execute asynchronous action: Action[ id=8d8650c3-f4a8-4bd2-9788-358541516776, node=workspace://SpacesStore/8d8650c3-f4a8-4bd2-9788-358541516776 ]: 01180001 
org.alfresco.service.cmr.replication.ReplicationServiceException: 01180001 
at org.alfresco.repo.replication.ReplicationActionExecutor.executeImpl(ReplicationActionExecutor.java:265)
at org.alfresco.repo.action.executer.ActionExecuterAbstractBase.execute(ActionExecuterAbstractBase.java:241)
at org.alfresco.repo.action.ActionServiceImpl.directActionExecution(ActionServiceImpl.java:822)
at org.alfresco.repo.action.ActionServiceImpl.executeActionImpl(ActionServiceImpl.java:723)
at org.alfresco.repo.action.AsynchronousActionExecutionQueueImpl$ActionExecutionWrapper$1$1.execute(AsynchronousActionExecutionQueueImpl.java:405)
at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:433)
at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:304)
at org.alfresco.repo.action.AsynchronousActionExecutionQueueImpl$ActionExecutionWrapper$1.doWork(AsynchronousActionExecutionQueueImpl.java:414)
at org.alfresco.repo.security.authentication.AuthenticationUtil.runAs(AuthenticationUtil.java:529)
at org.alfresco.repo.action.AsynchronousActionExecutionQueueImpl$ActionExecutionWrapper.run(AsynchronousActionExecutionQueueImpl.java:417)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
09:32:02,404 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Starting 'googledocs' subsystem, ID: [googledocs, v2]
09:32:02,982 WARN  [org.alfresco.util.OpenOfficeConnectionTester] Error trying to query Open Office version information. OpenOffice.org's ConfigurationRegistry not implemented in this version of OOo. This should not affect the operation of OOo.
09:32:02,998 INFO  [org.alfresco.util.OpenOfficeConnectionTester] The OpenOffice connection was re-established.
09:32:02,998 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Startup of 'googledocs' subsystem, ID: [googledocs, v2] complete
09:32:03,201 INFO  [org.alfresco.module.vti.VtiServer] Vti server started successfully on port: 7070
09:32:03,201 INFO  [org.alfresco.module.vti.VtiServer] Vti server SessionIdManagerWorkerName: jetty1
09:32:03,748 ERROR [org.alfresco.repo.action.executer.MailActionExecuter] Failed to send email to Vitaliksol7@gmail.com
org.springframework.mail.MailSendException: Mail server connection failed; nested exception is javax.mail.MessagingException: Could not connect to SMTP host: 127.0.0.1, port: 25;
  nested exception is:
java.net.ConnectException: Connection refused: connect. Failed messages: javax.mail.MessagingException: Could not connect to SMTP host: 127.0.0.1, port: 25;
  nested exception is:
java.net.ConnectException: Connection refused: connect; message exception details (1) are:
Failed message 1:
javax.mail.MessagingException: Could not connect to SMTP host: 127.0.0.1, port: 25;
  nested exception is:
java.net.ConnectException: Connection refused: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1282)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370)
at javax.mail.Service.connect(Service.java:275)
at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:389)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:340)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:336)
at org.alfresco.repo.action.executer.MailActionExecuter.sendEmail(MailActionExecuter.java:632)
at org.alfresco.repo.action.executer.MailActionExecuter.executeImpl(MailActionExecuter.java:338)
at org.alfresco.repo.action.executer.ActionExecuterAbstractBase.execute(ActionExecuterAbstractBase.java:241)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.alfresco.repo.management.subsystems.SubsystemProxyFactory$1.invoke(SubsystemProxyFactory.java:72)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy230.execute(Unknown Source)
at org.alfresco.repo.action.ActionServiceImpl.directActionExecution(ActionServiceImpl.java:822)
at org.alfresco.repo.action.ActionServiceImpl.executeActionImpl(ActionServiceImpl.java:723)
at org.alfresco.repo.action.ActionServiceImpl.executeAction(ActionServiceImpl.java:557)
at org.alfresco.repo.action.ActionServiceImpl.executeAction(ActionServiceImpl.java:543)
at org.alfresco.repo.action.ActionServiceImpl.executeAction(ActionServiceImpl.java:831)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.alfresco.repo.security.permissions.impl.AlwaysProceedMethodInterceptor.invoke(AlwaysProceedMethodInterceptor.java:34)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.alfresco.repo.security.permissions.impl.ExceptionTranslatorMethodInterceptor.invoke(ExceptionTranslatorMethodInterceptor.java:46)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.alfresco.repo.audit.AuditMethodInterceptor.invoke(AuditMethodInterceptor.java:159)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy40.executeAction(Unknown Source)
at org.alfresco.repo.activities.feed.EmailUserNotifier.notifyUser(EmailUserNotifier.java:161)
at org.alfresco.repo.activities.feed.AbstractUserNotifier.notifyUser(AbstractUserNotifier.java:193)
at org.alfresco.repo.activities.feed.FeedNotifierImpl$1.processInternal(FeedNotifierImpl.java:309)
at org.alfresco.repo.activities.feed.FeedNotifierImpl$1.access$200(FeedNotifierImpl.java:269)
at org.alfresco.repo.activities.feed.FeedNotifierImpl$1$1.execute(FeedNotifierImpl.java:297)
at org.alfresco.repo.activities.feed.FeedNotifierImpl$1$1.execute(FeedNotifierImpl.java:294)
at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:433)
at org.alfresco.repo.activities.feed.FeedNotifierImpl$1.process(FeedNotifierImpl.java:293)
at org.alfresco.repo.activities.feed.FeedNotifierImpl$1.process(FeedNotifierImpl.java:269)
at org.alfresco.repo.batch.BatchProcessor$TxnCallback.execute(BatchProcessor.java:712)
at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:433)
at org.alfresco.repo.batch.BatchProcessor$TxnCallback.run(BatchProcessor.java:756)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
at java.net.Socket.connect(Socket.java:579)
at java.net.Socket.connect(Socket.java:528)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:232)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:189)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1250)
... 53 more
09:32:03,795 WARN  [org.alfresco.repo.activities.feed.FeedNotifier] FeedNotifier: Failed to process entry "Person admin".
org.alfresco.error.AlfrescoRuntimeException: 01180002 Failed to send email to:Vitaliksol7@gmail.com
at org.alfresco.repo.action.executer.MailActionExecuter.sendEmail(MailActionExecuter.java:659)
at org.alfresco.repo.action.executer.MailActionExecuter.executeImpl(MailActionExecuter.java:338)
at org.alfresco.repo.action.executer.ActionExecuterAbstractBase.execute(ActionExecuterAbstractBase.java:241)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.alfresco.repo.management.subsystems.SubsystemProxyFactory$1.invoke(SubsystemProxyFactory.java:72)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy230.execute(Unknown Source)
at org.alfresco.repo.action.ActionServiceImpl.directActionExecution(ActionServiceImpl.java:822)
at org.alfresco.repo.action.ActionServiceImpl.executeActionImpl(ActionServiceImpl.java:723)
at org.alfresco.repo.action.ActionServiceImpl.executeAction(ActionServiceImpl.java:557)
at org.alfresco.repo.action.ActionServiceImpl.executeAction(ActionServiceImpl.java:543)
at org.alfresco.repo.action.ActionServiceImpl.executeAction(ActionServiceImpl.java:831)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.alfresco.repo.security.permissions.impl.AlwaysProceedMethodInterceptor.invoke(AlwaysProceedMethodInterceptor.java:34)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.alfresco.repo.security.permissions.impl.ExceptionTranslatorMethodInterceptor.invoke(ExceptionTranslatorMethodInterceptor.java:46)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.alfresco.repo.audit.AuditMethodInterceptor.invoke(AuditMethodInterceptor.java:159)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy40.executeAction(Unknown Source)
at org.alfresco.repo.activities.feed.EmailUserNotifier.notifyUser(EmailUserNotifier.java:161)
at org.alfresco.repo.activities.feed.AbstractUserNotifier.notifyUser(AbstractUserNotifier.java:193)
at org.alfresco.repo.activities.feed.FeedNotifierImpl$1.processInternal(FeedNotifierImpl.java:309)
at org.alfresco.repo.activities.feed.FeedNotifierImpl$1.access$200(FeedNotifierImpl.java:269)
at org.alfresco.repo.activities.feed.FeedNotifierImpl$1$1.execute(FeedNotifierImpl.java:297)
at org.alfresco.repo.activities.feed.FeedNotifierImpl$1$1.execute(FeedNotifierImpl.java:294)
at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:433)
at org.alfresco.repo.activities.feed.FeedNotifierImpl$1.process(FeedNotifierImpl.java:293)
at org.alfresco.repo.activities.feed.FeedNotifierImpl$1.process(FeedNotifierImpl.java:269)
at org.alfresco.repo.batch.BatchProcessor$TxnCallback.execute(BatchProcessor.java:712)
at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:433)
at org.alfresco.repo.batch.BatchProcessor$TxnCallback.run(BatchProcessor.java:756)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.springframework.mail.MailSendException: Mail server connection failed; nested exception is javax.mail.MessagingException: Could not connect to SMTP host: 127.0.0.1, port: 25;
  nested exception is:
java.net.ConnectException: Connection refused: connect. Failed messages: javax.mail.MessagingException: Could not connect to SMTP host: 127.0.0.1, port: 25;
  nested exception is:
java.net.ConnectException: Connection refused: connect; message exceptions (1) are:
Failed message 1: javax.mail.MessagingException: Could not connect to SMTP host: 127.0.0.1, port: 25;
  nested exception is:
java.net.ConnectException: Connection refused: connect
at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:400)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:340)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:336)
at org.alfresco.repo.action.executer.MailActionExecuter.sendEmail(MailActionExecuter.java:632)
... 47 more
Caused by: javax.mail.MessagingException: Could not connect to SMTP host: 127.0.0.1, port: 25;
  nested exception is:
java.net.ConnectException: Connection refused: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1282)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370)
at javax.mail.Service.connect(Service.java:275)
at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:389)
... 50 more
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
at java.net.Socket.connect(Socket.java:579)
at java.net.Socket.connect(Socket.java:528)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:232)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:189)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1250)
... 53 more
09:32:05,561 ERROR [org.alfresco.repo.action.executer.MailActionExecuter] Failed to send email to Виталя@mail.ru
org.springframework.mail.MailSendException: Mail server connection failed; nested exception is javax.mail.MessagingException: Could not connect to SMTP host: 127.0.0.1, port: 25;
  nested exception is:
java.net.ConnectException: Connection refused: connect. Failed messages: javax.mail.MessagingException: Could not connect to SMTP host: 127.0.0.1, port: 25;
  nested exception is:
java.net.ConnectException: Connection refused: connect; message exception details (1) are:
Failed message 1:
javax.mail.MessagingException: Could not connect to SMTP host: 127.0.0.1, port: 25;
  nested exception is:
java.net.ConnectException: Connection refused: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1282)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370)
at javax.mail.Service.connect(Service.java:275)
at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:389)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:340)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:336)
at org.alfresco.repo.action.executer.MailActionExecuter.sendEmail(MailActionExecuter.java:632)
at org.alfresco.repo.action.executer.MailActionExecuter.executeImpl(MailActionExecuter.java:338)
at org.alfresco.repo.action.executer.ActionExecuterAbstractBase.execute(ActionExecuterAbstractBase.java:241)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.alfresco.repo.management.subsystems.SubsystemProxyFactory$1.invoke(SubsystemProxyFactory.java:72)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy230.execute(Unknown Source)
at org.alfresco.repo.action.ActionServiceImpl.directActionExecution(ActionServiceImpl.java:822)
at org.alfresco.repo.action.ActionServiceImpl.executeActionImpl(ActionServiceImpl.java:723)
at org.alfresco.repo.action.ActionServiceImpl.executeAction(ActionServiceImpl.java:557)
at org.alfresco.repo.action.ActionServiceImpl.executeAction(ActionServiceImpl.java:543)
at org.alfresco.repo.action.ActionServiceImpl.executeAction(ActionServiceImpl.java:831)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.alfresco.repo.security.permissions.impl.AlwaysProceedMethodInterceptor.invoke(AlwaysProceedMethodInterceptor.java:34)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.alfresco.repo.security.permissions.impl.ExceptionTranslatorMethodInterceptor.invoke(ExceptionTranslatorMethodInterceptor.java:46)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.alfresco.repo.audit.AuditMethodInterceptor.invoke(AuditMethodInterceptor.java:159)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy40.executeAction(Unknown Source)
at org.alfresco.repo.activities.feed.EmailUserNotifier.notifyUser(EmailUserNotifier.java:161)
at org.alfresco.repo.activities.feed.AbstractUserNotifier.notifyUser(AbstractUserNotifier.java:193)
at org.alfresco.repo.activities.feed.FeedNotifierImpl$1.processInternal(FeedNotifierImpl.java:309)
at org.alfresco.repo.activities.feed.FeedNotifierImpl$1.access$200(FeedNotifierImpl.java:269)
at org.alfresco.repo.activities.feed.FeedNotifierImpl$1$1.execute(FeedNotifierImpl.java:297)
at org.alfresco.repo.activities.feed.FeedNotifierImpl$1$1.execute(FeedNotifierImpl.java:294)
at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:433)
at org.alfresco.repo.activities.feed.FeedNotifierImpl$1.process(FeedNotifierImpl.java:293)
at org.alfresco.repo.activities.feed.FeedNotifierImpl$1.process(FeedNotifierImpl.java:269)
at org.alfresco.repo.batch.BatchProcessor$TxnCallback.execute(BatchProcessor.java:712)
at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:433)
at org.alfresco.repo.batch.BatchProcessor$TxnCallback.run(BatchProcessor.java:756)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
at java.net.Socket.connect(Socket.java:579)
at java.net.Socket.connect(Socket.java:528)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:232)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:189)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1250)
... 53 more
09:32:05,576 WARN  [org.alfresco.repo.activities.feed.FeedNotifier] FeedNotifier: Failed to process entry "Person Виталя".
org.alfresco.error.AlfrescoRuntimeException: 01180003 Failed to send email to:Виталя@mail.ru
at org.alfresco.repo.action.executer.MailActionExecuter.sendEmail(MailActionExecuter.java:659)
at org.alfresco.repo.action.executer.MailActionExecuter.executeImpl(MailActionExecuter.java:338)
at org.alfresco.repo.action.executer.ActionExecuterAbstractBase.execute(ActionExecuterAbstractBase.java:241)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.alfresco.repo.management.subsystems.SubsystemProxyFactory$1.invoke(SubsystemProxyFactory.java:72)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy230.execute(Unknown Source)
at org.alfresco.repo.action.ActionServiceImpl.directActionExecution(ActionServiceImpl.java:822)
at org.alfresco.repo.action.ActionServiceImpl.executeActionImpl(ActionServiceImpl.java:723)
at org.alfresco.repo.action.ActionServiceImpl.executeAction(ActionServiceImpl.java:557)
at org.alfresco.repo.action.ActionServiceImpl.executeAction(ActionServiceImpl.java:543)
at org.alfresco.repo.action.ActionServiceImpl.executeAction(ActionServiceImpl.java:831)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.alfresco.repo.security.permissions.impl.AlwaysProceedMethodInterceptor.invoke(AlwaysProceedMethodInterceptor.java:34)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.alfresco.repo.security.permissions.impl.ExceptionTranslatorMethodInterceptor.invoke(ExceptionTranslatorMethodInterceptor.java:46)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.alfresco.repo.audit.AuditMethodInterceptor.invoke(AuditMethodInterceptor.java:159)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy40.executeAction(Unknown Source)
at org.alfresco.repo.activities.feed.EmailUserNotifier.notifyUser(EmailUserNotifier.java:161)
at org.alfresco.repo.activities.feed.AbstractUserNotifier.notifyUser(AbstractUserNotifier.java:193)
at org.alfresco.repo.activities.feed.FeedNotifierImpl$1.processInternal(FeedNotifierImpl.java:309)
at org.alfresco.repo.activities.feed.FeedNotifierImpl$1.access$200(FeedNotifierImpl.java:269)
at org.alfresco.repo.activities.feed.FeedNotifierImpl$1$1.execute(FeedNotifierImpl.java:297)
at org.alfresco.repo.activities.feed.FeedNotifierImpl$1$1.execute(FeedNotifierImpl.java:294)
at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:433)
at org.alfresco.repo.activities.feed.FeedNotifierImpl$1.process(FeedNotifierImpl.java:293)
at org.alfresco.repo.activities.feed.FeedNotifierImpl$1.process(FeedNotifierImpl.java:269)
at org.alfresco.repo.batch.BatchProcessor$TxnCallback.execute(BatchProcessor.java:712)
at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:433)
at org.alfresco.repo.batch.BatchProcessor$TxnCallback.run(BatchProcessor.java:756)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.springframework.mail.MailSendException: Mail server connection failed; nested exception is javax.mail.MessagingException: Could not connect to SMTP host: 127.0.0.1, port: 25;
  nested exception is:
java.net.ConnectException: Connection refused: connect. Failed messages: javax.mail.MessagingException: Could not connect to SMTP host: 127.0.0.1, port: 25;
  nested exception is:
java.net.ConnectException: Connection refused: connect; message exceptions (1) are:
Failed message 1: javax.mail.MessagingException: Could not connect to SMTP host: 127.0.0.1, port: 25;
  nested exception is:
java.net.ConnectException: Connection refused: connect
at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:400)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:340)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:336)
at org.alfresco.repo.action.executer.MailActionExecuter.sendEmail(MailActionExecuter.java:632)
... 47 more
Caused by: javax.mail.MessagingException: Could not connect to SMTP host: 127.0.0.1, port: 25;
  nested exception is:
java.net.ConnectException: Connection refused: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1282)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370)
at javax.mail.Service.connect(Service.java:275)
at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:389)
... 50 more
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
at java.net.Socket.connect(Socket.java:579)
at java.net.Socket.connect(Socket.java:528)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:232)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:189)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1250)
... 53 more
Angelina аватар
К сожалению, лог ничего не дал (у Вас там, кстати, ошибка в посылке почты, видимо, почтовик не настроен)

Знаете,  все же попытайтесь открыть все xml-ки - дескриптора и бинов - в каком-нить броузере или же редакторе xml-а и убедитесь, что они правильные, что все тэги закрыты и на своих местах
 а вы можете скинуть свои рабочеи xml ки? и jar
Angelina аватар
Я прикреплю к теме jar, а xml-ки в теме и есть рабочие.
 спасибо
Angelina аватар
Прицепила, скачивайте XML-ки тоже прицепила на всякий
Поставил выши файлы, все проверил - неработает, ошибка та же
Angelina аватар
Вы знаете, я сейчас все проставила заново у себя. Затем повторила это на Windows и все сработало

Такая ошибка возникала у меня в следующих случаях:
- когда xml-ки конфигурации были невалидными, неправильными, какая-то синтаксическая ошибка влезла в тексты;
- id бинов совпадали с какими-то другими, уже существующими;
- файлы конфигурации располагались в неправильных местах под альфреской

Я боюсь, больше ничем помочь не могу. Тут уже надо смотреть на месте.