AW: Upgrade IDPv3.4.8 to 4.1.2 woes

Hans-Guenther Schreiner Hans-Guenther.Schreiner at h-ka.de
Tue Jun 22 21:26:54 UTC 2021


Thanks, Scott, for your quick reply.

> I believe we ship commons-dbcp2, and commons-dbcp is pretty long dead. Nothing's stopping you from adding jars yourself, but I sure wouldn't in that case.

The scary fact is, that, if we use a brand-new jetty 9.4.42,  the error message is more or less the same:

. 2021-06-22 22:24:40.689:WARN:oejw.WebAppContext:main: Failed startup of context o.e.j.w.WebAppContext at 7a69b07{Shibboleth Identity Provider,/idp,[file:///opt/jetty_base/tmp/jetty-0_0_0_0-8080-idp_war-_idp-any-3574204859099615273/webinf/, jar:file:///opt/shibboleth-idp/war/idp.war!/],UNAVAILABLE}{/opt/shibboleth-idp/war/idp.war}
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'shibboleth.JPAStorageService.entityManagerFactory' defined in file [/opt/shibboleth-idp/conf/global.xml]: Cannot resolve reference to bean 'shibboleth.PostgreSQLDataSource' while setting bean property 'dataSource'; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.apache.commons.dbcp.BasicDataSource] for bean with name 'shibboleth.PostgreSQLDataSource' defined in file [/opt/shibboleth-idp/conf/global.xml]; nested exception is java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource

To put it in a nutshell it seems to be a configuration problem:  Even after the upgrade without any errors, with your comment, I recognize the appropriate part of global.xml

    <!--
    Bean for storage of data in a PostgreSQL database. Used for
    persistent IDs on the one hand and user consent data on the other hand.
    We rely Apache Commons DBCP for connection pooling, as it comes
    bundled with Tomcat 7.
    -->
    <bean id="shibboleth.PostgreSQLDataSource"
          class="org.apache.commons.dbcp.BasicDataSource"
          p:driverClassName="org.postgresql.Driver"
          p:url="jdbc:postgresql://localhost/shibboleth"
          p:username="shibboleth"
          p:password="%{psql.password}"
          p:maxWait="15000"
          p:validationQuery="select 1"
          p:validationQueryTimeout="5" />

Neither tomcat nor jetty ... just a faulty config refering to an old class.

Thanks a lot!


More information about the users mailing list