С момента моего первого поста о моем опыте новичка с Девой прошло много времени, но это не значит, что он медленно исчез из поля зрения! Наоборот; Сейчас я запускаю сервер приложений Java на трех серверах, и я чувствую, что достаточно хорошо понимаю механизмы, чтобы легко поддерживать приложения Java, на которых я работаю. Однако эта легкость достигла своей цены, потому что у меня было несколько трудных проблем, чтобы пережевать, прежде чем я, наконец, получил все, чтобы работать так, как я хотел.
Прежде чем продолжить, я должен сказать, что я все еще очень доволен настройкой, описанной в первом посте . Вскоре после того, как я поделился своим опытом, мне пришлось снова пройти все этапы, потому что стала доступна версия ядра 3.6.4 , и теперь у меня было несколько часов, прежде чем я все запустил и запустил. Краткий обзор ситуации:
- Сервер Debian Squeeze
- Oracle JAVA 7 установлен
- Ядро Virgo 3.6.4, с сервером Jetty, но установленным по-другому, чем версия сервера Jetty, которую предлагает команда Virgo
- RAP 2.3.0 установлен
Как упоминалось в предыдущем посте, я решил не переходить на стандартную версию Virgo Jetty, потому что на момент написания этой статьи она была — на мой взгляд — грязной и несколько раздутой, с множеством двойных комплектов (например, Spring). связки), что затрудняло отладку. В моей версии был хороший баланс между простотой версии nano-rap, но с расширяемостью обычного ядра. Единственным недостатком является то, что стилизация консоли управления в какой-то момент исчезла, и я пока не смог это исправить.
Когда я установил и запустил ядро 3.6.4, я почувствовал, что есть место для улучшений, и столкнулся с рядом трудных проблем конфигурации. В целом, были сделаны следующие улучшения:
- Ядро поддерживает
Java 7
. javax.crypto
Пакет доступен- Обновитесь до
RAP 3.0
Требуемые изменения незначительны, но особенно вторая функция стоила мне много головной боли. Я проведу необходимые изменения, чтобы сделать эту работу.
Первые две модификации требуют изменения в java6-server.profile
файле, который находится в $SERVER_HOME/configuration
папке. На следующем рисунке показаны изменения, необходимые для активации поддержки Java 7
. В конце файла добавьте выделенную строку:
org.osgi.framework.executionenvironment = \
OSGi/Minimum-1.0,\
OSGi/Minimum-1.1,\
J2SE-1.2,\
J2SE-1.3,\
J2SE-1.4,\
J2SE-1.5,\
JavaSE-1.6,\
JavaSE-1.7
osgi.java.profile.name = Virgo-Java6
Благодаря этому становится возможным обновить RAP до версии 3.0. Но перед этим я столкнулся с некоторыми проблемами, пытаясь javax.crypto
активировать пакет, который мне нужно было использовать для twitter4j . Чтобы сделать это возможным, добавьте в java6-server.profile
файл следующее:
org.osgi.framework.system.packages = \
...
javax.crypto,\
javax.crypto.interfaces,\
javax.crypto.spec,\
...
org.osgi.framework.bootdelegation = \
org.eclipse.virgo.nano.authentication,\
com.sun.*,\
javax.xml.*,\
javax.crypto.*,\
org.apache.xerces.jaxp.*,\
org.w3c.*,\
org.xml.*,\
sun.*
В org.osgi.framework.system.packages
основном предоставляет пакеты из JRE
для использования в пользовательском регионе, в то время как org.osgi.framework.bootdelegation
выпускает пакеты для загрузчика Equinox. Системные пакеты уже были подготовлены с выпуском ядра 3.6.4, но crypto
пакеты все еще необходимо было добавить в делегирование загрузки .
Пакет, который использует twitter4j (или другую библиотеку, которая использует javax.crypto) должен импортировать пакеты javax.crypto в MANIFEST.MF, даже если на них нет ссылок! Если нет, вы получите ошибку времени выполнения, когда приложению понадобятся пакеты. В моей настройке этот пакет был активирован в плане, и я обнаружил, что песочница Дева крайне ограничена. Что, кстати, не критика.
С этими изменениями twitter4j работал как шарм.
Наконец, я хотел обновить RAP. Это было просто вопрос замены четырех RAP 2.3.0 bundles
с их аналогами 3.0, а затем изменения плана org.eclipse.rap:
<?xml version="1.0" encoding="UTF-8"?>
<plan name="org.eclipse.rap" version="3.0.0" scoped="false" atomic="true"
xmlns="http://www.eclipse.org/virgo/schema/plan"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.eclipse.org/virgo/schema/plan
http://www.eclipse.org/virgo/schema/plan/eclipse-virgo-plan.xsd">
<artifact type="bundle" name="org.eclipse.rap.rwt" version="[3.0.0, 4.0.0)" />
<artifact type="bundle" name="org.eclipse.rap.rwt.osgi" version="[3.0.0, 4.0.0)" />
<artifact type="bundle" name="org.eclipse.rap.jface" version="[3.0.0, 4.0.0)" />
<artifact type="bundle" name="org.eclipse.rap.jface.databinding" version="[3.0.0, 4.0.0)" />
</plan>
Благодаря этим модификациям сервер приложений Virgo был полностью обновлен!