Я пытаюсь предоставить интерфейс, который я могу вызвать из MATLAB для доступа к содержимому базы данных. У меня уже есть существующий интерфейс Java, который использует eclipselink для подключения к базе данных, и я хотел бы использовать его повторно. Я написал класс для обеспечения этого, и он работает правильно, когда я вызываю его прямо из Java, но когда я пытаюсь вызвать его из MATLAB, я получаю следующее исключение:
javax.persistence.PersistenceException: No Perisistence provider for EntityManager named DatabaseConnection
Обычно это исключение возникает, когда у меня нет папки META-INF с файлом persistence.xml в пути к классам, но я попытался поместить базовую папку, содержащую папку META-INF, в динамический и статический MATLAB javaclasspaths. без успеха. Опять же, этот точный код (включая persistence.xml) отлично работает при запуске из Java. Кто-нибудь знает, чего мне не хватает?
Единственное основное отличие, которое мне удалось отследить по сравнению с тем, что происходит при запуске Java-кода, заключается в том, что MATLAB использует загрузчик классов OSGI (felix), а не загрузчик классов по умолчанию, который использует Java, но я не понял какая разница с поиском файла persistence.xml.