WedX - журнал о программировании и компьютерных науках

Спящий режим, WebLogic 10.3 и JPA 2.0

Я создал приложение, используя Spring 4.0, Hibernate 4.3 и JPA 2.1. К сожалению, в последний момент я понял, что используемый нами сервер не поддерживает JPA 2.1 (WebLogic 10.3.6).

Обратите внимание, что я не контролирую сервер, который мы используем — я не могу обновить его до более высокой версии. Кроме того, я знаю, что должен был лучше знать, что мы использовали; однако я не могу изменить это сейчас. Это будет уроком на будущее.

Сейчас я стою перед дилеммой, поскольку клиент видел рабочую версию локально и ожидает, что приложение будет развернуто на веб-сервере в ближайшее время. Я понял, что мне нужно переписать большие части слоя сохраняемости данных.

Может ли кто-нибудь из вас помочь мне определить, какие области различаются между Hibernate 4.2.8 и Hibernate 4.3, а также разницу между JPA 2.1? Я знаю, что это большой вопрос, но у меня нет другой точки отсчета, чтобы помочь в моей организации. Я надеюсь, что смогу получить некоторые указания здесь.

На данный момент я считаю, что возврат к более ранним версиям затронет следующие области:

  • JPA-таблицы
  • Индексы соединения JPA
  • Немного автовайринга
  • Некоторые аннотации

Я знаю, что есть несколько других проблем, но я нахожу их, когда исправляю другие проблемы. Одна из самых больших проблем, с которыми я сталкиваюсь, — это соединения, поскольку у меня много двунаправленных отношений с использованием @ManyToOne и столбцов соединения.

Мой вопрос: какие возможности, которые обычно используются в Hibernate 4.3, отсутствуют в Hibernate 4.2.x? Какие возможности не поддерживаются без JPA 2.1? Считаете ли вы, что различия достаточно велики, чтобы потребовать перезаписи текущего уровня сохраняемости данных с нуля?

Если это слишком большой вопрос, пожалуйста, дайте мне знать, и я постараюсь уточнить его дальше.

Спасибо заранее за вашу помощь.

15.05.2014

Ответы:


1

У нас была такая же проблема с weblogic 12. Наше приложение использует hibernate/JPA 2.1 и конфликтует с JPA 2.0, который предоставляет weblogc 12.

Вы можете использовать Инструмент анализа загрузчика классов WebLogic (также называемый wls-cat) для выявления всех конфликтов между библиотеками WLS и вашим приложением.

Решение состоит в том, чтобы указать weblogic не использовать старые фреймворки, которые он связывает.

В моем случае я развертываю войну, содержащую спящий режим и API JPA 2.1.

Создайте WEB-INF/weblogic.xml

<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app
  xmlns:wls="https://xmlns.oracle.com/weblogic/weblogic-web-app"
  xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="https://java.sun.com/xml/ns/javaee https://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd https://xmlns.oracle.com/weblogic/weblogic-web-app https://xmlns.oracle.com/weblogic/weblogic-web-app/1.4/weblogic-web-app.xsd">
  <wls:container-descriptor>
    <wls:prefer-application-packages>
      <wls:package-name>org.slf4j</wls:package-name>
      <wls:package-name>org.joda</wls:package-name>
      <wls:package-name>javax.persistence</wls:package-name>
    </wls:prefer-application-packages>
  </wls:container-descriptor>
</wls:weblogic-web-app>

Было бы здорово, если бы был способ указать weblogic использовать все библиотеки в WAR и никогда не использовать старые копии библиотек.

02.09.2014
Новые материалы

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

Учебные заметки: создание моего первого пакета Node.js
Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

ИИ в аэрокосмической отрасли
Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


Для любых предложений по сайту: [email protected]