接上篇文章 http://blog.csdn.net/javamxj/archive/2005/01/13/251982.aspx
二、开发一个 Hello 实例
二、开发一个 Hello 实例
关于Lomboz的图解,请参考我以前的文章,这里不多说了。
1. 新建一个项目
● 右击“包资源管理器”的空白处, 在弹出菜单中选择“新建” ->“Lomboz J2EE Project”
·项目名:HelloEJB
·EJB Modules:helloEJB
·Targeted Server: JBoss 4.0.0
效果如下:(利用下图中的小倒三角按钮将引入的 JBoss 库文件过滤了 )

2. xdoclet.xml 的修改:
打开 build.xml 和 xdoclet.xml ,仔细看看里面的内容。
如果你看过关于 XDoclet 方面的文章,那么应该比较明白 Lomboz 开发 EJB 的运行方式。其实就是 Ant + XDoclet ,这里着重谈谈 xdoclet.xml 文件。
xdoclet.xml
1: <?xml version="1.0"?>
2:
3: <!-- Copyright (c) 2002,2003,2004 by eteration a.s.
4: www.eteration.com
5: All rights reserved. -->
6:
7:
8: <project name="xdocletBuild" default="ejbdoclet" basedir=".">
9:
10: <!-- Init -->
11: <target name="init">
12: <property file="build.properties"/>
13:
14: <property name="ejb.dd.dir" value="../META-INF"/>
15: <property name="web.dd.dir" value="../WEB-INF"/>
16: <property name="xdoclet.force" value="true"/>
17: <property name="container.type" value="ejb-jar"/>
18:
19: <!-- Set up java.class.path -->
20: <path id="project.class.path">
21: <pathelement location="${project.dir}/${bin.dir}" />
22:
23:
24: <fileset dir="${eclipse.home}/plugins">
25: <include name="**/ant.jar"/>
26: <include name="**/sf.net.xdoclet*/*.jar"/>
27: <include name="**/org.apache.log4j*/**/*.jar"/>
28: <include name="**/org.apache.commons*/**/*.jar"/>
29: </fileset>
30:
31: <!-- append the external classpath lastly -->
32: <pathelement path="${java.class.path}" />
33:
34: <!-- append the path sent through eclipse to classpath -->
35: <pathelement path="${project.path}" />
36:
37: </path>
38:
39:
40: </target>
41:
42: <!-- Run EJBDoclet -->
43: <target name="ejbdoclet" depends="init">
44:
45: <taskdef name="ejbdoclet" classname="xdoclet.modules.ejb.EjbDocletTask">
46: <classpath refid="project.class.path"/>
47: </taskdef>
48:
49:
50: <ejbdoclet
51: destdir="${project.dir}/${ejbsrc.dir}"
52: mergedir="${ejb.dd.dir}"
53: excludedtags="@version,@author,@todo"
54: addedtags="@lomboz generated"
55: ejbspec="2.0"
56: force="${xdoclet.force}"
57: verbose="true" >
58:
59: <!-- PLEASE KEEP THE BEAN MARKER COMMENTS IF YOU MODIFY THE FILE.
60: CONTENTS BETWEEN THE MARKERS ARE AUTO INSERTED WITH EACH
61: BUILD. -->
62: <!-- BEANS START -->
63: <fileset dir="../../src" defaultexcludes="yes">
64: <patternset includesfile="ejbs.xml" />
65: </fileset>
66: <!-- BEANS END -->
67:
68: <dataobject/>
69: <dao pattern="{0}" destdir="${project.dir}/${ejbsrc.dir}"/>
70:
71: <valueobject/>
72: <utilobject cacheHomes="true" includeGUID="true" kind="physical"/>
73:
74: <remoteinterface/>
75: <localinterface/>
76: <homeinterface />
77: <localhomeinterface/>
78:
79: <entitypk/>
80: <entitycmp/>
81: <entitybmp/>
82: <session/>
83:
84: <deploymentdescriptor
85: destdir="${ejb.dd.dir}"
86: validatexml="false"
87: mergedir="${ejb.dd.dir}"
88: />
89:
90: <!--
91: Have struts form objects generated based on entity beans'
92: data objects. Will require struts.jar to compile. -->
93: <strutsform />
94:
95:
96: <!--
97: Have a mapping.xml file generated for castor classes.
98: -->
99: <castormapping destdir="${ejb.dd.dir}" validatexml="false" />
100: <!-- -->
101:
102: <weblogic
103: version="6.1"
104: xmlencoding="UTF-8"
105: destdir="${ejb.dd.dir}"
106: validatexml="false"
107: datasource="PLEASE_MODIFY_THIS"
108: mergedir="${ejb.dd.dir}"
109: persistence="weblogic"
110: />
111: <jboss
112: version="3.0"
113: unauthenticatedPrincipal="nobody"
114: xmlencoding="UTF-8"
115: destdir="${ejb.dd.dir}"
116: validatexml="false"
117: datasource="PLEASE_MODIFY_THIS"
118: datasourcemapping="PLEASE_MODIFY_THIS"
119: preferredrelationmapping="PLEASE_MODIFY_THIS"
120: />
121:
122: <jrun
123: version="4.0"
124: xmlencoding="UTF-8"
125: destdir="${ejb.dd.dir}"
126: validatexml="false"
127: />
128:
129: <webSphere destdir="${ejb.dd.dir}"/>
130: <jonas
131: version="3.2"
132: xmlencoding="UTF-8"
133: destdir="${ejb.dd.dir}"
134: validatexml="false"
135: mergedir="${ejb.dd.dir}"
136: />
137:
138: <orion
139: destdir="${ejb.dd.dir}"
140: />
141:
142: <apachesoap
143: destdir="${ejb.dd.dir}"
144: />
145:
146: </ejbdoclet>
147: </target>
148:
149: </project>
2:
3: <!-- Copyright (c) 2002,2003,2004 by eteration a.s.
4: www.eteration.com
5: All rights reserved. -->
6:
7:
8: <project name="xdocletBuild" default="ejbdoclet" basedir=".">
9:
10: <!-- Init -->
11: <target name="init">
12: <property file="build.properties"/>
13:
14: <property name="ejb.dd.dir" value="../META-INF"/>
15: <property name="web.dd.dir" value="../WEB-INF"/>
16: <property name="xdoclet.force" value="true"/>
17: <property name="container.type" value="ejb-jar"/>
18:
19: <!-- Set up java.class.path -->
20: <path id="project.class.path">
21: <pathelement location="${project.dir}/${bin.dir}" />
22:
23:
24: <fileset dir="${eclipse.home}/plugins">
25: <include name="**/ant.jar"/>
26: <include name="**/sf.net.xdoclet*/*.jar"/>
27: <include name="**/org.apache.log4j*/**/*.jar"/>
28: <include name="**/org.apache.commons*/**/*.jar"/>
29: </fileset>
30:
31: <!-- append the external classpath lastly -->
32: <pathelement path="${java.class.path}" />
33:
34: <!-- append the path sent through eclipse to classpath -->
35: <pathelement path="${project.path}" />
36:
37: </path>
38:
39:
40: </target>
41:
42: <!-- Run EJBDoclet -->
43: <target name="ejbdoclet" depends="init">
44:
45: <taskdef name="ejbdoclet" classname="xdoclet.modules.ejb.EjbDocletTask">
46: <classpath refid="project.class.path"/>
47: </taskdef>
48:
49:
50: <ejbdoclet
51: destdir="${project.dir}/${ejbsrc.dir}"
52: mergedir="${ejb.dd.dir}"
53: excludedtags="@version,@author,@todo"
54: addedtags="@lomboz generated"
55: ejbspec="2.0"
56: force="${xdoclet.force}"
57: verbose="true" >
58:
59: <!-- PLEASE KEEP THE BEAN MARKER COMMENTS IF YOU MODIFY THE FILE.
60: CONTENTS BETWEEN THE MARKERS ARE AUTO INSERTED WITH EACH
61: BUILD. -->
62: <!-- BEANS START -->
63: <fileset dir="../../src" defaultexcludes="yes">
64: <patternset includesfile="ejbs.xml" />
65: </fileset>
66: <!-- BEANS END -->
67:
68: <dataobject/>
69: <dao pattern="{0}" destdir="${project.dir}/${ejbsrc.dir}"/>
70:
71: <valueobject/>
72: <utilobject cacheHomes="true" includeGUID="true" kind="physical"/>
73:
74: <remoteinterface/>
75: <localinterface/>
76: <homeinterface />
77: <localhomeinterface/>
78:
79: <entitypk/>
80: <entitycmp/>
81: <entitybmp/>
82: <session/>
83:
84: <deploymentdescriptor
85: destdir="${ejb.dd.dir}"
86: validatexml="false"
87: mergedir="${ejb.dd.dir}"
88: />
89:
90: <!--
91: Have struts form objects generated based on entity beans'
92: data objects. Will require struts.jar to compile. -->
93: <strutsform />
94:
95:
96: <!--
97: Have a mapping.xml file generated for castor classes.
98: -->
99: <castormapping destdir="${ejb.dd.dir}" validatexml="false" />
100: <!-- -->
101:
102: <weblogic
103: version="6.1"
104: xmlencoding="UTF-8"
105: destdir="${ejb.dd.dir}"
106: validatexml="false"
107: datasource="PLEASE_MODIFY_THIS"
108: mergedir="${ejb.dd.dir}"
109: persistence="weblogic"
110: />
111: <jboss
112: version="3.0"
113: unauthenticatedPrincipal="nobody"
114: xmlencoding="UTF-8"
115: destdir="${ejb.dd.dir}"
116: validatexml="false"
117: datasource="PLEASE_MODIFY_THIS"
118: datasourcemapping="PLEASE_MODIFY_THIS"
119: preferredrelationmapping="PLEASE_MODIFY_THIS"
120: />
121:
122: <jrun
123: version="4.0"
124: xmlencoding="UTF-8"
125: destdir="${ejb.dd.dir}"
126: validatexml="false"
127: />
128:
129: <webSphere destdir="${ejb.dd.dir}"/>
130: <jonas
131: version="3.2"
132: xmlencoding="UTF-8"
133: destdir="${ejb.dd.dir}"
134: validatexml="false"
135: mergedir="${ejb.dd.dir}"
136: />
137:
138: <orion
139: destdir="${ejb.dd.dir}"
140: />
141:
142: <apachesoap
143: destdir="${ejb.dd.dir}"
144: />
145:
146: </ejbdoclet>
147: </target>
148:
149: </project>






