javax.persistence.Persistence.createEntityManagerFactory не работает с ClassGuard - PullRequest
3 голосов
/ 27 января 2011

Я просто смотрю на ClassGuard (хотя я знаю некоторые возражения на него).

Однако я получаю javax.persistence.PersistenceException: [PersistenceUnit: MyPU] class or package not found, которого я не получаюбез ClassGuard.

Исключение вызвано java.lang.ClassNotFoundException , когда мой @PersistenceUnit(unitName = "MyPU") аннотированный класс не найден.

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

Могу ли я даже использовать ClassGuard вместе с JPA?

К сожалению, я не смог найти в Интернете никакой связанной информации или списков рассылки.И так как ClassGuard был рекомендован здесь на SO несколько раз, я подумал, что я попробую ...

СпасибоMike

Ответы [ 2 ]

1 голос
/ 14 февраля 2011

classguard не имеет проблемы, которую вы упомянули в ссылке «возражение», поскольку шифрование выполняется в собственном коде.Единственный способ взломать это через родной отладчик.Но с хорошим решением для лицензирования, построенным на их основе и размещающим дистрибутив таким образом, чтобы основная бизнес-логика находилась в серверной библиотеке, я полагаю, это не должно быть слишком большой проблемой.использовать ClassGuard Classloader.java ........ -Djava.system.class.loader = net.jsecurity.classguard.bootstrap.ClassGuard .......

Однако, если вы используете тяжелое отражение и перепутаетеЗашифрованные и незашифрованные классы могут привести к проблемам, с которыми я в настоящее время разбираюсь.

0 голосов
/ 12 декабря 2011

Так вот, что он сделал в конце.(Спойлер: это не решение, а обходной путь.)

Я включил постоянные данные в другой файл .jar, и ClassGuard просто не зашифровал его.Работал довольно хорошо.

...