Ellenőrizze az erőforrás hivatkozásbeszúrási cél összevonásával kapcsolatos viselkedésváltozást

A Servlet 3.0 specifikációban egy erőforrás web-fragment.xml fájlban meghatározott <injection-target> elemei csak akkor kerülnek hozzáadásra a szülő web.xml fájlhoz, ha az azonos nevű web.xml erőforrás-hivatkozás meghatározásban nincsenek <injection-target> elemek. A Servlet 3.1 specifikáció pontosítja, hogy egy azonos nevű erőforrás-hivatkozás esetén a web-fragment.xml leírókban lévő összes <injection-target> elem hozzáadásra kerül az <injection-target> elem szülő web.xml leíróinak listájához. A Servlet 3.1 szolgáltatás módosíthatja az alkalmazás jelenlegi viselkedését a web.xml fájlból korábban kizárt beszúrási célok aktiválásával.

Ez a szabály megjelöli az <injection-target> elemet a web-fragment.xml fájlban, ha a web.xml fájl tartalmaz egy <injection-target> elemet egy <resource-ref> elemen belül, amely ugyanazzal a névvel van meghatározva, mint a web-fragment.xml fájlban lévő <resource-ref> elem.

A következő példák bemutatják a viselkedésváltozást egy web.xml fájl és egy web-fragment.xml fájl kombinációjának használatakor:

web.xml:

<resource-ref>
	<res-ref-name>ReferenceName</res-ref-name>
	<res-type>javax.sql.DataSource</res-type>
	<res-auth>Container</res-auth>
	<res-sharing-scope>Shareable</res-sharing-scope>
	<injection-target>
		<injection-target-class>Class1</injection-target-class>
		<injection-target-name>Resource1</injection-target-name>
	</injection-target>
</resource-ref>

web-fragment.xml:

<resource-ref>
	<res-ref-name>ReferenceName</res-ref-name>
	<res-type>javax.sql.DataSource</res-type>
	<res-auth>Container</res-auth>
	<res-sharing-scope>Shareable</res-sharing-scope>
	<injection-target>
		<injection-target-class>Class2</injection-target-class>
		<injection-target-name>Resource2</injection-target-name>
	</injection-target>
</resource-ref>

A Servlet 3.0 változatban a kombinált eredmény figyelmen kívül hagyja a Class2 beszúrási célját:

<resource-ref>
	<res-ref-name>ReferenceName</res-ref-name>
	<res-type>javax.sql.DataSource</res-type>
	<res-auth>Container</res-auth>
	<res-sharing-scope>Shareable</res-sharing-scope>
	<injection-target>
		<injection-target-class>Class1</injection-target-class>
		<injection-target-name>Resource1</injection-target-name>
	</injection-target>
</resource-ref>

A Servlet 3.1 változatban a kombinált eredmény használja a Class2 beszúrási célját:

<resource-ref>
	<res-ref-name>ReferenceName</res-ref-name>
	<res-type>javax.sql.DataSource</res-type>
	<res-auth>Container</res-auth>
	<res-sharing-scope>Shareable</res-sharing-scope>
	<injection-target>
		<injection-target-class>Class1</injection-target-class>
		<injection-target-name>Resource1</injection-target-name>
	</injection-target>
	<injection-target>
		<injection-target-class>Class2</injection-target-class>
		<injection-target-name>Resource2</injection-target-name>
	</injection-target>
</resource-ref>

A Servlet 3.1 viselkedésváltozásaival kapcsolatos további információkért tekintse meg a következőt: Servlet 3.1 viselkedésváltozások.