Pages enfant
  • JNDI (esup 4)

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.
Commentaire: Prise en compte des commentaires

...

  1. Modifier le rdbm.properties :

    Bloc de code
    titleuportal-war/src/main/resources/properties/rdbm.properties
    firstline24
    linenumberstrue
    ##### Maven Filtering
    ##### Use these settings to define DB connection settings in filters file: 
    hibernate.connection.jndiname=${environment.build.hibernate.connection.jndiname}
    ##### /filters/{env}.properties
  2. Déclarer la ressource JNDI "jdbc/uPortalDB" au niveau du serveur Tomcat :

    Bloc de code
    languagehtml/xml
    title<TOMCAT_HOME>/conf/context.xmlserver.xml
      <!-- Global JNDI resources
           Documentation at /docs/jndi-resources-howto.html
      -->
      <GlobalNamingResources>
        <!-- Editable user database that can also be used by
             UserDatabaseRealm to authenticate users
        -->
        <Resource name="UserDatabase" auth="Container"
                  type="org.apache.catalina.UserDatabase"
                  description="User database that can be updated and saved"
                  factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
                  pathname="conf/tomcat-users.xml" />
                  <Context path="/portail" docBase="/opt/webapps/uPortal" reloadable="false" crossContext="true">
        <WatchedResource>WEB-INF/web.xml</WatchedResource>
        <Resource name="jdbc/uPortalDB" 
            auth="Container" 
            type="javax.sql.DataSource"
            driverClassName="comorg.mysqlpostgresql.jdbc.Driver" 
            url="jdbc:mysqlpostgresql://localhost:33065432/testpostgres" 
            username="rootA141474" 
            password="root" 
            validationQuery="select 1" 
            removeAbandoned="true"
            removeAbandonedTimeout="120" 
            maxWait="60" 
            maxActive="20" 
            maxIdle="10" />
            
      </Context>GlobalNamingResources>
    Info

    crossContext est indispensable au bon fonctionnement du contexte uPortal, par exemple pour le partage de session ou pour Pluto.

  3. Ajouter un lien vers la ressource dans la pplication uPortal :

    Bloc de code
    titleesup-uportal-master\uportal-war\src\main\webapp\META-INF\context.xml
    linenumberstrue
    <Context crossContext="true" useHttpOnly="true" disableURLRewriting="true" reloadable="false">
        <Manager pathname="" className="org.apache.catalina.session.StandardManager"/>
         <ResourceLink global="jdbc/uPortalDB"
                    name="jdbc/uPortalDB"
                    type="javax.sql.DataSource"/>
    </Context>
  4. Utiliser la ressource dans l'application. Modifier :

    Bloc de code
    languagehtml/xml
    titleuportal-war/src/main/resources/properties/contexts/datasourceContext.xml
    <bean id="PortalDb" parent="basePooledDataSource">
        <qualifier value="PortalDb"/>
        <property name="driverClassName" value="${hibernate.connection.driver_class}" />
        <property name="url" value="${hibernate.connection.url}" />
        <property name="username" value="${hibernate.connection.username}" />
        <property name="password" value="${hibernate.connection.password}" />
    </bean>


    En :

    Bloc de code
    languagehtml/xml
    titleuportal-war/src/main/resources/properties/contexts/datasourceContext.xml
    <bean id="PortalDb" class="org.jasig.portal.spring.beans.factory.MediatingFactoryBean">
        <property name="type" value="javax.sql.DataSource" />
        <property name="delegateBeanNames">
        <list>
            <value>PortalDb.JNDI</value>
            <value>PortalDb.direct</value>
        </list>
        </property>
    </bean>
    
    <bean id="PortalDb.JNDI" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiName" value="java:comp/env/${hibernate.connection.jndiname}" />
    </bean>
     
    <bean id="PortalDb.direct" class="org.apache.commons.dbcp.BasicDataSource" lazy-init="true">
        <property name="driverClassName" value="${hibernate.connection.driver_class}" />
        <property name="url" value="${hibernate.connection.url}" />
        <property name="username" value="${hibernate.connection.username}" />
        <property name="password" value="${hibernate.connection.password}" />
    
        <property name="maxActive" value="50" />
        <property name="maxIdle" value="10" />
        <property name="maxWait" value="1000" />
        <property name="removeAbandoned" value="true" />
        <property name="removeAbandonedTimeout" value="300" />
        <property name="logAbandoned" value="true" />
    </bean>
    
    
  5. Configurer le fichier esup.properties :

    Bloc de code
    titlefilters/esup.properties
    environment.build.hibernate.connection.jndiname=jdbc/uPortalDB
  6. Redéployer l'application

...