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 a <injection-target> elemeket egy web-fragment.xml fájlban meghatározott csak akkor kerül hozzá a szülő web.xml fájlhoz, ha a web.xml erőforrás-hivatkozás definíciója az azonos névvel azonos nevű <injection-target> elemeket nem tartalmaz. A Servlet 3.1 specifikáció tisztázza, hogy egy erőforrás esetében névre való hivatkozás esetén az összes <injection-target> elemeket a web-fragment.xml leírókban hozzá kell adni a a szülő web.xml leírókhoz <injection-target> elemek listájához. A Servlet 3.1 funkció megváltoztathatja a meglévő alkalmazás viselkedését az injektálás aktiválásával célpontokat, amelyek korábban ki voltak zárva a web.xml fájlból.

Ez a szabály megjelöli a <injection-target> elemet a web-fragment.xml fájlban fájlban, ha a web.xml fájl tartalmaz egy <injection-target> elemet egy <resource-ref> elemen belül, amely a következővel van definiálva a a web-fragment.xml fájlban található <resource-ref> elemmel azonos névvel van definiálva.

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.