问题描述
|
我始终将Jave EE 6框架用于Web应用程序。所以我不确定我要做什么是正确的。我需要创建具有数据库访问权限的本机客户端命令行应用程序。因此,带有JDBC的简单Java项目就可以完成这项工作。但是对数据库访问的要求包括连接池,并发句柄和事务...,现在项目的要求最终确实会构建一个Web界面,但是首先它将首先构建一个命令行应用程序。这就是我在考虑框架的时候。我喜欢Java EE6。那么Java EE 6在这里是正确的选择吗?我可以使用Java EE 6开发本机客户端应用程序,然后再向其中添加Web模块吗?
我正在使用Netbeans 7.0 btw
解决方法
您可以在以“ 0”类作为入口点的独立客户端应用程序中完美地使用JPA。只需将JPA JAR添加到buildpath / classpath并将“ 1”配置为使用“ 2”事务类型。您可以在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>
通过将客户端项目添加为Web项目的模块,可以在Web项目中将客户端项目与JPA模型和最终的DAO重用。例如,在Eclipse上,只需通过Java Build Path> Projects> Add并配置Deployment Assembly将客户端项目添加到Web项目的buildpath中,以使其在/WEB-INF/lib
中成为JAR。
最后,在您的Web项目中,您可以再有一个ѭ1,它基本上指向客户端项目的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
中重复模型类。
, 好吧,JavaEE是不同框架(EJB,JSF,JAXP,JAXB,WS等)的编译。并非所有人都需要功能齐全的应用程序服务器。
它确实取决于您的要求(以及您对不同框架的知识),但是考虑到Web模块的请求,以下方法可能会有用:
使用实体EJB对数据建模
使用会话Bean(或可以轻松迁移到EJB的POJO)创建业务逻辑
使用所需的其他框架(例如JAXB)
从命令行应用程序开始
如果您的应用程序变得越来越复杂,或者您需要其他功能(例如JPA的持久性,JTA的事务控制或JSF等Web框架),则可以考虑使用应用程序服务器。
, Java EE 6中有两种“视图”技术:Web应用程序和应用程序客户端。 Web应用程序是用于Java EE 6的最常见的视图技术,但是您可以为EJB和实体类创建一个“本地命令行”客户端。
您可以在JSR-000316 Java平台企业版6规范6.0最终版本的“ EE.10应用程序客户端”一节中了解有关应用程序客户端的信息。
有一篇文章介绍了如何使用NetBeans创建,部署和执行使用应用程序客户端的Java EE 6应用程序。
采用应用程序客户端的主要障碍之一是将它们跨大量客户端部署到桌面的负担。 Java EE 6规范的GlassFish实现包含有助于减轻这些负担的功能。
, 它并不旨在构建本机客户端应用程序。您正在寻找的是Swing或RCP。