Patrick Schulz wrote:
> Der Servlet 2.4 Spezifikation zu Folge werden im web.xml
> Deployment-Descriptor externe Resourcen über <resource-ref> deklariert.
> Darin enthalten ist eine Definition namens <res-auth>, deren genauer
> Sinn sich mir nicht direkt erschließt.
>
> Die Spezifikation schreibt dazu:
> "The res-auth specifies whether the deployment component code signs on
> programmatically to the resource manager, or whether the container will
> sign on to the resource manager on behalf of the deployment component.
> In the latter case, the container uses the information supplied by the
> deployer."
>
> Die möglichen Werte für diese Definition sind "Container" und
> "Application".
>
> Kann mir jemand erklären wie das genau zu verstehen ist oder es Anhand
> eines Beispiels verdeutlichen?
Meinem Verständnis nach geht es um folgendes: Mit <resource-ref> refernzierst
Du ja eine externe Ressource via JNDI. Wenn diese Ressource nun bspw. eine
SQL-Datenbank darstellt, mußt Du Dich im Zweifel erst anmelden, bevor Du
tatsächlich auf die Daten zugreifen kannst. <res-auth> legt nun fest, wer für
die Anmeldung zuständig ist, der Code Deiner WebApp selbst ("Application")
oder der Servlet-Container ("Container"). In letzterem Falle muß natürlich
der Container die zur Anmeldung nötigen Credentials kennen, d. h. Du mußt sie
ihm auf irgendeine (Container-spezifische) Weise mitgeteilt haben.
Selbst habe ich allerdings <resource-ref> noch nie verwendet, sondern immer
das Tomcat-spezifische <Resource>. Das hat den Vorteil, daß der Tomcat gleich
einen Connection-Pool aufbaut.
Der Code, um den JNDI-Lookup zu machen und sich dann bspw. die
javax.sql.Connction zu holen, ist in beiden Varianten i. w. identisch.
Gruß
mks
--
----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org