Ve specifikaci serveru Servlet 3.0 je v položce <injection-target> prvky odkazu na prostředek, který je definován v web-fragment.xml souboru jsou přidány do nadřazeného souboru web.xml pouze v případě, že web.xml definice odkazu na prostředek se stejným názvem neobsahuje žádné prvky <injection-target>. Specifikace serveru Servlet 3.1 objasňuje, že pro prostředek odkaz na zdroj stejného jména, všechny <injection-target> prvky v deskriptorech web-fragment.xml jsou přidány do nadřazeným deskriptorům web.xml seznam prvků <injection-target>. Na stránkách Funkce Servlet 3.1 může změnit stávající chování aplikace aktivací injekce cílů, které byly dříve ze souboru web.xml vyloučeny.
Toto pravidlo označuje prvek <injection-target> v web-fragment.xml souboru, pokud je web.xml soubor obsahuje prvek <injection-target> v rámci prvku <resource-ref>, který je definován příkazem stejným názvem jako prvek <resource-ref> v souboru web-fragment.xml.
Následující příklady demonstrují změnu chování, když použijete kombinaci souboru web.xml a souboru web-fragment.xml:
web.xml:
< span class= "XmlElement"> < resource-ref> < /span> < span class= "XmlElement"> < res-ref-name> < /span>ReferenceName< span class="XmlElement"> < /res-ref-name> < /span> < span class= "XmlElement"> < res-type> < /span>javax.sql.DataSource< span class="XmlElement"> < /res-type> < /span> < span class= "XmlElement"> < res-auth> < /span> Kontejner < span class="XmlElement"> < /res-auth> < /span> < span class= "XmlElement"> < res-sharing-scope> < /span> Shareable < span class="XmlElement"> < /res-sharing-scope> < /span> < span class= "XmlElement"> < injection-target> < /span> < span class= "XmlElement"><injection-target-class>Class1 < /injection-target-class> < /span> < span class= "XmlElement"><injection-target-name>Resource1 < /injection-target-name> < /span> < span class= "XmlElement"> < /injection-target> < /span> < span class="XmlElement"> < /resource-ref> < /span>
web-fragment.xml:
< span class= "XmlElement"> < resource-ref> < /span> < span class= "XmlElement"> < res-ref-name> < /span>ReferenceName< span class="XmlElement"> < /res-ref-name> < /span> < span class= "XmlElement"> < res-type> < /span>javax.sql.DataSource< span class="XmlElement"> < /res-type> < /span> < span class= "XmlElement"> < res-auth> < /span> Kontejner < span class="XmlElement"> < /res-auth> < /span> < span class= "XmlElement"> < res-sharing-scope> < /span> Shareable < span class="XmlElement"> < /res-sharing-scope> < /span> < span class= "XmlElement"> < injection-target> < /span> < span class= "XmlElement"><injection-target-class>Class2 < /injection-target-class> < /span> < span class= "XmlElement"><injection-target-name>Resource2 < /injection-target-name> < /span> < span class= "XmlElement"> < /injection-target> < /span> < span class="XmlElement"> < /resource-ref> < /span>
Ve verzi Servlet 3.0 kombinovaný výsledek ignoruje cíl vkládání pro Class2:
< span class= "XmlElement"> < resource-ref> < /span> < span class= "XmlElement"> < res-ref-name> < /span>ReferenceName< span class="XmlElement"> < /res-ref-name> < /span> < span class= "XmlElement"> < res-type> < /span>javax.sql.DataSource< span class="XmlElement"> < /res-type> < /span> < span class= "XmlElement"> < res-auth> < /span> Kontejner < span class="XmlElement"> < /res-auth> < /span> < span class= "XmlElement"> < res-sharing-scope> < /span> Shareable < span class="XmlElement"> < /res-sharing-scope> < /span> < span class= "XmlElement"> < injection-target> < /span> < span class= "XmlElement"><injection-target-class>Class1 < /injection-target-class> < /span> < span class= "XmlElement"><injection-target-name>Resource1 < /injection-target-name> < /span> < span class= "XmlElement"> < /injection-target> < /span> < span class="XmlElement"> < /resource-ref> < /span>
Ve verzi Servlet 3.1 kombinovaný výsledek používá cíl vkládání pro Class2:
<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>
Další informace ke změnám chování Servlet 3.1 viz následující prostředek: Změny chování Servlet 3.1.