EJB 3.0. Предоставлять интерфейсы клиентам - PullRequest
1 голос
/ 17 мая 2011

Предположим, я пишу EJB (v 3.0) для использования в качестве удаленного EJB.

Я написал интерфейс удаленного бизнеса, реализовал методы интерфейса в классе компонента (компонент также использует другие объекты Java для передачи данных клиенту, эти классы определены как сериализуемые для маршалинга по сети), и теперь я хочупредоставить этот бин клиентам.Для использования функциональности bean-компонента клиенту необходим бизнес-интерфейс этого bean-компонента, а также классы, которые используются для передачи данных от bean-компонента к клиенту.

Чтобы решить эту проблему, я сделал банку из этого боба и предоставил ее клиентам.Затем клиенты должны добавить эту библиотеку jar в проект клиента и после этого найти реализацию компонента, используя метод lookup из класса Context.

Но когда я создаю jar-файл, он помещает все классы bean-компонентов в jar-архив, поэтому клиент может декомпилировать байт-код jar и увидеть реальную реализацию моего интерфейса.Это не очень хорошая практика.

Так, как я могу предоставить все необходимые интерфейсы клиентам, не обеспечивая реальную реализацию?

1 Ответ

2 голосов
/ 17 мая 2011

Поместите клиентский интерфейс в другой пакет или проект, и при создании клиентского jar включайте только файлы классов для этого клиентского интерфейса.

...