Имеет ли Java EE 6 framework только для веб-приложений или могу ли я использовать его и для клиентских приложений? - PullRequest
2 голосов
/ 14 июня 2011

Я всегда использую фреймворк Jave EE 6 для веб-приложений. Так что я не уверен, что я собираюсь сделать правильно. Мне нужно создать собственное клиентское приложение командной строки, которое имеет доступ к базе данных. Так что простой Java-проект с JDBC сделает эту работу. Но требования для доступа к базе данных включают в себя пул соединений, дескриптор параллелизма и транзакции ... Теперь требования проектов в конечном итоге создают веб-интерфейс, но сначала он сначала создает приложение командной строки. И это когда я думаю о структуре. Я люблю Java EE 6. Так ли Java EE 6 правильный выбор здесь? Могу ли я использовать Java EE 6 для разработки собственного клиентского приложения, а затем добавить к нему веб-модуль?

Я использую Netbeans 7,0 от

Ответы [ 4 ]

2 голосов
/ 14 июня 2011

Вы можете прекрасно использовать JPA в автономном клиентском приложении с классом main() в качестве точки входа. Просто добавьте JPA JAR в buildpath / classpath и настройте persistence.xml для использования типа транзакции RESOURCE_LOCAL. Вы можете найти примеры запуска в EclipseLink Wiki - Запуск JPA Внешнего Контейнера . Вот выдержка из релевантности:

<persistence-unit name="LocalPersistenceUnit" transaction-type="RESOURCE_LOCAL">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties>
        <property name="javax.persistence.jdbc.driver" value="oracle.jdbc.OracleDriver"/>
        <property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
        <property name="javax.persistence.jdbc.user" value="scott"/>
        <property name="javax.persistence.jdbc.password" value="tiger"/>
    </properties>
</persistence-unit>

Вы можете повторно использовать клиентский проект с JPA-моделями и возможными DAO в веб-проекте, добавив клиентский проект в качестве модуля веб-проекта. Например, в Eclipse вам просто нужно добавить клиентский проект в путь сборки веб-проекта с помощью Путь сборки Java> Проекты> Добавить и настроить Deployment Assembly , чтобы он завершился как JAR в /WEB-INF/lib.

Наконец, в вашем веб-проекте вы можете иметь еще один persistence.xml, который в основном указывает на JAR-файл клиентского проекта и переопределяет тип транзакции.

<persistence-unit name="WebPersistenceUnit" transaction-type="JTA">
    <jta-data-source>jdbc/DataSourceName</jta-data-source>
    <jar-file>lib/JavaProject.jar</jar-file>
</persistence-unit>

Таким образом, вам не нужно повторять классы моделей в persistence.xml.

1 голос
/ 15 июня 2011

В Java EE 6 есть пара технологий просмотра: веб-приложения и клиенты приложений. Веб-приложение является наиболее распространенной технологией представления, используемой в Java EE 6, но вы можете создать «нативный» командный клиент из ваших EJB-компонентов и классов сущностей.

О клиентах приложений можно прочитать в JSR-000316 Платформа Java, выпуск Enterprise Edition 6, спецификация 6.0, финальная версия , раздел «EE.10 Клиенты приложений».

Существует статья, в которой описывается использование NetBeans для создания, развертывания и выполнения приложения Java EE 6, в котором используется клиент приложения .

Одним из основных препятствий для принятия клиентов приложений было бремя развертывания их на настольных компьютерах у большого числа клиентов. Реализация GlassFish спецификации Java EE 6 включает в себя функции, которые помогают снизить эту нагрузку .

1 голос
/ 14 июня 2011

Ну, JavaEE - это компиляция различных фреймворков (EJB, JSF, JAXP, JAXB, WS, ...).Не всем из них нужен полнофункциональный сервер приложений.

Это действительно зависит от ваших требований (и ваших знаний о различных платформах), но с учетом запроса веб-модуля может быть полезен следующий подход:

  • Моделируйте ваши данныес Entity EJB
  • Создайте свою бизнес-логику с помощью сессионных компонентов (или POJO, которые можно легко перенести в EJB)
  • Используйте необходимые дополнительные платформы (например, JAXB) * ​​1010 *
  • Начните сваше приложение командной строки

Если ваши приложения становятся все более и более сложными или вам требуются дополнительные функции (такие как сохранение в JPA, управление транзакциями в JTA или веб-инфраструктура, такая как JSF), вы можете использовать приложениесервер.

0 голосов
/ 14 июня 2011

Он не предназначен для создания собственных клиентских приложений.То, что вы ищете, это Swing или RCP.

...