Путаница в создании автономного клиента для существующего проекта Java-приложения для предприятия?

1

У меня есть доступ к проекту корпоративного приложения Java. В этом проекте есть EAR файл, содержащий проект EJB, динамический веб-проект для веб-сервисов, который вызывает вызовы проекта EJB и, наконец, проект веб-клиента. EAR развернут на сервере приложений JBoss WildFly. Тем не менее, я хотел бы создать автономный клиент, использующий JavaFX для этого проекта. После изучения старых сообщений SO (да, я читал другие сообщения, прежде чем задавал вопрос, но ни один из них не рассматривал мои проблемы достаточно ясно), и с помощью Google я смог найти устаревшие примеры. Я запутался в следующих смежных темах:

1) Чтобы получить доступ к классам из существующего проекта EJB, вам нужно создать копии удаленных интерфейсов в автономном клиентском приложении, которые уже находятся в проекте EJB? (Это мне не нравится)

2) Если вы добавите проект EJB в свой путь к клиенту, не создадут ли это ошибки времени компиляции, потому что код клиента не будет иметь доступа к серверному коду при запуске клиентского приложения?

3) Eclipse имеет возможность создавать проект EJB Client всякий раз, когда вы создаете новый проект EJB. Это автоматически добавляет удаленные интерфейсы в код клиентов, не оставляя на стороне сервера удаленный интерфейс. Это приемлемо? Для аргументов, ради чего, если вы хотите, чтобы клиент в Swing и клиент в FX? Им нужно было бы использовать удаленные интерфейсы, поэтому я предполагаю, что у вас должен быть проект, содержащий удаленные интерфейсы, а затем проект для каждого клиента, который имел ссылки на проект, содержащий интерфейсы.

Теги:
java-ee
jboss

1 ответ

1
Лучший ответ

Я не большой парень JavaFX, поэтому я не буду отвечать на все вопросы здесь. Тем не менее, 1.) довольно легко исправить.

Вытяните свои интерфейсы из своей банки EJB в свою банку и добавьте это как зависимость как от EJB, так и от клиента. Если вы используете Maven или Gradle (а если нет, то вы должны спрашивать себя, почему это не так), вы можете включить сборку этого "API" в один и тот же проект, чтобы у вас не было досады обработки этих интерфейсов как отдельного проекта. Например, в Maven общий подход к этому будет состоять в том, чтобы иметь два модуля для вашего материала EJB: "somethingsomething-api" и "somethingsomething-ejb". Многомодульная функциональность Maven позволяет вам объединять эти элементы вместе, но упаковывать их отдельно, что важно, когда вы хотите связать только ваши интерфейсы и компоненты с другим элементом, например клиентом, но не хотите/не можете иметь все из других положительных героев, которые у вас есть в банке EJB, втягиваются в ваш клиент и т.д.

  • 0
    Я собираюсь выяснить, как настроить Maven и пойти по этому пути. Спасибо за подтверждение.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню