「Java EE开发指南」如何在MyEclipse中开发EJB 2 Session Bean?(二)

本文介绍了开发符合EJB 2.0的Java EE Enterprise Java Beans所需的基本特性、概念和技术。在本教程中,您将学习如何:

  • 创建EJB项目
  • 创建会话EJB
  • 将项目配置为使用XDoclet代码生成
  • 打包并部署会话EJB

该特性在MyEclipse中可用。在上文中我们为大家介绍了如何创建一个EJB项目和会话EJB - Part 1(点击这里回顾>>),本文将继续介绍如何为XDoclet支持配置项目,欢迎持续关注我们获取更多中文教程!

MyEclipse v2025.2离线版下载

三、为XDoclet支持配置项目

默认情况下,MyEclipse EJB项目没有配置为使用XDoclet特性。本节介绍启用和配置具有XDoclet支持的firstjb EJB项目的步骤,以及执行XDoclet代码生成来派生Trader EJB的依赖源代码和部署组件的步骤。

首先将Standard EJB XDoclet配置添加到第一个EJB项目,本节的最终目标是生成用于创建ANT脚本的XDoclet配置,MyEclipse执行ANT脚本来生成部署Trader EJB所需的附加EJB构件。

  1. 右键单击firstjb,然后选择Properties。展开MyEclipse,并选择XDoclet。

XDoclet配置页面

  1. 单击Add Standard,选择Standard EJB,然后单击OK。

注意:除了MyEclipse提供的预配置XDoclet模块之外,您还可以创建自己的自定义XDoclet配置。

添加标准EJB配置

将Standard EJB模块添加到列表后,选择它来显示包含的文档。注意ejbdoclet出现在左下角的列表中,ejbdoclet下的子文档包含必需的和可选的子任务,许多子任务不适用于简单的无状态会话bean(如Trader EJB)。

标准ejbdoclet的默认子任务

  1. 删除不需要的子任务,直到只剩下下图所示的列表。要删除,右键单击每个子任务,然后选择Remove,此配置中的每个项都表示EJB XDoclet子任务。

Trader EJB所需的XDoclet EJB子任务

  1. (可选)如果您在创建项目时指定了非默认源文件夹,则必须更新以下元素的项目相对路径属性ejbdoclet>destDir, deploymentdescriptor>destDir和fileset>src tasks。在左下角面板中选择每个元素,然后在右下角面板中查看和修改它们各自的属性。

  2. 单击Build选项卡来配置项目的XDoclet构建文件策略。

注意:如果这是一个新项目,则Build策略设置为默认策略,因此您可以跳到步骤7。

  1. 选择Use dynamic build specification policy选项。

如果使用的是已经包含XDoclet配置的现有项目,可以选择删除不必要的xdoclet-build.xml文件。有关这些策略的更详细解释,请参见下表。默认情况下,将新项目设置为使用动态生成策略,您可以在此参数页面上覆盖项目的此默认值。

XDoclet构建文件策略配置

警告!当修改项目的XDoclet配置属性时,项目的xdoclet-build.xml文件将被新版本覆盖。仅当需要手动管理xdoclet-build.xml文件时,使用Use XDoclet-build.xml策略。

  1. 单击OK。XDoclet配置保存到名为.xdoclet的文件中,此外如果启用了"Use xdoclet-build.xml file"构建策略,那么MyEclipse将从XDoclet设置生成一个名为xdoclet-build.xml的文件,并将该文件存储在项目的根文件夹中。
3.2 配置应用服务器XDoclet(可选)

XDoclet能够生成特定于应用服务器的部署描述符,本节将在下面演示con3。

注意:稍后您将看到将firstjb部署到本地JBoss服务器的步骤,因此这些步骤使用JBoss子任务。

  1. 右键单击firstjb,选择Properties,展开MyEclipse,然后选择XDoclet。

  2. 选择Standard EJB来查看任务。右键单击ejbdoclet,并选择Add。

  3. 选择jboss,并单击OK。

向ejbdoclet添加JBoss子任务

  1. 选择jboss子任务,双击destDir属性,在Value字段中输入src/META-INF,然后单击OK。

设置jboss子任务属性

  1. 单击Properties窗口上的OK。
相关推荐
寻星探路2 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
曹牧4 小时前
Spring Boot:如何测试Java Controller中的POST请求?
java·开发语言
爬山算法5 小时前
Hibernate(90)如何在故障注入测试中使用Hibernate?
java·后端·hibernate
kfyty7255 小时前
集成 spring-ai 2.x 实践中遇到的一些问题及解决方案
java·人工智能·spring-ai
猫头虎5 小时前
如何排查并解决项目启动时报错Error encountered while processing: java.io.IOException: closed 的问题
java·开发语言·jvm·spring boot·python·开源·maven
李少兄5 小时前
在 IntelliJ IDEA 中修改 Git 远程仓库地址
java·git·intellij-idea
忆~遂愿6 小时前
ops-cv 算子库深度解析:面向视觉任务的硬件优化与数据布局(NCHW/NHWC)策略
java·大数据·linux·人工智能
小韩学长yyds6 小时前
Java序列化避坑指南:明确这4种场景,再也不盲目实现Serializable
java·序列化
仟濹6 小时前
【Java基础】多态 | 打卡day2
java·开发语言