2011-06-14 54 views
2

我总是使用Jave EE 6框架进行Web应用程序。所以我不确定我要做的是正确的。我需要创建一个具有数据库访问权限的本地客户端命令行应用程序。这么简单的使用JDBC的java项目就可以完成这项工作。但是,对数据库访问的要求包括连接池,并发处理和事务处理......现在,项目的要求最终会建立一个Web界面,但首先它将首先构建一个命令行应用程序。这是当我正在考虑框架。我喜欢Java EE 6.那么Java EE 6是否是正确的选择呢?我可以使用Java EE 6开发本地客户端应用程序,并在以后添加Web模块吗?Java EE 6框架仅适用于Web应用程序还是我可以将它用于客户端应用程序

我使用NetBeans 7.0 BTW

回答

2

您可以在独立的客户端应用程序中完美地使用JPA,将main()类作为入口点。只需将JPA JAR添加到构建路径/类路径中,并将persistence.xml配置为使用RESOURCE_LOCAL事务类型即可。你可以在EclipseLink Wiki - Running JPA Outside Container找到开球的例子。以下是相关的摘录:

<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项目的模块重复使用JPA模型和最终的DAO在Web项目中的客户端项目。例如,在Eclipse上,只需将客户端项目添加到Web项目的构建路径Java构建路径>项目>添加,并配置部署组装以使其最终成为JAR /WEB-INF/lib

最后,在您的Web项目中,您可以使用另一个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中的模型类。

+0

Hi BalusC。非常感谢你。我会试试看。一个小问题,在我的开发环境中,我必须为我的项目使用Eclipse 3.2,您是否知道如何在Eclipse 3.2中创建Java EE项目? – 2011-06-14 18:45:22

+1

*新建>动态Web项目*。确保您使用的是“Eclipse for Java EE”版本。请注意*部署程序集*在3.5之前的版本中称为* Java EE Module Dependencies *。如果可以,只需升级到最新版本。免费。 – BalusC 2011-06-14 18:49:07

+0

谢谢BalusC。 – 2011-06-14 20:33:43

1

好,JavaEE的是不同的框架汇编(EJB,JSF,JAXP,JAXB,WS,...)。并非所有人都需要一个全功能的应用程序服务器。

这真的取决于你的需求(和你在不同的框架知识),但与心目中的网络模块请求,以下方法可能有用:

  • 与实体EJB
  • 型号您的数据
  • 创建会话Bean业务逻辑(POJO的或者可以很容易地迁移到EJB)
  • 使用需要额外的框架(如JAXB)
  • 开始使用命令行应用程序

如果您的应用程序变得越来越复杂或者您需要其他功能(例如JPA持久性,JTA事务控制或JSF等Web框架),您可以考虑使用应用程序服务器。

0

这并不意味着构建本机客户端应用程序。你正在寻找的是Swing或RCP。

1

在Java EE 6中有几种“视图”技术:Web应用程序和应用程序客户端。 Web应用程序是用于Java EE 6的最常用的视图技术,但您可以为您的EJB和实体类创建一个“本地命令行”客户端。

您可以在JSR-000316 Java Platform, Enterprise Edition 6 Specification 6.0 Final Release的“EE.10应用程序客户端”一节阅读应用程序客户端。

an article that describes how to use NetBeans to create, deploy and execute a Java EE 6 application that uses an application client

采用应用程序客户端的主要障碍之一是将其部署到大量客户端的桌面上的负担。 GlassFish implementation of the Java EE 6 spec包括features that help lower these burdens

+0

非常感谢。我现在开始阅读它。 ty – 2011-06-15 13:53:00

+0

不幸的是,JSR316是一个高层次的文档,所以它只介绍了这个想法,而不是实现。不过谢谢。 :) – 2011-06-15 14:45:23

+0

@Harry Pham:我添加了一个指向可能有用的文章的指针。 – vkraemer 2011-06-15 16:33:11

相关问题