Установить MS Office (достаточно произвести установку Word и Excel), проверить что он установлен. Перезагрузить Windows если установка проводилась.
Проверить наличие и права на папки (создать если нет): C:\Windows\SysWOW64\config\systemprofile\Desktop C:\Windows\System32\config\systemprofile\Desktop
Если CMJ-сервер запущен на WildFly 16, то можно пропустить этот шаг |
Поставить WildFly 16, тип запуска Automatic, запуск службы желательно производить от «Local System Account» (С системной учетной записью) и активным чек-боксом «Allow service to interact with desktop» (Разрешить взаимодействие с рабочим столом).
При желании можно запускать WildFly под администратором или технологической учетной записью, имеющей права администратора на сервере, хоть это и не рекомендуется.
В каталог с настройками CM, который указан в файле конфигурации WildFly - /standalone/configuration/standalone.xml:
<system-properties> <property name="server.properties.location" value="<path>"/> ... </system-properties> |
Поместить файл sedsvc.properties по пути server.properties.location
Запустить через Win+R dcomcnfg, в нем открываем Console Root-Component Services-Computers-My Computer-DCOM Config (Корень консоли-Службы компонентов-Компьютеры-Мой Компьютер-Настройка DCOM)
Для объектов:
Документ Microsoft Word 97–2003 Office Licensing COM Server 16 Microsoft Excel Application |
В свойства выставить:
Identity (Безопасность) - the launching user (Запускающий пользователь)
Если WildFly запускается под администратором или некой технологической учетной записью (п.3) для тех же объектов DCOM требуется на вкладке "Безопасность" в каждом из разделов ("разрешение на запуск и активацию", "разрешение на доступ", "разрешение на изменение настроек") прописать эту учетную запись персонально, указав права идентичные группе Администраторы. На вкладке "Удостоверение" указываем запуск от указанного пользователя. Если запуск WildFly настроен под системной учетной записью дополнительных настроек на вкладках "Безопасность" и "Удостоверение" не требуется.
Выполняем первый запуск офиса под учетной записью из-под которой запускается WildFly. Для запуска из-под системной учетной записи используем утилиту psexec входящую в пакет MS SysInternals УТИЛИТА
psexec.exe -sid "C:\Program Files\Microsoft Office\Office16\WINWORD.exe" |
psexec.exe -sid "C:\Program Files\Microsoft Office\Office16\EXCEL.exe" |
В всплывающем окне при первом запуске поставить чек-бокс "Использовать приложение по умолчанию". Также, необходимо установить Ассоциирование расширений файлов doc, docx для MS Word; xls, xlsx для MS Excel. При последующих запусках никаких всплывающих окон возникать не должно (блокирует).
После чего необходимо снять чек-бокс в параметрах Word "Общие -> Параметры запуска -> Открывать вложения электронной почты и другие нередактируемые файлы в режиме чтения". Помимо этого, можно выполнить ряд рекомендательных настроек для увеличения быстродействия работы сервиса:
Добавить в папку деплоя WF приложение SEDSVC-3.Х.Х.war последней версии (\\192.168.1.13\Dev\CompanyMedia\CM7.0.0.Instruction)
Запусть WildFly .
Убедиться что запустился WildFly , SEDSVC-3.Х.Х.war задеплоился и создались процессы офиса в количестве указанном конфиге sedsvc.properties (п.5 данной инструкции).
Проверить корректность работы svcWord2Pdf из страницы SEDSVC:
Зайти на страницу сед-сервиса http://<hostname>:<port>/sedsvc-war/
Перейти на страницу проверки “exec Word2Pdf converter”
В окне mainData ввести json:
{ "doPdfValidate" : true, "priority" : "NORMAL", "isMakeStamp":true, "files": [{ "document":"recv-0001.doc", "config":"recv-0000.cfg" }] } |
Перейти по ссылке “***/fix” и скачать fix ответ.
В логах WildFly cm.log необходимо найти две строчки по обработке файла, одна оканчивается START, другая FINISH
Так же в логе указано время обработки файлов в мс. Если обе строки присутствуют - проверку можно считать успешно выполненной.
Перенастроить CMJ сервер на использование данного сервера для конвертации.
В server.properties параметр sedsvc.entrypoint.url
# Адрес (URL) "точки входа" для СЭД-сервисов. sedsvc.entrypoint.url=http://<hostname>:<port>/sedsvc-war/ext-sedsvc/entry-point/ |