Статистика посещений моего блога показывает, что наиболее читаемыми являются мои записки про Alfresco. По этому, продолжаю описывать свою эпопею по установке и настройке этой EMS. Собственно, установив Alfresco и запуская его, я продолжал читать файл протокола alfresco.log. И нашел в своем вот такие строки:
11:27:21,879 ERROR [org.alfresco.util.exec.RuntimeExecBootstrapBean] Bootstrap command failed: Execution result: os: Linux command: "soffice" "-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" "-env:UserInstallation=file://oouser" -nologo -headless -nofirststartwizard -nocrashrep -norestore succeeded: false exit code: 2 out: err: Cannot run program ""soffice"": java.io.IOException: error=2, No such file or directory
То бишь, хоть и старался я, и угадывал, какой же путь к Open Office указать при установке, все это, увы, оказалось безрезультатно! Как видно из приведенного фрагмента лога — «Файл не найден» — утверждает программа! Чтож, будем искать! Первым направлением «поисков» было традиционное слово — «пути». Дело происходило отнюдь не вчера, и некоторые детали я уже и не помню. Но, по моему, все таки именно я, следуя совету уж не помню из какого форума, создал в «стандартной» папке /usr/bin т.н. «жесткую ссылку» на программу soffice. А может быть и не я, а сама процедура установки Open Office. Одним словом, не помешает проверить ее наличие, и если там ссылки нет, то создать ее командой:
ln -s /opt/openoffice.org3/program/soffice /usr/bin/soffice
После этого проблем с запуском Open Office (в том числе и из консоли) нет — где бы ни был, кто бы не запускал — Open Office стартует на ура. Перезапускаю Alfresco, смотрю в лог — сообщение об ошибке осталось — «программа не найдена». Ну что за беда! Смущали меня лишь кавычки вокруг имени программы (soffice) — их почему-то было аж по паре с каждой из сторон. Поиск по форуму Alfresco подтвердил — мои сомнения были не напрасны. Как оказалось, это баг в файле, запускающем Open Office из Alfresco. Итак, идем в папку /opt/Alfresco/tomcat/shared/classes/alfresco/extension/bootstrap, находим в ней файл openoffice-startup-context.xml и смотрим его содержимое. Точнее, ту его часть, которая определяет значение «openOfficeStartupCommand». Вот так она выглядит в «родном» виде из архива:
<bean id="openOfficeStartupCommand" class="org.alfresco.util.exec.RuntimeExec"> <property name="commandMap"> <map> <entry key=".*"> <value><![CDATA["soffice" "-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" "-env:UserInstallation=file://oouser" -nologo -headless -nofirststartwizard -nocrashrep -norestore]]></value> </entry> </map> </property>
Сама команда, запускающая Open Office, приведена в строке, начинающейся с «<value><![CDATA[…» (и т.д.). И именно в ней присутствуют эти самые кавычки. Я их в приведенном выше фрагменте файла для наглядности выделил красным. Вот именно эти кавычки и нужно убрать! ВНИМАНИЕ! Строка длинная, поэтому, просмотрите ее всю — в ней нужно убрать ТРИ ПАРЫ кавычек! Удаляем их все раз и навсегда! И, сохранивши файл openoffice-startup-context.xml, перезапускаем Alfresco. И вот, после выполнения данных изменений фрагмент моего лога стал выглядеть таким образом:
18:47:15,115 WARN [org.alfresco.util.OpenOfficeConnectionTester] An initial OpenOffice connection could not be established. 18:47:15,636 INFO . . . 18:47:15,637 WARN . . . 18:47:15,651 INFO . . . 18:47:17,312 WARN . . . 18:48:32,384 INFO [org.alfresco.util.OpenOfficeConnectionTester] The OpenOffice connection was re-established.
Как мы видим в последней строке цитаты, «соединение с Open Office восстановлено». То еть, все ОК!…