使用MyEclipse开发Java EE应用:创建Java EE企业应用程序
1.企业应用项目模型
MyEclipse提供了一个Enterprise Application项目模型(即EAR项目模型),以及用于创建Java EE企业应用程序的管理工具。由图标标识的EAR项目是Web、Application Client、Connector和EJB项目的逻辑容器,它产生一个服务器端部署单元(称为Java EE Enterprise Archive(EAR))。EAR项目的文件夹结构中没有子项目,而是EAR项目维护对其组件模块的引用。
Java EE规范将企业应用程序的运行时结构定义为Java EE模块和模块所需的基本文件资源的集合。
Java EE模块的常见类型是:
Web模块–通常表示为Web存档(WAR)
EJB模块–通常表示为EJB JAR归档文件
EAR项目必须至少包含一个模块项目。因此,在EAR项目开发期间,只要包含一个模块项目,就可以根据需要添加和删除模块项目。部署企业项目时,引用的模块项目以其各自的存档格式打包,并作为企业存档的模块进行部署。
通常,Web模块提供Web用户界面服务以及用户对由一个或多个EJB模块提供的业务服务的访问。Java EE规范定义了EAR,如THE标准的Java EE部署单元。此外,该规范允许(但不要求)应用程序服务器供应商支持其他部署形式,例如独立的WAR和EJB JAR。下图为MyEclipse项目模型架构:
MyEclipse项目模型通过以下方式与Java EE Enterprise Application模型并行:
MyEclipse Web模块项目–设计时等效于Java EE Web模块。Web模块项目与基本的MyEclipse Web项目相同,只是增加了内部元数据和可选的项目依赖项。
MyEclipse EJB模块项目–设计时等效于Java EE EJB模块。EJB模块项目与基本的MyEclipse EJB项目相同,只是增加了内部元数据和可选的项目依赖项。
MyEclipse Enterprise项目–设计时等效于Java EE企业应用程序。维护与模块项目的关联,不包含任何Web或EJB项目代码。
所有使用JavaEE版本低于5.0的EAR项目都是使用META-INF根文件夹和空的META-INF/application.xml部署描述符创建的。对于使用Java EE 5或更高版本的项目,不需要此文件,但可以选择生成此文件,并根据需要修改application.xml文件。
注意:对于需要application.xml文件的Java EE版本,请勿移动或重命名此文件或META-INF文件夹。这样做会导致部署失败。除项目的元数据文件以外的所有资源都被视为部署的一部分。
下图显示了MyEclipse Web项目的Resource透视图,该视图显示项目的部署信息。可以使用项目的Deployment Assembly属性来自定义项目部署。
2.项目组织、依赖性和类解析
Java EE规范为企业应用程序定义了分层的Java类解析策略,下图描述了这种自下而上的搜索策略。当任何模块引用Java类时,其本地类加载器首先会在该模块的代码库中搜索该类。如果在模块本地找不到该类,这个模块会向其上一级的类加载器发出搜索请求。这个过程一直持续到找到该类或到达顶层Java引导类加载器为止(图中没有显示)。
了解Java EE企业应用程序的类装入器策略很重要,因为类装入策略会影响您选择如何在Web和EJB模块项目之间分配类。例如,如果您有一个或多个业务数据对象在Web模块的用户界面元素和EJB模块的服务之间传递,通过定位EJB模块中的数据对象,它们将变得可见Web模块和EJB模块。
导致类加载问题的两个常见项目组织错误是:
将数据对象类放置在Web模块中,这会导致运行时ClassNotFoundExceptions
将共享类复制到Web和EJB模块项目中。这种方法通常导致难以诊断序列化和与类不兼容相关的错误,这使得实践比第一点更加困难。
MyEclipse Java EE项目模仿这种分层的类加载器策略,在构建时准确地洞察MyEclipse企业项目及其组成的Web和EJB模块项目的类装入器可视性。如下图所示,这是使用Eclipse项目依赖关系完成的。将Web或EJB项目添加到MyEclipse EAR项目时,将相应地设置项目依赖项。建议不要手动修改这些项目依赖项,因为这样可能会引入不必要的编译问题。
注意: MyEclipse开发团队认为,支持类加载器仿真是最重要的要求,可帮助开发人员识别难以解决的由类加载器可见性问题引起的运行时错误。这就是MyEclipse不支持在EAR项目中物理嵌入模块代码的原因之一。相反,EAR项目以模块的形式维护与单个Web和EJB项目的关联。下图展示了项目依赖项来模拟Java EE EAR类加载器行为:
12月,庆圣诞,迎元旦,上“慧都网”小程序签到兑软件商城无门槛抵价券>>> 购MyEclipse/CodeMix享折上折>>>
想进一步了解MyEclipse?知你所需,解你所惑!
想与更多人聊MyEclipse?加入MyEclipse中国(官方2):742336981畅所欲言吧!
想及时获取MyEclipse资讯?扫描下方二维码,MyEclips信息跟你走!