По умолчанию функция jpa-2.0 предоставляет приложениям только стандартные спецификации пакеты JPA. Он не предоставляет готовые классы, специфичные для реализации JPA.
В вашем случае, поскольку вам необходимо предоставить классы OpenJPA Liberty для вашего приложения (и библиотек внутри вашего приложения, такого как Spring / Hibernate), вы можете включить это с помощью механизма Liberty "api type visibilty".
Я предполагаю, что ваше приложение настроено примерно так в server.xml:
<application location="myApp.war"/>
Чтобы ваше приложение могло видеть сторонние (например, OpenJPA) классы, вы можете сделать это:
<application location="myApp.war">
<!-- spec, ibm-api, and stable are enabled by default. -->
<!-- Add third-party to get access to OpenJPA classes from your application -->
<classloader apiTypeVisibility="spec, ibm-api, stable, third-party"/>
</application>
Официальная документация Liberty: Доступ к сторонним API-интерфейсам
Вам может быть интересно:
Почему Liberty не делает классы third-party
, такие как OpenJPA, доступными по умолчанию?
Это потому, что Liberty гарантирует нулевую миграцию, когда все вещи остаются постоянными, а вы просто переходите на более новую версию Liberty. Нулевая миграция, по сути, означает «вам не придется менять какое-либо приложение или конфигурацию при обновлении». Сторонние классы не находятся под непосредственным контролем Liberty и потенциально могут вносить критические изменения в API и, следовательно, нарушать нулевую миграцию. По этой причине Liberty по умолчанию предоставляет только официальные / стандартные API, такие как JavaEE и MicroProfile API.