xdoclet.xml
1: <?xml version="1.0"?>xdoclet.xml
<?xml version="1.0" encoding="GBK"?>
<!--
Copyright (c) 2002, 2003,2004 Eteration Bilisim A.S.
Naci Dai and others.
Parts developed under contract ref:FT/R&D/MAPS/AMS/2004-09-09/AL are
Copyright France Telecom, 2004.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html
Contributors:
Eteration Bilisim A.S. - initial API and implementation
Naci Dai
For more information on eteration, please see
<http://www.eteration.com/>.
-->
<project name="xdocletBuild" default="ejbdoclet" basedir=".">
<!-- Init -->
<target name="init">
<property file="build.properties"/>
<property name="ejb.dd.dir" value="../META-INF"/>
<property name="web.dd.dir" value="../WEB-INF"/>
<property name="xdoclet.force" value="true"/>
<property name="container.type" value="ejb-jar"/>
<!-- Set up java.class.path -->
<path id="project.class.path">
<pathelement location="${project.dir}/${bin.dir}" />
<!-- 由于使用links方式安装Lomboz插件,所以需要修改这个目录,使其
正确指向Lomboz目录,还建议使用1.2.2版本的XDoclet 目录下的库
文件来代替 sf.net.xdoclet* 目录下的库文件
-->
<fileset dir="D:/eclipse/myplugins/lomboz-3.0.1/eclipse/plugins">
<include name="**/ant.jar"/>
<include name="**/sf.net.xdoclet*/*.jar"/>
<include name="**/org.apache.log4j*/**/*.jar"/>
<include name="**/org.apache.commons*/**/*.jar"/>
</fileset>
<!-- append the external classpath lastly -->
<pathelement path="${java.class.path}" />
<!-- append the path sent through eclipse to classpath -->
<pathelement path="${project.path}" />
</path>
</target>
<!-- Run EJBDoclet -->
<target name="ejbdoclet" depends="init">
<taskdef name="ejbdoclet" classname="xdoclet.modules.ejb.EjbDocletTask">
<classpath refid="project.class.path"/>
</taskdef>
<ejbdoclet
destdir="${project.dir}/${ejbsrc.dir}"
mergedir="${ejb.dd.dir}"
excludedtags="@version,@author,@todo"
addedtags="@lomboz generated"
ejbspec="2.1"
force="${xdoclet.force}"
verbose="true" >
<!-- PLEASE KEEP THE BEAN MARKER COMMENTS IF YOU MODIFY THE FILE.
CONTENTS BETWEEN THE MARKERS ARE AUTO INSERTED WITH EACH
BUILD. -->
<!-- BEANS START -->
<fileset dir="../../src" defaultexcludes="yes">
<patternset includesfile="ejbs.xml" />
</fileset>
<!-- BEANS END -->
<dataobject/>
<dao pattern="{0}" destdir="${project.dir}/${ejbsrc.dir}"/>
<valueobject/>
<utilobject cacheHomes="true" includeGUID="true" kind="physical"/>
<remoteinterface/>
<localinterface/>
<homeinterface />
<localhomeinterface/>
<entitypk/>
<entitycmp/>
<entitybmp/>
<session/>
<deploymentdescriptor
destdir="${ejb.dd.dir}"
validatexml="false"
mergedir="${ejb.dd.dir}"
/>
<!--
Have struts form objects generated based on entity beans'
data objects. Will require struts.jar to compile. -->
<strutsform />
<!--
Have a mapping.xml file generated for castor classes.
-->
<castormapping destdir="${ejb.dd.dir}" validatexml="false" />
<!-- -->
<jboss
version="4.0"
unauthenticatedPrincipal="nobody"
xmlencoding="GBK"
destdir="${ejb.dd.dir}"
validatexml="false"
datasource="java:/MySqlDS"
datasourcemapping="mySQL"
preferredrelationmapping="foreign-key"
/>
<apachesoap
destdir="${ejb.dd.dir}"
/>
</ejbdoclet>
</target>
</project>
小技巧:
以后我都会用这个文件来执行 XDoclet, 如果每次新建一个项目都修改它的话,有些麻烦。这里有一个方法,找到 Lomboz 插件目录下的“ com.objectlearn.jdt.j2ee_3.0.1”子目录,发现有个“lomboz.jar”文件,解压这个文件,在解压后的文件中的“com\objectlearn\jdt\j2ee\templates\ejb” 目录有个“xdoclet.xml”,打开它看看,是不是和项目中的 xdoclet.xml 一样。你可以将修改后的 xdoclet.xml 替换掉这里的 xdoclet.xml,那么就不用每次都修改xdoclet.xml 了。
花了这么大的力气谈 xdoclet.xml,因为它是Lomboz开发EJB的核心,希望不会太罗嗦。
3. 编写程序
● 继续在 HelloEJB 项目中,右击“src” ->新建 ->Lomboz EJB Creation Wizard :
· 包(K) :javamxj.ejb.stateless
· 名称(M): Hello
· EJB Type: 选择 Stateless
最后点击完成。
● 在“包资源管理器”窗口中,右击 HelloBean.java ->Lomboz J2EE... ->Add EJB to Module... :勾选 helloEJB Module。
提醒
这时,会在 xdoclet.xml 中添加以下语句:
<fileset dir="${project.dir}/src/" defaultexcludes="yes">
<include name="javamxj/ejb/stateless/HelloBean.java" />
</fileset>
同时,在 beans.xml 中会加入
<bean>
<beanClass>javamxj.ejb.stateless.HelloBean</beanClass>
<type>Session</type>
</bean>
这样,就把 HelloBean.java 加入了 EJBDoclet 的任务中了。
● 右击 HelloBean.java ->Lomboz J2EE... ->Add EJB to Method:
· Method Signature: public String sayHello(String message)
· Method Type: Business Method
· Interface Type: Remote Interface
● 修改 HelloBean.java ,如图在45-47行添加如下语句,然后保存。
● 右击 helloEJB 模块 ->Lomboz J2EE... ->Generate EJB Classes。
看到没有?在 ejbsrc 文件夹下生成了6个文件。
4. jboss-ide 的一些技巧
其实这里没有必要生成 HelloLocal.java HelloLocalHome 这两个文件,可以通过修改ejb.bean标记来除去这两个文件。
JBoss-IDE 现在已经改名 JBoss Eclipse IDE 了,为了方便,我在下文中还是称为 JBoss-IDE。
关于 JBoss-IDE 的详细用法,请参考其主页上的教程。这里简单说一些技巧。
· 切换倒主窗口:
· 向下拉动滚动条,选择“view-type”这个属性,然后点击,如下图:
这里选择点击“remote”。
这样 view-type = "remote" 这个语句就输入了,方便吧!主要免去记忆和查找之苦。
· 保存,然后删除 ejbsrc 这个文件夹,再次 Generate EJB Classes,这么样,这时会发现生成的 ejbsrc文件夹下只有4个文件了吧。
· 本来没有必要删除那两个文件的,插上这么一段主要是为了介绍使用 JBoss-IDE 的方便之处。其实,JBoss-IDE 的好处还很多,自己慢慢体会吧。
提醒 打开JBoss-IDE目录下的子目录 D:\eclipse\myplugins\jboss-ide-1.40\eclipse\plugins\org.jboss.ide.eclipse.xdoclet.core_1.4.0 (我采用的 links 方式安装),发现其中的XDoclet库文件是1.2.1版本,最好用1.2.2版本下对应的库文件将其替换掉,其它文件不要乱动。 另外,还可以添加其它如 IBM、BEA 的库文件到这个目录,使 JBoss-IDE 不仅仅支持 JBoss,还可以支持其它服务器,甚至自己编写库文件也可以加入。 还有,至于“Alt+/”是干什么的,可以查看: Eclipse的主窗口 ->帮助 ->提示与技巧 ->Eclipse Java 开发工具,很不错的。
5. 运行服务器 废话也说的差不多了,再次进入正题。 · 先启动服务器 如图,有多种方法可以启动JBoss服务器。其它操作也是一样,最好自己多练习,多用右键。 · 然后右击 helloEJB,在弹出菜单中选择部署模块。如果一切正常,控制台会输出类似语句: 21:51:46,203 INFO [EjbModule] Deploying Hello
本文地址:http://com.8s8s.com/it/it11886.htm