Jakarta ee JavaEE6框架是否仅用于Web应用程序,或者我是否也可以用于客户端应用程序

Jakarta ee JavaEE6框架是否仅用于Web应用程序,或者我是否也可以用于客户端应用程序,jakarta-ee,java-ee-6,Jakarta Ee,Java Ee 6,我总是在web应用程序中使用JAVEE6框架。所以我不确定我要做的是正确的。我需要创建一个具有数据库访问权限的本机客户端命令行应用程序。所以使用JDBC的简单java项目就可以完成这项工作。但是db访问的需求包括连接池、并发句柄和事务…,现在项目的需求最终会构建一个web界面,但首先它将首先构建一个命令行应用程序。这就是我思考框架的时候。我喜欢JavaEE6。那么JavaEE6在这里是正确的选择吗?我是否可以使用JavaEE6来开发本机客户端应用程序,然后向其添加一个web模块 我使用的是Net

我总是在web应用程序中使用JAVEE6框架。所以我不确定我要做的是正确的。我需要创建一个具有数据库访问权限的本机客户端命令行应用程序。所以使用JDBC的简单java项目就可以完成这项工作。但是db访问的需求包括连接池、并发句柄和事务…,现在项目的需求最终会构建一个web界面,但首先它将首先构建一个命令行应用程序。这就是我思考框架的时候。我喜欢JavaEE6。那么JavaEE6在这里是正确的选择吗?我是否可以使用JavaEE6来开发本机客户端应用程序,然后向其添加一个web模块


我使用的是Netbeans 7.0 btw,JavaEE是不同框架(EJB、JSF、JAXP、JAXB、WS等)的汇编。并非所有应用程序都需要功能齐全的应用程序服务器

这实际上取决于您的需求(以及您对不同框架的了解),但考虑到web模块请求,以下方法可能很有用:

  • 使用实体EJB对数据建模
  • 使用会话bean(或可以轻松迁移到EJB的POJO)创建业务逻辑
  • 使用所需的其他框架(例如JAXB)
  • 从命令行应用程序开始

<>如果您的应用程序变得越来越复杂或需要额外的特性(如JPA持久化、JTA的事务控制或像JSF这样的Web框架),您可以考虑使用应用服务器。p> 它不是用来构建本机客户端应用程序的。您需要的是Swing或RCP。

您可以在独立的客户端应用程序中完美地使用JPA,并将
main()
类作为入口点。只需将jpajar添加到buildpath/classpath中,并配置
persistence.xml
以使用
RESOURCE\u LOCAL
事务类型。您可以在中找到启动示例。以下是一段相关摘录:

<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>

这样,您就不需要重复
persistence.xml中的模型类了

JavaEE6中有两种“视图”技术:web应用程序和应用程序客户端。web应用程序是JavaEE6最常用的视图技术,但是您可以创建EJB和实体类的“本机命令行”客户端

您可以在“EE.10应用程序客户端”一节中阅读有关应用程序客户端的内容


采用应用程序客户端的主要障碍之一是在大量客户端上将它们部署到桌面的负担。包括。

Hi BalusC。非常感谢你。我会试试看。一个小问题,在我的开发环境中,我必须使用Eclipse3.2进行我的项目,您知道如何在Eclipse3.2中创建JavaEE项目吗?新建>动态Web项目。确保您使用的是“EclipseforJavaEE”版本。请注意,在3.5之前的版本中,部署程序集称为JavaEE模块依赖项。如果可以,只需升级到最新版本。这是免费的。嗨,巴卢斯克,多亏了你的想法,我成功地用JPA创建了一个独立的应用程序客户端。我现在需要在上面添加一个web模块。我有一些问题,我把它们分别贴在这里,你能看一下吗?非常感谢您,祝您有一个美好的一天嗨,巴卢斯克,我对您上面所说的有一个问题。所以我有一个应用程序客户端,使用您上面描述的persistence.xml。然后我创建企业应用程序(
ear
),其中包含一个web模块(
war
)。然后,我将应用程序客户端(
jar
)添加到
ear
包中。然后将appclientjar添加到web项目库中(在netbean中,当我在web中添加jar时,其名称显示为dist/javaProject.jar)。然后使用
dist/JavaProject.jar
在web项目中创建一个新的persistence.xml。我在访问应用程序客户端项目中的方法时遇到问题。知道为什么吗?(阅读下文)(首先阅读上文)应用程序客户端中处理JPA的方法没有注释为
EJB
。通常,在托管Bean中,为了访问EJB方法,我使用
@EJB
注入EJB,但我不确定如何在这里注入应用程序客户端。我可以使用@Resource注入它吗?遗憾的是,JSR316是一个高级文档,所以它只介绍了想法,而没有介绍实现。不过还是要谢谢你@哈里·范:我添加了一个指向一篇文章的指针,可能会有帮助。非常感谢。我看完了这篇文章。我想问你的一个问题是:他们通过
远程接口
公开EJB模块,但没有解释为什么这样做。我使用JavaEE6已经有一年了,我知道如果可能的话,可以通过
remote
接口使用
local
。你的想法是什么?@Harry Pham:
<persistence-unit name="WebPersistenceUnit" transaction-type="JTA">
    <jta-data-source>jdbc/DataSourceName</jta-data-source>
    <jar-file>lib/JavaProject.jar</jar-file>
</persistence-unit>