DataSource mit Tomcat einrichten

Chrissel

Mitglied
Hallo zusammen,

ich habe eine Web-Anwendung auf einem Tomcat 7 mit Postgres DB laufen und wollte eigentlich nur die (funktionierende) JDBCRealm Auth. auf eine DataSourceRealm Auth. umstellen.

Obwohl ich meiner Meinung nach ordentlich der Apache Doko gefolgt bin, bekomme ich eine NameNotFoundException:

Code:
Exception performing authentication
javax.naming.NameNotFoundException: Name [OW2_Fach_quer2DB] is not bound in this Context. Unable to find [OW2_Fach_quer2DB].

Da ich die server.xml möglichst unangetastet lassen möchte, habe ich nun folgende

context.xml

[XML]<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>

<ResourceLink name="jdbc/OW2_Fach_quer2DB"
global="jdbc/OW2_Fach_quer2DB"
type="javax.sql.DataSource" />

<Resource name="jdbc/OW2_Fach_quer2DB"
type="javax.sql.DataSource"
auth="Container"
driverClassName="org.postgresql.Driver"
url="jdbc😛ostgresql://localhost:6432/ow2_fach"
username="user"
password="passw"
validationQuery="select 1"
maxActive="10"
maxIdle="2"/>

<Realm className="org.apache.catalina.realm.DataSourceRealm"
dataSourceName="jdbc/OW2_Fach_quer2DB"
userTable="quer2.benutzer"
userNameCol="account"
userCredCol="passwort"

userRoleTable="quer2.login"
roleNameCol="rolle"
digest="SHA-256" />

<!-- CDI Res -->
<Resource name="BeanManager" auth="Container"
type="javax.enterprise.inject.spi.BeanManager"
factory="org.jboss.weld.resources.ManagerObjectFactory" />

</Context>[/XML]

meine web.xml:

[XML]<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<description>Querbauwerke 2</description>
<!-- Persistence -->
<persistence-context-ref>
<persistence-context-ref-name>persistence/em</persistence-context-ref-name>
<persistence-unit-name>quer2</persistence-unit-name>
</persistence-context-ref>



<!-- Listeners -->
<listener>
<!-- Weld Listener Chapter -->
<listener-class>org.jboss.weld.environment.servlet.Listener</listener-class>
</listener>


<!-- Resource References -->
<!-- CDI Weld benötigte Res. -->
<resource-ref>
<description>Quer2DBConnection</description>
<res-ref-name>jdbc/OW2_Fach_quer2DB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<resource-env-ref>
<resource-env-ref-name>BeanManager</resource-env-ref-name>
<resource-env-ref-type>javax.enterprise.inject.spi.BeanManager</resource-env-ref-type>
</resource-env-ref>



<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.xhtml</welcome-file>
</welcome-file-list>

<!-- Error Page -->
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/Error.xhtml</location>
</error-page>
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>


<context-param>
<description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>resources.application</param-value>
</context-param>



<!-- Security Regelungen für Unterverzeichnisse -->
<security-constraint>
<web-resource-collection>
<web-resource-name>all</web-resource-name>
<url-pattern>/pages/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>q2admin</role-name>
</auth-constraint>
</security-constraint>

<security-constraint>
<web-resource-collection>
<web-resource-name>all</web-resource-name>
<url-pattern>/pages/admin/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>q2admin</role-name>
</auth-constraint>
</security-constraint>

<login-config><!-- DIGEST / FORM -->
<auth-method>FORM</auth-method>
<realm-name>ApplicationRealm</realm-name>
<form-login-config>
<form-login-page>/Login.xhtml</form-login-page>
<form-error-page>/LoginError.xhtml</form-error-page>
</form-login-config>
</login-config>

<security-role>
<role-name>q2admin</role-name>
</security-role>

</web-app>[/XML]

Ich würde mich freuen, wenn Euch da etwas auffällt, woran es hapern könnte.

MfG
Chrissel
 
Zuletzt bearbeitet:
Ich komme wohl nicht drumherum den Resource Eintrag in die Tomcat server.xml zu schreiben...

server.xml :

[XML]<GlobalNamingResources>
<!-- Editable user database that can also be used by
UserDatabaseRealm to authenticate users
-->
<Resource auth="Container" description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
name="UserDatabase"
pathname="conf/tomcat-users.xml"
type="org.apache.catalina.UserDatabase"/>

<Resource auth="Container" driverClassName="org.postgresql.Driver"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
maxActive="10" maxIdle="10" minIdle="2" maxPoolSize="5"
name="jdbc/OW2_Fach_quer2DB" password="passw"
type="javax.sql.DataSource" url="jdbc😛ostgresql://localhost:6432/ow2_fach"
username="user" validationQuery="select 1"/>
</GlobalNamingResources>[/XML]

die context.xml sieht daher nun so aus:

context.xml :
[XML]<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>

<Realm className="org.apache.catalina.realm.DataSourceRealm"
dataSourceName="jdbc/OW2_Fach_quer2DB"
userTable="quer2.benutzer"
userNameCol="account"
userCredCol="passwort"

userRoleTable="quer2.login"
roleNameCol="rolle"
digest="SHA-256"
/>

<!-- CDI Res -->
<Resource name="BeanManager" auth="Container"
type="javax.enterprise.inject.spi.BeanManager"
factory="org.jboss.weld.resources.ManagerObjectFactory" />

</Context>[/XML]
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben