EJB 2.0 ejb-jar.xml詳解

<ejb-jar><!--EJB發佈描述器的根元素,它包含一個可選的EJB-JAR文件的描述,可選顯示的名稱,可選小圖標的文件名,可選的大圖標的文件名,必須的所有被包含的enterprise bean 的結構信息 ,可選的應用裝配描述器,可選的針對當前ejb-jar文件的ejb-client-jar 文件的名稱 -->
	<description>A short description</description><!--ejb-jar 文件的描述性的說明    -->
	<display-name>A name</display-name><!--ejb-jar 文件顯示的名稱 -->
	<small-icon>employee-service-icon16x16.jpg</small-icon><!--small-icon 元素包含小圖標(16 x 16)的名字,這個名稱是在ejb-jar文件的相對路經,文件必須是jpg或者是gif格式,文件名必須以.jpg.或者gif爲後綴,圖標可以被工具使用-->
	<large-icon>employee-service-icon32x32.jpg</large-icon><!--large-icon元素包含小圖標(32 x 32)的名字,這個名稱是在ejb-jar文件的相對路經,文件必須是jpg或者是gif格式,文件名必須以.jpg.或者gif爲後綴,圖標可以被工具使用  -->
	<enterprise-beans><!--enterprise-beans元素包含了多個enterprise beans的聲明描述  -->
		<session><!--Session元素聲明瞭一個session bean.聲明由以下這些組成:一個可選的描述符,可選的顯示名稱;可選的小圖標文件名,可選的大圖標文件名,在發佈描述符中分配給這個企業bean的名字,當前sessionBean的home及remote接口的名稱,sessionBean的實現類的名,sessionBean的狀態管理類型,sessionBean的事務類型,一個可選的bean的環境條目,一個可選的引用的EJB的聲明,一個可選的安全角色的引用聲明,一個可選的資源工廠的引用聲明,那些稱爲可選的元素當它們描述的內容爲空時,可以將它們省略掉的  -->
			<description>A short description</description>
			<display-name>A name</display-name><!--要顯示的名稱,這個名字可以被別的工具引用到 -->
			<small-icon>employee-service-icon16x16.jpg</small-icon>

			<large-icon>employee-service-icon32x32.jpg</large-icon>
			<ejb-name>EmployeeService</ejb-name><!-- ejb-name元素指明瞭企業bean的名稱,它是由ejb-jar 文件的編寫者命名的,這個名稱在同一個ejb-jar文件中必須是唯一的,企業bean的代碼不依賴於它,與它隔離的,所以企業bean的名稱可以在應用裝配的過程中改變而不會影響企業bean的功能.在發佈描述器中的ejb-name與應用發佈者即將分配給企業bean的home接口的JNDI的名稱沒有結構性的關係.名稱必須定義的有意義  -->
			<home>com.aardvark.payroll.PayrollHome</home><!-- home元素包含企業bean的具有完全的路經(具有完整的包名)的home接口  -->
			<remote>com.wombat.empl.EmployeeService</remote><!--remote元素包含企業bean的具有完全的路經(具有完整的包名)的remote接口  -->
			<ejb-class>com.wombat.empl.EmployeeServiceBean</ejb-class><!-- ejb-class元素包含企業bean的具有完全的路經(具有完整的包名)的實現類    -->
			<session-type>Stateful/Stateless</session-type><!-- session-type元素描述 sessionbean是stateful的還是stateless的,必須是兩者中的一種.   -->
			<transaction-type>Bean/Container</transaction-type><!-- transaction-type元素的值必須是Bean和Container中的一個,也就是說事務類型必須它們中的一種. -->
			<env-entry><!--env-entry元素包含了企業bean的環境條目(environment entries)的聲明,聲明的內容包括可選的描述符,環境條目的名稱,及可選的值         -->
				<description>A short description</description>
				<env-entry-name>minAmount</env-entry-name><!--一個企業bean 的 environment entry的名稱      -->
				<env-entry-type>java.lang.String</env-entry-type><!--env-entry-type元素包含了具有`完全限制的企業bean代碼期望得到的Java類型值,別的合法的類型值:                             java.lang.Boolean, java.lang.String,                             java.lang.Integer,                             java.lang.Double, java.lang.Byte, java.lang.Short,                              java.lang.Long, java.lang.Float.                       -->
				<env-entry-value>100.00</env-entry-value><!-- env-entry-value元素描述了一個企業bean的環境條目的值  -->
			</env-entry>
			<ejb-ref><!-- ejb-ref元素描述對的別的企業bean的home接口的引用.描述由以下部分組成:可選的描述符,使用的引用(參照)的EJB的名稱,引用的企業bean的期望的類型及home和remote接口,可選的ejb-link 信息-指定引用的企業bean的標示   -->
				<description>A short description</description>
				<ejb-ref-name>ejb/Payroll</ejb-ref-name><!--表示引用的企業bean的名稱,EJB參照是企業bean環境中的一條條目,記住名稱是以”ejb/”爲前綴的     -->
				<ejb-ref-type>Entity/Session</ejb-ref-type><!--引用的企業bean的類型,它的值必須是Entity和Session兩者之一  -->
				<home>com.aardvark.payroll.PayrollHome</home>
				<remote>com.wombat.empl.EmployeeService</remote>
				<ejb-link>EmployeeRecord</ejb-link><!--鏈接到被引用的企業bean,它的值(有聯繫企業bean)必須在同一個ejb-jar文件中,或者是在同一J2EE Application中的別的ejb-jar中(就是<ejb-name>元素定義的被引用的企業bean名稱)  -->
			</ejb-ref>
			<security-role-ref><!--包含在企業bean中被引用的安全角色的聲明,聲明包括以下各項:可選的描述符,安全角色的名稱,,可選的到一個已經定義的安全角色的連接ole-name元素的值必須是個string,可以作爲參數傳給EJBContext.isCallerInRole(String roleName)方法, role-link元素的值必須是在security-role元素中定義過的    -->
				<description>A short description</description>
				<role-name>name</role-name><!--  角色的名字,名字要有意義          -->
				<role-link>name</role-link><!--一個已經定義的安全角色的連接,role-link元素的值必須是在security-role元素中定義過的   -->
			</security-role-ref>
			<resource-ref><!--包含企業bean對外部資源引用的聲明,描述,它以下各項組成:可選的描述符, 引用資源工廠名,資源工廠的類型定義,認證的類型(bean或者container)          -->
				<description>A short description</description><!--簡短的描述         -->
				<res-ref-name>name</res-ref-name><!--指定引用資源工廠名 -->
				<res-type>javax.sql.DataSource</res-type><!--指定數據源的類型,而它就是要使用數據源的Java接口(或者類)所期望的    -->
				<res-auth>Application/Container</res-auth><!--res-auth元素定義是由企業bean的代碼作爲資源管理器,還是由容器作爲資源管理器.後一個選擇, 發佈者可以對容器提供支持,這個元素的值必須是Application和Container中的一個       -->
			</resource-ref>
		</session>
		<entity><!--entity元素描述entity bean的,這些描述性的聲明有以下各項組成:可選的描述符,可選的顯示名稱,可選的小圖標文件名,可選的大圖標文件名,在發佈描述中指定企業bean的名稱;entity bean的home和remote接口的名稱,entity bean的實現類;entity bean持久性管理的類型;主鍵類的名稱; Entity Bean's reentrancy 的聲明;可選的容器管理的字段的列表;可選的指定的primary key的字段名;bean 環境條目的聲明;bean參照的聲明,安全角色參照的聲明,資源工廠的參照聲明(可選).等等;如果entity持久管理類型是container的話,在描述中就可以將primarykey-field元素表示出來.至少有一個cmpfield元素,而bean管理的持久性,就不能有這些了.-->
			<description>A short description</description><!-- 一個簡短的描述     -->
			<display-name>A name</display-name><!--要顯示的名稱,這個名字可以被別的工具引用到      -->
			<small-icon>employee-service-icon16x16.jpg</small-icon><!--small-icon 元素包含小圖標(16 x 16)的名字,這個名稱是在ejb-jar文件的相對路經,文件必須是jpg或者是gif格式,文件名必須以.jpg.或者gif爲後綴,圖標可以被工具使用 -->
			<large-icon>employee-service-icon32x32.jpg</large-icon><!--large-icon元素包含小圖標(32 x 32)的名字,這個名稱是在ejb-jar文件的相對路經,文件必須是jpg或者是gif格式,文件名必須以.jpg.或者gif爲後綴,圖標可以被工具使用  -->
			<ejb-name>EmployeeService</ejb-name><!--ejb-name元素指明瞭企業bean的名稱,它是由ejb-jar 文件的編寫者命名的,這個名稱在同一個ejb-jar文件中必須是唯一的,企業bean的代碼不依賴於它,與它隔離的,所以企業bean的名稱可以在應用裝配的過程中改變而不會影響企業bean的功能.在發佈描述器中的ejb-name與應用發佈者即將分配給企業bean的home接口的JNDI的名稱沒有結構性的關係.名稱必須定義的有意義   -->
			<home>com.aardvark.payroll.PayrollHome</home><!--home元素包含企業bean的具有完全的路經(具有完整的包名)的home接口  -->
			<remote>com.wombat.empl.EmployeeService</remote><!--remote元素包含企業bean的具有完全的路經(具有完整的包名)的remote接口   -->
			<ejb-class>com.wombat.empl.EmployeeServiceBean</ejb-class><!--ejb-class元素包含企業bean的具有完全的路經(具有完整的包名)的實現類 -->
			<persistence-type>Bean/Container</persistence-type><!--persistence-type元素指定entity bean的持久性管理的類型,它必須是下面兩個之一:Bean,Container -->
			<prim-key-class>com.wombat.empl.EmployeeID</prim-key-class><!--prim-key-class元素指定了具有完全限定的entity bean的主鍵類的名稱,如果主鍵類的定義依賴發佈的時間, 主鍵類元素的值應該是java.lang.Object;   -->
			<reentrant>True/False</reentrant><!--The reentrant element specifies whether an entity bean is reentrant or not.The reentrant element must be one of the two following: True or False     -->
			<cmp-field><!-- cmp-field描述容器管理的字段.包括一個可選的字段描述,字段的名稱.  -->
				<description>A short description</description>
				<field-name>firstName</field-name><!--field-name元素指定容器管理的字段的名,名稱必須企業bean的公共字段或者是它的超類中的公共字段. -->
			</cmp-field>
			<primkey-field>fieldName</primkey-field><!--primkey-field元素指定容器管理的Bean的主鍵字段.它必須是在cmp-field元素中聲明過的,類型必須和主鍵類的一樣,如果主鍵映射爲多個容器管理的字段(也就是說是一個複合主鍵),那麼就地取材沒必要條件使用這個元素了.在這種情況下,主鍵類的字段必須是公共的,它們的名字必須與包含主鍵的entity bean的字段名相符合.  -->
			<env-entry><!--env-entry元素包含了企業bean的環境入口(environment entries)的聲明,聲明的內容包括可選的描述符,環境入口的名稱,及可選的值  -->
				<description>A short description</description><!--簡短的描述 -->
				<env-entry-name>minAmount</env-entry-name><!--一個企業bean 的 environment entry的名稱   -->
				<env-entry-type>java.lang.String</env-entry-type><!--env-entry-type元素包含了具有`完全限制的企業bean代碼期望得到的Java類型值,別的合法的類型值:java.lang.Boolean, java.lang.String, java.lang.Integer,java.lang.Double, java.lang.Byte, java.lang.Short,java.lang.Long, java.lang.Float.             -->
				<env-entry-value>100.00</env-entry-value><!--env-entry-value元素描述了一個企業bean的環境入口的值  -->
			</env-entry>

			<ejb-ref><!--ejb-ref元素描述對的別的企業bean的home接口的引用.描述由以下部分組成:可選的描述符,使用的引用(參照)的EJB的名稱,引用的企業bean的期望的類型及home和remote接口,可選的ejb-link 信息-指定與引用的企業bean有關係的bean,在ejb-jar 文件中典型的包含一個應用的組裝.       -->
				<description>A short description</description><!--簡短的描述  -->
				<ejb-ref-name>ejb/Payroll</ejb-ref-name><!--表示引用的企業bean的名稱,EJB參照是企業bean環境中的一條條目,記住名稱是以”ejb/”爲前綴的            -->
				<ejb-ref-type>Entity/Session</ejb-ref-type><!--引用的企業bean的類型,它的值必須是Entity和Session兩者之一  -->
				<home>com.aardvark.payroll.PayrollHome</home><!--home元素包含被引用的企業bean的具有完全的路經(具有完整的包名)的home接口-->
				<remote>com.wombat.empl.EmployeeService</remote><!--remote元素包含被引用的企業bean的具有完全的路經(具有完整的包名)的remote接口        -->
				<ejb-link>EmployeeRecord</ejb-link><!--鏈接到被引用的企業bean,它的值(有聯繫企業bean)必須在同一個ejb-jar文件中,或者是在同一J2EE Application中的別的ejb-jar中(就是ejb-name元素定義的被引用的企業bean名稱)     -->
			</ejb-ref>
			<security-role-ref><!--包含在企業bean中被引用的安全角色的聲明,聲明包括以下各項:可選的描述符,安全角色的名稱,,可選的到一個已經定義的安全角色的連接ole-name元素的值必須是個string,可以作爲參數傳給EJBContext.isCallerInRole(String roleName)方法, role-link元素的值必須是在security-role元素中定義過的      -->

				<description>A short description</description><!--簡短的描述       -->
				<role-name>name</role-name><!--    角色的名字,名字要有意義    -->
				<role-link>name</role-link><!--一個已經定義的安全角色的連接,role-link元素的值必須是在security-role元素中定義過的 -->
			</security-role-ref>
			<resource-ref><!--包含企業bean對外部資源引用的聲明,描述,它以下各項組成:可選的描述符, 引用資源工廠名,資源工廠的類型定義,認證的類型(bean或者container)  -->
				<description>A short description</description><!--簡短的描述    -->
				<res-ref-name>name</res-ref-name><!--指定引用資源工廠名      -->
				<res-type>javax.sql.DataSource</res-type><!--指定數據源的類型,而它就是要使用數據源的Java接口(或者類)所期望的   -->
				<res-auth>Application/Container</res-auth><!--res-auth元素定義是由企業bean的代碼作爲資源管理器,還是由容器作爲資源管理器.後一個選擇, 發佈者可以對容器提供支持,這個元素的值必須是Application和Container中的一個      -->
			</resource-ref>
		</entity>
	</enterprise-beans>
	<assembly-descriptor><!--assembly-descriptor元素包含了應用配置信息.應用的裝配信息由以下部分組成:安全角色的定義,許可訪問的方法的定義,容器管理的事務屬性的定義,所有的部分都是可選的,提供裝配描述符在整個ejb-jar文件中也是可選的.  -->
		<security-role><!--提供安全角色的定義,定義的內容包括角色的描述,角色的名稱     -->
			<description>A short description</description><!--簡短的描述     -->
			<role-name>name</role-name><!-- 安全角色的名稱,名稱要有意義    -->
		</security-role>
		<method-permission><!--指定企業bean的某個方法允許被哪個安全的角色訪問,調用.這個元素由以下各項組成:可選的描述符,一個安全角色的名稱列表,一個方法元素列表;在這裏使用的安全角色必須在security-role元素中定義過的,而方法必須是在企業bean的home/remote接口中定義過的   -->
			<description>A short description</description><!--簡短的描述-->
			<role-name>name</role-name><!--安全角色的名稱,名稱要有意義   -->
			<method><!-- 1.<method>  -->
				<ejb-name>EJBNAME</ejb-name>
				<method-name>*</method-name>
			</method><!--這種類型的定義將涉及到指定的企業bean的home及remote所有方法     -->
			<method>
				<ejb-name>EJBNAME</ejb-name>
				<method-name>METHOD</method-name>
			</method><!--這種定義涉及到特定的方法,如果bean有方法重載的話,那麼這種定義就表示將涉及到所有的具有相同方法名的重載方法-->
			<method>
				<ejb-name>EJBNAME</ejb-name>
				<method-name>METHOD</method-name>
				<method-params>
					<method-param>PARAM-1</method-param>
					<method-param>PARAM-1</method-param>
					<method-param>PARAM-n</method-param>
				</method-params>
			</method><!--使用這種方法只指定了一個方法,根據參數的不同來選擇,參數的值是帶全路經的java類型,如果方法無參, method-params元素裏不包含任何method-param元素        -->
			<method>
				<description>A short description</description><!--簡短的描述     -->
				<ejb-name>EmployeeService</ejb-name>
				<method-intf>Home/Remote</method-intf><!--method-intf 元素可以區分同時定義在home和remote接口中的方法,它的值必須是Home和Remote兩者之一  -->
				<method-name>nameOfMethod</method-name><!--the enterprise bean's remote and home interfaces中定義的方法名稱,如果它的值是’*’的話,表示所有的方法         -->
				<method-params><!-- 包含一系列的方法參數的全路經JAVA類型名     -->
					<method-param>int[]</method-param><!--包含方法參數的全路經JAVA類型名    -->
				</method-params>
			</method>
		</method-permission>
		<container-transaction><!--container-transaction指定容器在企業bean方法論被調用的時候,是如何管理的事務領域的.由以下各項組成:可選的描述符,一系列方法元素,事務屬性.應用事務屬性到所有被指定的方法中.        -->
			<description>A short description</description>
			<method>
				<ejb-name>EJBNAME</ejb-name>
				<method-name>*</method-name>
			</method><!--這種類型的定義將涉及到指定的企業bean的home及remote所有方法   -->
			<method>
				<ejb-name>EJBNAME</ejb-name>
				<method-name>METHOD</method-name>
			</method><!--這種定義涉及到特定的方法,如果bean有方法重載的話,那麼這種定義就表示將涉及到所有的具有相同方法名的重載方法-->
			<method>
				<ejb-name>EJBNAME</ejb-name>
				<method-name>METHOD</method-name>
				<method-params>
					<method-param>PARAM-1</method-param>
					<method-param>PARAM-1</method-param>
					<method-param>PARAM-n</method-param>
				</method-params>
			</method><!--使用這種方法只指定了一個方法,根據參數的不同來選擇,參數的值是帶全路經的java類型,如果方法無參, method-params元素裏不包含任何method-param元素  -->
			<method>
				<description>A short description</description>
				<ejb-name>EmployeeService</ejb-name>
				<method-intf>Home/Remote</method-intf>
				<method-name>nameOfMethod</method-name><!--the enterprise bean's remote and home interfaces中定義的方法名稱,如果它的值是’*’的話,表示所有的方法 -->
				<method-params>
					<method-param>int[]</method-param><!--包含方法參數的全路經JAVA類型名-->
				</method-params>
			</method>
			<trans-attribute>Supports</trans-attribute><!--trans-attribute元素指定了容器如何管理必須管理的事務界線,在一個企業bean的業務方法被調用的時候;它的值必須是下面幾中之一:  NotSupported, Supports, Required, RequiresNew,Mandatory or Never            -->
		</container-transaction>
	</assembly-descriptor>
	<ejb-client-jar>employee_service_client.jar</ejb-client-jar><!--可選的ejb-client-jar元素指定一個JAR文件,這個文件包含了一個客戶端程序訪問EJB-JAR文件中定義的企業Bean時所需要的類文件.發佈者使得EJB CLIENT JAR 文件對於客戶端的類裝載器來說變得容易訪問了-->
</ejb-jar>
轉自:http://qidaoxp.iteye.com/blog/476970
發佈了13 篇原創文章 · 獲贊 3 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章