Alfresco: ошибка при редактировании метаданных

При редактировании метаданных Alfresco 3.4 выдает сообщение вида:

Failed to execute transaction-level


В catalina.out наблюдаем:

20:26:15,948 ERROR [extensions.webscripts.AbstractRuntime] Exception from executeScript — redirecting to status template error: 05193552 Failed to execute transaction-level behaviour public abstract void org.alfresco.repo.node.NodeServicePolicies$OnUpdatePropertiesPolicy.onUpdateProperties(org.alfresco.service.cmr.repository.NodeRef,java.util.Map,java.util.Map) in transaction 5d9b5b9f-76a3-47b8-b73a-6dbc03c686f4
org.alfresco.error.AlfrescoRuntimeException: 05193552 Failed to execute transaction-level behaviour public abstract void org.alfresco.repo.node.NodeServicePolicies$OnUpdatePropertiesPolicy.onUpdateProperties(org.alfresco.service.cmr.repository.NodeRef,java.util.Map,java.util.Map) in transaction 5d9b5b9f-76a3-47b8-b73a-6dbc03c686f4


Caused by: org.alfresco.repo.security.permissions.AccessDeniedException: 05193551 Access Denied. You do not have the appropriate permissions to perform this operation.


Проблема в том, что пользователь должен иметь право Consumer для области Data Dictionary. Или группа EVERYONE должна иметь соответствующие права:



issues.alfresco.com/jira/browse/ALF-5660

Alfresco: падение виртуальной машины Java при загрузке документа в Share

Столкнулся с неприятным глюком. При загрузке некоторых pdf документов java машина падает со следующей ошибкой в логах:

# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00002aab03784a37, pid=15890, tid=1123088704
#
# JRE version: 6.0_18-b07
# Java VM: Java HotSpot(TM) 64-Bit Server VM (16.0-b13 mixed mode linux-amd64 )
# Problematic frame:
# C [libfontmanager.so+0x27a37]


Решение нашел здесь:

forums.alfresco.com/en/viewtopic.php?f=47&t=37225&start=0

Суть — заменить .jar файлы pdfbox-x.x.x.jar и fontbox-x.x.x.jar в tomcat/webapps/alfresco/WEB-INF/lib на более новые, например, отсюда:

mirror.ox.ac.uk/sites/rsync.apache.org/pdfbox/1.5.0/pdfbox-1.5.0.jar
mirror.ox.ac.uk/sites/rsync.apache.org/pdfbox/1.5.0/fontbox-1.5.0.jar

pdf документ для проверки: www.omicsonline.org/2155-9570/2155-9570-2-126.pdf

Java по-японски

Мир Java воистину безграничен. Изучая возможности запуска Java-приложений под ОС Windows Mobile (Pocket PC), обнаружил еще одну реализацию — Mysaifu JVM. На уже знакомый читателям Мтааламу Asus A620 продукт установился на ура. Для пробы подготовил типичный «Hello, World». Программа запустилась без проблем. Особо порадовало то, что подошли классы, скомпилированные стандартным JDK. Это выгодно отличает данную реализацию от JavaME, для которой откомпилировать классы и запаковать их в архив — целое мероприятие. Еще один плюс — несмотря на то, что данную JVM писал японец, кириллические буквы там прекрасно поддерживаются, в полном соответствии с идеологией Java (замечу, что в JavaME с кириллизацией всё совсем не просто).



( Читать дальше )

Инициализация хэш-таблиц двойными скобками

Прием не нов, публикую из соображений «чтобы долго не искать»:

Map<String, Object> myMap = new HashMap<String, Object>(){{
          put("today", new Date());
          put("pet", new Dog("Fido"));
          put("foo", bar);
}};


Очень удобно для скриптовых языков, основанных на Java-синтаксисе (GWT, Groovy).

Почему Java не вполне свободна?

Готовится к выпуску Java 7 (осталась пара месяцев до релиза). В связи с этим обострились давние споры о лицензионной чистоте этой технологии. В юридических хитросплетениях буржуйского законодательства об интеллектуальной собственности разобраться не просто, но мне, наконец, попалась пара абзацев, где более-менее ясно описывается ситуация:

Основная проблема лицензирования связана с тем, что, что несмотря на открытый характер спецификации Java и доступность кода OpenJDK под лицензией GPL, тестовый пакет для проверки совместимости с Java содержит пункт «область применения», который указывает на то, что протестированный с помощью TCK продукт не может использоваться в ограниченной среде, т.е. его можно запускать на настольном ПК, но не в контент-киоске (платежные терминалы, информационные автоматы, банкоматы и т.п.), не внутри промышленной системы и не в мобильных платформах… Тем не менее есть надежда на изменение ситуации, в мае компания Oracle заявила о намерении реформировать связанную с Java управляющую структуру, сделав её более открытой и пересмотрев вопрос лицензирования TCK. По предварительной оценке процесс реформирования займет 12-18 месяцев.

Выбрать случайный элемент массива

Иногда в программе на Java требуется выбрать случайное значение из массива объектов. Сделать это можно примерно так:

String[] sa = new String[]{"111", "222", "333", "444", "555"};
int n = (int)Math.floor(Math.random() * sa.length);
System.out.println(sa[n]);

YUI Compressor: сжимаем JavaScript файлы

Про обезжириватели JavaScript уже был топик. Вот, кстати, решение на Java.



developer.yahoo.com/yui/compressor/

Скачиваем архив здесь:

yuilibrary.com/downloads/#yuicompressor

В архиве в директории build будет уже собранный jar файл. Запускаем его так:

java -jar yuicompressor-x.y.z.jar --type js --charset utf-8 --nomunge --preserve-semi --disable-optimizations  исходный-скрипт.js -o сжатый-скрипт.js


Без ключа --nomunge код будет немножечко обфусцирован.

Ulteo: виртуальный десктоп в браузере

Ulteo — это сервер, позволяющий в браузере получить доступ к таким приложениям, как, например, OpenOffice. Приложение, естественно выполняется на стороне сервера, мы видим лишь передаваемое изображение. Для работы необходима поддержка Java браузером:



Скачать пакеты для основных дистрибутивов а также отдельный дистрибутив Ulteo можно здесь. Обращаем внимание, что ссылки на скачивание находятся внутри документации.

После установки админка доступна по адресу:

( Читать дальше )

Alfresco: отключение кнопки "Смена пароля"

Т.к. я использую авторизацию через LDAP сервер Zimbrы (см. здесь и здесь) смена пароля пользователем не нужна. Чтобы скрыть в Alfresco Share соответствующий пункт меню редактируем файл /opt/alfresco/tomcat/webapps/share/WEB-INF/classes/alfresco/share-config.xml, комментируя:


               <container-group id="usermenu" label="">
                  <item type="user" id="status">{userprofilepage}</item>
                  <item type="link" id="my-profile">{userprofilepage}</item>
                  <!-- <item type="link" id="change-password" condition="!context.externalAuthentication">/user/change-password</item> -->
                  <item type="external-link" id="help">{share-help}</item>
                  <item type="link" id="logout" condition="!context.externalAuthentication">/dologout</item>
               </container-group>



Alfresco: переход с порта 8080 на 80

Наиболее простой способ заставить Alfresco работать на 80 порту это не править конфигурационные файлы, а использовать обратный прокси на базе web сервера Cherokee. Например, см. топик Настраиваем реверс прокси в Cherokee для работы с Tomcat. По установке Cherokee было подробно изложено в топике Mihael: CentOS 5.5: Установка веб сервера Cherokee + PHP5.3 + MySQL

В админке Cherokee в виртуальных хостах есть заготовочка для Alfresco:

( Читать дальше )