#java #persistence #osgi #eclipselink
#java #постоянство #osgi #eclipselink
Вопрос:
Я использую пакеты Eclipselink из Springsource (версия 1.1.0) внутри Apache Felix. Мои (аннотированные JPA) классы сущностей сохраняются и т.д., Поэтому базовый механизм работает. Однако я сомневаюсь, что переплетение байт-кода выполнено.
Как я могу проверить, использует ли Eclipselink переплетение в моих классах?
Поддерживается ли плетение вообще при запуске в Felix? Я ничего не менял в своей конфигурации или сценариях запуска, должен ли я?
Ответ №1:
Смотрите Документы Eclipse внизу страницы;
import org.eclipse.persistence.internal.helper.Helper;
import org.eclipse.persistence.internal.weaving.PersistenceWeaved;
...
if (Helper.classImplementsInterface(MyEntity.class, PersistenceWeaved.class)) {
// MyEntityEntity successfully woven!
...
Ответ №2:
Я вижу два метода определения, включено ли динамическое переплетение:
-
установите уровень журнала EclipseLink в
persistence.xml
наFINEST
, и вы увидите в журналах во время инициализацииEntityManagerFactory
/PersistenceUnit
, будет ли использоваться переплетение или нет. -
Определите процесс jvm, который обслуживает ваше приложение. Используйте инструменты операционной системы или javatools, такие как jconsole / jvisualvm, для определения командной строки. Если вы можете определить агент eclipselink (
-javaagent:eclipselink.jar
) в аргументах виртуальной машины, динамическое переплетение включено — в противном случае нет.
Ответ №3:
Я бы рекомендовал вам использовать статическое переплетение в этой среде.