3
votes

we created an OSGI Plugin to wrap the DB2 Driver and use it on our Domino Server. Our goal is to use the driver inside a REST Service that is based on the CustomService Bean class as well as using it later directly in XPages.

Looking at the instructions of the "XPages Exentension Library" book helped us to complete the plugin. We wrapped it in feature Project and installed it on the Domino Server via creating an Update Site and importing from there to the UpdateSite.nsf.

After installing the plugin we checked with

tell http osgi ss com.rsc -

Result:

id State       Bundle
14 RESOLVED    com.rsc.lotus.JDBC.DB2_1.0.1.20150914100

We added a jdbc file to the web-inf folder that contains the connection details. when we now try to get a connection by using

Connection conn = JdbcUtil.createNamedConnection(FacesContext.getCurrentInstance(), "db2");

it fails with the following stack trace:

    JVM: java.sql.SQLException
JVM:  at com.ibm.xsp.extlib.relational.jdbc.jndi.JndiDataSourceProxy.getConnection(JndiDataSourceProxy.java:139)
JVM:  at com.ibm.xsp.extlib.relational.util.JdbcUtil.createNamedConnection(JdbcUtil.java:86)
JVM:  at com.rsc.lotus.services.sales.model.DataAccessFacade.connectTest(DataAccessFacade.java:60)
JVM:  at com.rsc.lotus.services.sales.SalesService.renderService(SalesService.java:52)
JVM:  at com.ibm.xsp.extlib.component.rest.CustomService$ScriptServiceEngine.renderService(CustomService.java:259)
JVM:  at com.ibm.domino.services.HttpServiceEngine.processRequest(HttpServiceEngine.java:170)
JVM:  at com.ibm.xsp.extlib.component.rest.UIBaseRestService._processAjaxRequest(UIBaseRestService.java:258)
JVM:  at com.ibm.xsp.extlib.component.rest.UIBaseRestService.processAjaxRequest(UIBaseRestService.java:235)
JVM:  at com.ibm.xsp.util.AjaxUtilEx.renderAjaxPartialLifecycle(AjaxUtilEx.java:206)
JVM:  at com.ibm.xsp.webapp.FacesServletEx.renderAjaxPartial(FacesServletEx.java:249)
JVM:  at com.ibm.xsp.webapp.FacesServletEx.serviceAjaxPartialView(FacesServletEx.java:200)
JVM:  at com.ibm.xsp.webapp.FacesServletEx.serviceAjaxPartialViewSync(FacesServletEx.java:169)
JVM:  at com.ibm.xsp.webapp.FacesServletEx.serviceView(FacesServletEx.java:155)
JVM:  at com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:160)
JVM:  at com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:138)
JVM:  at com.ibm.xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:103)
JVM:  at com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:576)
JVM:  at com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(NSFComponentModule.java:1335)
JVM:  at com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:8
JVM:  at com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(ComponentModule.java:796)
JVM:  at com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:565)
JVM:  at com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:1319)
JVM:  at com.ibm.domino.xsp.module.nsf.NSFService.doServiceInternal(NSFService.java:662)
JVM:  at com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:482)
JVM:  at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:357)
JVM:  at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:313)
JVM:  at com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:272)
JVM: Caused by:
JVM: com.ibm.designer.runtime.resources.ResourceFactoriesException: Error while loading connection db2
JVM:  at com.ibm.xsp.extlib.relational.resources.provider.AbstractFileJdbcProvider.loadJDBCConnection(AbstractFileJd
JVM:  at com.ibm.xsp.extlib.relational.resources.provider.AbstractFileJdbcProvider.loadResourceFactory(AbstractFileJ
JVM:  at com.ibm.xsp.extlib.relational.resources.JdbcDataSourceProvider.loadResource(JdbcDataSourceProvider.java:83)
JVM:  at com.ibm.designer.runtime.resources.ResourceFactoriesPool.findResourceFactory(ResourceFactoriesPool.java:155
JVM:  at com.ibm.designer.runtime.resources.ResourceFactoriesPool.getResourceFactory(ResourceFactoriesPool.java:112)
JVM:  at com.ibm.xsp.extlib.relational.jdbc.jndi.JndiDataSourceProxy.getWrappedDatasource(JndiDataSourceProxy.java:1
JVM:  at com.ibm.xsp.extlib.relational.jdbc.jndi.JndiDataSourceProxy.getConnection(JndiDataSourceProxy.java:131)
JVM:  ... 26 more
JVM: Caused by:
JVM: com.ibm.designer.runtime.util.pool.PoolException: Error loading JDBC driver class com.ibm.db2.jcc.DB2Driver. If
JVM: ckage is available in the WEB-INF/lib directory. If running the studio, check that the corresponding package is
JVM:  at com.ibm.xsp.extlib.relational.jdbc.datasource.xpages.JdbcPool.<init>(JdbcPool.java:69)
JVM:  at com.ibm.xsp.extlib.relational.jdbc.datasource.xpages.JdbcPoolDataSource.<init>(JdbcPoolDataSource.java:38)
JVM:  at com.ibm.xsp.extlib.relational.jdbc.datasource.xpages.NSFFileJdbcXPCPProvider.loadConnection(NSFFileJdbcXPCP
JVM:  at com.ibm.xsp.extlib.relational.resources.provider.AbstractFileJdbcProvider.loadJDBCConnection(AbstractFileJd
JVM:  ... 32 more
JVM: Caused by:
JVM: java.security.PrivilegedActionException: java.sql.SQLException: Cannot create JDBC driver com.ibm.db2.jcc.DB2Dr
JVM:  at java.security.AccessController.doPrivileged(AccessController.java:331)
JVM:  at com.ibm.xsp.extlib.relational.jdbc.datasource.xpages.JdbcPool.<init>(JdbcPool.java:63)
JVM:  ... 35 more
JVM: Caused by:
JVM: java.sql.SQLException: Cannot create JDBC driver com.ibm.db2.jcc.DB2Driver
JVM:  at com.ibm.commons.jdbc.drivers.JDBCDriverLoader.loadDriver(JDBCDriverLoader.java:85)
JVM:  at com.ibm.xsp.extlib.relational.jdbc.datasource.xpages.JdbcPool$1.run(JdbcPool.java:65)
JVM:  at com.ibm.xsp.extlib.relational.jdbc.datasource.xpages.JdbcPool$1.run(JdbcPool.java:1)
JVM:  at java.security.AccessController.doPrivileged(AccessController.java:327)
JVM:  ... 36 more
JVM: Caused by:
JVM: java.security.PrivilegedActionException: java.lang.ClassNotFoundException: Cannot find class com.ibm.db2.jcc.DB
JVM:  at java.security.AccessController.doPrivileged(AccessController.java:331)
JVM:  at com.ibm.commons.jdbc.drivers.JDBCDriverLoader.loadDriver(JDBCDriverLoader.java:73)
JVM:  ... 39 more
JVM: Caused by:
JVM: java.lang.ClassNotFoundException: Cannot find class com.ibm.db2.jcc.DB2Driver in NSF
JVM:  at com.ibm.domino.xsp.module.nsf.ModuleClassLoader$DynamicClassLoader.findClass(ModuleClassLoader.java:499)
JVM:  at java.lang.ClassLoader.loadClass(ClassLoader.java:677)
JVM:  at com.ibm.domino.xsp.module.nsf.ModuleClassLoader$DynamicClassLoader.loadClass(ModuleClassLoader.java:399)
JVM:  at java.lang.ClassLoader.loadClass(ClassLoader.java:643)
JVM:  at com.ibm.domino.xsp.module.nsf.ModuleClassLoader.loadClass(ModuleClassLoader.java:205)
JVM:  at java.lang.ClassLoader.loadClass(ClassLoader.java:643)
JVM:  at com.ibm.domino.xsp.module.nsf.ModuleClassLoader.loadClass(ModuleClassLoader.java:215)
JVM:  at com.ibm.commons.jdbc.drivers.JDBCDriverLoader$1.run(JDBCDriverLoader.java:79)
JVM:  at com.ibm.commons.jdbc.drivers.JDBCDriverLoader$1.run(JDBCDriverLoader.java:1)
JVM:  at java.security.AccessController.doPrivileged(AccessController.java:327)
JVM:  ... 40 more

Does anyone have an idea why the driver isn't available?

edit: db2.jdbc content

<jdbc type="simple">
<driver>com.ibm.db2.jcc.DB2Driver</driver>
<url>jdbc:db2://DB2TEST.mycompany.int.com:7700/TEST</url>
<user>testuser</user>
<password>test</password>
</jdbc>

edit 2 : maybe it will help if i supply more informations. at the moment i'm checking the extension point:

here is what i added for the extension point enter image description here

package com.rsc.lotus.JDBC.drivers.db2;
import java.sql.Driver;
import java.sql.SQLException;
import com.ibm.commons.jdbc.drivers.IJDBCDriverAlias;
import com.ibm.commons.jdbc.drivers.JDBCProvider;
import com.ibm.db2.jcc.DB2Driver;



public class DB2DriverProvider implements JDBCProvider{

    public DB2DriverProvider(){

    }

    public IJDBCDriverAlias[] getDriverAliases() {
        return null;
    }

    public Driver loadDriver(String className) throws SQLException {
        if(className.equals(DB2Driver.class.getName())){
            //return new com.ibm.db2.jcc.DB2Driver();
            return new DB2Driver(); 
        }
        return null;
    }


}

i checked extension point with tell http osgi pt -v com.ibm.commons.Extension

but i can't find my plugin there (looked for com.rsc )

    Extension point: com.ibm.commons.Extension [from com.ibm.commons]
    Extension(s):
    -------------------
    null [from com.ibm.xsp.extlib.relational]
    <service>
    type = com.ibm.xsp.Library
    class = com.ibm.xsp.extlib.relational.library.RelationalLibrary
    </service>
    null [from com.ibm.xsp.extlib.relational]
    <service>
    type = com.ibm.xsp.extlib.controls.DynamicColumnBuilderFactory
    class = com.ibm.xsp.extlib.relational.component.dynamicview.JdbcDynamicColumnBuilderFactory
    </service>
    null [from com.ibm.xsp.extlib.relational]
    <service>
    type = com.ibm.designer.runtime.extensions.JavaScriptProvider
    class = com.ibm.xsp.extlib.relational.javascript.JdbcJSFunctions
    </service>
    null [from com.ibm.xsp.extlib.relational]
    <service>
    type = com.ibm.xsp.runtime.resources
    class = com.ibm.xsp.extlib.relational.resources.JdbcDataSourceProvider
    </service>
    null [from com.ibm.xsp.extlib.relational]
    <service>
    type = com.ibm.xsp.core.events.ApplicationListener
    class = com.ibm.xsp.extlib.relational.resources.ApplicationInitializer
    </service>
    null [from com.ibm.xsp.extlib.relational]
    <service>
    type = com.ibm.xsp.extlib.DumpAccessorFactory
    class = com.ibm.xsp.extlib.relational.debug.JdbcDumpFactory
    </service>
    null [from com.ibm.xsp.extlib.relational]
    <service>
    type = com.ibm.xsp.adapter.servletFactory
    class = com.ibm.xsp.extlib.relational.jdbc.services.servlet.JdbcServletFactory
    </service>
    null [from com.ibm.xsp.extlib.relational]
    <service>
    type = com.ibm.xsp.extlib.relational.jdbc.datasource.IFileJdbcPoolProvider
    class = com.ibm.xsp.extlib.relational.jdbc.datasource.dbcp.NSFFileJdbcDBCPProvider
    </service>
    null [from com.ibm.xsp.extlib.relational]
    <service>
    type = com.ibm.xsp.extlib.relational.jdbc.datasource.IFileJdbcPoolProvider
    class = com.ibm.xsp.extlib.relational.jdbc.datasource.xpages.NSFFileJdbcXPCPProvider
    </service>
    null [from org.openntf.xsp.bootstrap]
    <service>
    type = com.ibm.xsp.Library
    class = org.openntf.xsp.bootstrap.library.BootstrapLibrary
    </service>
    null [from org.openntf.xsp.bootstrap]
    <service>
    type = com.ibm.xsp.stylekit.StyleKitFactory
    class = org.openntf.xsp.bootstrap.themes.BootstrapStyleKitFactory
    </service>
    null [from com.ibm.xsp.theme.bootstrap]
    <service>
    type = com.ibm.xsp.stylekit.StyleKitFactory
    class = com.ibm.xsp.theme.bootstrap.themes.StyleKitFactory
    </service>
    null [from com.ibm.xsp.extlib.controls]
    <service>
    type = com.ibm.xsp.minifier.loader
    class = com.ibm.xsp.extlib.minifier.ExtLibLoader
    </service>
    null [from com.ibm.xsp.extlib.controls]
    <service>
    class = com.ibm.xsp.extlib.device.extensions.XspUserAgentDataProvider
    type = com.ibm.xsp.extlib.device.DeviceDataProvider
    </service>
    null [from com.ibm.xsp.extlib.domino]
    <service>
    type = com.ibm.xsp.extlib.controls.DynamicColumnBuilderFactory
    class = com.ibm.xsp.extlib.component.dynamicview.DominoDynamicColumnBuilderFactory
    </service>
    null [from com.ibm.xsp.extlib.domino]
    <service>
    type = com.ibm.designer.runtime.extensions.JavaScriptProvider
    class = com.ibm.xsp.extlib.javascript.ExtendedDominoJSFunctions
    </service>
    null [from com.ibm.xsp.extlib.domino]
    <service>
    type = com.ibm.xsp.extlib.social.PersonDataProvider
    class = com.ibm.xsp.extlib.beans.DominoUserBeanDataProvider
    </service>
    null [from com.ibm.xsp.extlib.domino]
    <service>
    type = com.ibm.xsp.extlib.social.PersonDataProvider
    class = com.ibm.xsp.extlib.beans.DominoDBUserBeanDataProvider
    </service>
    null [from com.ibm.xsp.extlib.domino]
    <service>
    type = com.ibm.xsp.GlobalResourceProvider
    class = com.ibm.xsp.extlib.resources.domino.DominoResourceProvider
    </service>
    null [from com.ibm.xsp.extlib.domino]
    <service>
    type = com.ibm.xsp.extlib.DumpAccessorFactory
    class = com.ibm.xsp.extlib.debug.DominoDumpFactory
    </service>
    null [from com.ibm.xsp.extlib.domino]
    <service>
    type = com.ibm.xsp.resource.DojoModulePathResource
    class = com.ibm.xsp.extlib.resources.domino.DominoModulePath
    </service>
    null [from com.ibm.xsp.extlib.domino]
    <service>
    type = com.ibm.xsp.minifier.loader
    class = com.ibm.xsp.extlib.minifier.DWALoader
    </service>
    null [from com.ibm.xsp.extlib.mobile]
    <service>
    type = com.ibm.xsp.RequestParameters
    class = com.ibm.xsp.extlib.request.MobileRequestCustomizerFactory
    </service>
    null [from com.ibm.xsp.extlib.mobile]
    <service>
    type = com.ibm.xsp.stylekit.StyleKitFactory
    class = com.ibm.xsp.extlib.mobile.themes.MobileStyleKitFactory
    </service>
    null [from com.ibm.xsp.extlib.oneui]
    <service>
    type = com.ibm.xsp.GlobalResourceProvider
    class = com.ibm.xsp.extlib.resources.ExtlibResourceProvider
    </service>
    null [from com.ibm.xsp.extlib.oneui]
    <service>
    type = com.ibm.xsp.stylekit.StyleKitFactory
    class = com.ibm.xsp.extlib.oneui.themes.OneUIStyleKitFactory
    </service>
    null [from com.ibm.xsp.extlib]
    <service>
    type = com.ibm.xsp.GlobalResourceProvider
    class = com.ibm.xsp.extlib.resources.ExtlibResourceProvider
    </service>
    null [from com.ibm.xsp.extlib]
    <service>
    type = com.ibm.xsp.Library
    class = com.ibm.xsp.extlib.library.ExtlibLibrary
    </service>
    null [from com.ibm.xsp.extlib]
    <service>
    type = com.ibm.xsp.renderkit.ContentTypeRenderer
    class = com.ibm.xsp.extlib.renderkit.contenttype.GoogleSearch
    </service>
    null [from com.ibm.xsp.extlib]
    <service>
    type = com.ibm.xsp.RequestParameters
    class = com.ibm.xsp.extlib.library.ExtlibRequestCustomizerFactory
    </service>
    null [from com.ibm.xsp.extlib]
    <service>
    type = com.ibm.xsp.extlib.DumpAccessorFactory
    class = com.ibm.xsp.extlib.util.debug.JavaScriptDumpFactory
    </service>
    null [from com.ibm.xsp.extlib]
    <service>
    type = com.ibm.xsp.extlib.DumpAccessorFactory
    class = com.ibm.xsp.extlib.util.debug.BasicDumpFactory
    </service>
    null [from com.ibm.xsp.extlib]
    <service>
    type = com.ibm.xsp.extlib.DumpAccessorFactory
    class = com.ibm.xsp.extlib.util.debug.XPagesDumpFactory
    </service>
    null [from com.ibm.xsp.extlib]
    <service>
    type = com.ibm.xsp.extlib.DumpAccessorFactory
    class = com.ibm.xsp.extlib.util.debug.ExtLibDumpFactory
    </service>
    null [from com.ibm.xsp.extlib]
    <service>
    type = com.ibm.xsp.extlib.DumpAccessorFactory
    class = com.ibm.xsp.extlib.social.impl.SocialDumpFactory
    </service>
    null [from com.ibm.xsp.extlib]
    <service>
    type = com.ibm.xsp.resource.DojoModulePathResource
    class = com.ibm.xsp.extlib.resources.ExtlibModulePath
    </service>
    null [from com.ibm.xsp.extlib]
    <service>
    type = com.ibm.xsp.adapter.servletFactory
    class = com.ibm.xsp.extlib.proxy.servlet.ProxyServletFactory
    </service>
    null [from com.ibm.xsp.extlibx]
    <service>
    class = com.ibm.xsp.extlibx.library.ExtlibXLibrary
    type = com.ibm.xsp.Library
    </service>
    com.ibm.designer.runtime.directory.ldap.ActiveDirectoryLDAPDirectoryProvider [from com.ibm.designer.runtime.directory]
    <service>
    type = com.ibm.designer.runtime.directory.extensions.DirectoryProvider
    class = com.ibm.designer.runtime.directory.ldap.ActiveDirectoryLDAPDirectoryProvider
    </service>
    com.ibm.designer.runtime.directory.ldap.CustomLDAPDirectoryProvider [from com.ibm.designer.runtime.directory]
    <service>
    type = com.ibm.designer.runtime.directory.extensions.DirectoryProvider
    class = com.ibm.designer.runtime.directory.ldap.CustomLDAPDirectoryProvider
    </service>
    com.ibm.designer.runtime.directory.ldap.DominoLDAPDirectoryProvider [from com.ibm.designer.runtime.directory]
    <service>
    type = com.ibm.designer.runtime.directory.extensions.DirectoryProvider
    class = com.ibm.designer.runtime.directory.ldap.DominoLDAPDirectoryProvider
    </service>
    com.ibm.designer.runtime.directory.ldap.NetscapeLDAPDirectoryProvider [from com.ibm.designer.runtime.directory]
    <service>
    type = com.ibm.designer.runtime.directory.extensions.DirectoryProvider
    class = com.ibm.designer.runtime.directory.ldap.NetscapeLDAPDirectoryProvider
    </service>
    com.ibm.designer.runtime.directory.ldap.OpenldapLDAPDirectoryProvider [from com.ibm.designer.runtime.directory]
    <service>
    type = com.ibm.designer.runtime.directory.extensions.DirectoryProvider
    class = com.ibm.designer.runtime.directory.ldap.OpenldapLDAPDirectoryProvider
    </service>
    com.ibm.designer.runtime.directory.ldap.SecureWayLDAPDirectoryProvider [from com.ibm.designer.runtime.directory]
    <service>
    type = com.ibm.designer.runtime.directory.extensions.DirectoryProvider
    class = com.ibm.designer.runtime.directory.ldap.SecureWayLDAPDirectoryProvider
    </service>
    com.ibm.designer.runtime.directory.notes.NotesDirectoryProvider [from com.ibm.designer.runtime.directory]
    <service>
    type = com.ibm.designer.runtime.directory.extensions.DirectoryProvider
    class = com.ibm.designer.runtime.directory.notes.NotesDirectoryProvider
    </service>
    com.ibm.designer.runtime.directory.password.PasswordDirectoryProvider [from com.ibm.designer.runtime.directory]
    <service>
    type = com.ibm.designer.runtime.directory.extensions.DirectoryProvider
    class = com.ibm.designer.runtime.directory.password.PasswordDirectoryProvider
    </service>
    com.ibm.designer.runtime.directory.xml.XMLDirectoryProvider [from com.ibm.designer.runtime.directory]
    <service>
    type = com.ibm.designer.runtime.directory.extensions.DirectoryProvider
    class = com.ibm.designer.runtime.directory.xml.XMLDirectoryProvider
    </service>
    null [from com.ibm.domino.xsp.adapter.nsf]
    <service>
    type = com.ibm.xsp.adapter.serviceFactory
    class = com.ibm.domino.xsp.adapter.nsf.NSFServiceFactory
    </service>
    null [from com.ibm.domino.xsp.adapter.osgi]
    <service>
    type = com.ibm.xsp.adapter.serviceFactory
    class = com.ibm.domino.xsp.adapter.osgi.OSGIServiceFactory
    </service>
    null [from com.ibm.xsp.core]
    <service>
    type = com.ibm.xsp.Library
    class = com.ibm.xsp.library.CoreLibrary
    </service>
    null [from com.ibm.xsp.core]
    <service>
    type = com.ibm.xsp.acf.HtmlFilteringFactory
    class = com.ibm.xsp.acf.DefaultHtmlFilteringFactory
    </service>
    null [from com.ibm.xsp.core]
    <service>
    class = com.ibm.xsp.stylekit.CoreThemeExtension
    type = com.ibm.xsp.stylekit.ThemeExtension
    </service>
    com.ibm.xsp.script.javascript [from com.ibm.xsp.designer]
    <service>
    type = com.ibm.designer.runtime.extensions.JavaScriptProvider
    class = com.ibm.xsp.script.JavaScriptExtension
    </service>
    null [from com.ibm.xsp.designer]
    <service>
    type = com.ibm.xsp.Library
    class = com.ibm.xsp.library.DesignerLibrary
    </service>
    null [from com.ibm.xsp.dojo]
    <service>
    type = com.ibm.xsp.context.DojoLibraryFactory
    class = com.ibm.xsp.dojo.factory.DojoVersion
    </service>
    null [from com.ibm.xsp.domino]
    <service>
    type = com.ibm.xsp.Library
    class = com.ibm.xsp.domino.DominoLibrary
    </service>
    null [from com.ibm.xsp.domino]
    <service>
    type = com.ibm.designer.runtime.extensions.JavaScriptProvider
    class = com.ibm.xsp.script.DomJavaScriptExtension
    </service>
    null [from com.ibm.xsp.domino]
    <service>
    type = com.ibm.xsp.library.Contributor
    class = com.ibm.xsp.DominoXspContributor
    </service>
    null [from com.ibm.xsp.domino]
    <service>
    type = com.ibm.xsp.LocalResourceProvider
    class = com.ibm.xsp.model.domino.webapp.DominoResourceProvider
    </service>
    null [from com.ibm.xsp.domino]
    <service>
    type = com.ibm.commons.platform.Factory
    class = com.ibm.domino.xsp.module.nsf.platform.Factory
    </service>
    null [from com.ibm.xsp.domino]
    <service>
    type = com.ibm.xsp.SerializableAdapter
    class = com.ibm.xsp.persistence.DominoSerializableAdapter
    </service>
    null [from com.ibm.xsp.domino]
    <service>
    type = com.ibm.xsp.minifier.loader
    class = com.ibm.xsp.minifier.CoreLoader
    </service>
    null [from com.ibm.xsp.domino]
    <service>
    type = com.ibm.xsp.minifier.loader
    class = com.ibm.xsp.minifier.DojoLoader
    </service>
    null [from com.ibm.xsp.domino]
    <service>
    type = com.ibm.xsp.context.DojoLibraryFactory
    class = com.ibm.xsp.domino.context.DominoDojo
    </service>
    null [from com.ibm.xsp.extsn]
    <service>
    type = com.ibm.xsp.Library
    class = com.ibm.xsp.library.ExtsnLibrary
    </service>
    null [from com.ibm.xsp.extsn]
    <service>
    type = com.ibm.xsp.GlobalResourceProvider
    class = com.ibm.xsp.minifier.MinifierResourceProvider
    </service>
    null [from com.ibm.xsp.extsn]
    <service>
    type = com.ibm.xsp.LocalResourceProvider
    class = com.ibm.xsp.minifier.AggregatedResourceProvider
    </service>
    null [from com.ibm.xsp.mum]
    <service>
    type = com.ibm.xsp.adapter.servletFactory
    class = com.ibm.xsp.opensocial.OpenSocialServletFactory
    </service>
    null [from com.ibm.xsp.mum]
    <service>
    type = com.ibm.designer.runtime.extensions.RuntimeInitializationEvent
    class = com.ibm.xsp.extlib.config.GadgetConfig
    </service>
    null [from com.ibm.xsp.mum]
    <service>
    type = com.ibm.xsp.RequestParameters
    class = com.ibm.xsp.opensocial.OSRequestCustomizerFactory
    </service>
    null [from com.ibm.xsp.mum]
    <service>
    type = com.ibm.xsp.adapter.servletFactory
    class = com.ibm.xsp.mum.MumServletFactory
    </service>
    null [from com.ibm.xsp.mum]
    <service>
    type = com.ibm.xsp.RequestParameters
    class = com.ibm.xsp.mum.MumRequestCustomizerFactory
    </service>
    null [from com.ibm.xsp.mum]
    <service>
    type = com.ibm.xsp.GlobalResourceProvider
    class = com.ibm.xsp.mum.resources.MumResourceProvider
    </service>
    null [from com.ibm.xsp.theme.oneui.idx]
    <service>
    type = com.ibm.xsp.GlobalResourceProvider
    class = com.ibm.xsp.theme.oneui_idx.ThemeResourceProvider
    </service>
    null [from com.ibm.xsp.theme.oneui.idx]
    <service>
    type = com.ibm.xsp.stylekit.StyleKitFactory
    class = com.ibm.xsp.theme.oneui_idx.ThemeStyleKitFactory
    </service>
    null [from com.ibm.xsp.theme.oneui.idx]
    <service>
    type = com.ibm.xsp.minifier.loader
    class = com.ibm.xsp.theme.oneui_idx.ThemeLoader
    </service>
    null [from com.ibm.xsp.theme.oneuiv302]
    <service>
    type = com.ibm.xsp.GlobalResourceProvider
    class = com.ibm.xsp.theme.oneuiv302.ThemeResourceProvider
    </service>
    null [from com.ibm.xsp.theme.oneuiv302]
    <service>
    type = com.ibm.xsp.stylekit.StyleKitFactory
    class = com.ibm.xsp.theme.oneuiv302.ThemeStyleKitFactory
    </service>
    null [from com.ibm.xsp.theme.oneuiv302]
    <service>
    type = com.ibm.xsp.minifier.loader
    class = com.ibm.xsp.theme.oneuiv302.ThemeLoader
    </service>
1
From the stack trace, it looks like it is having trouble either finding or reading your XML file that contains the connection details. I would focus on that first.Steve Zavocki
thanks for your help. i added the content of jdbc above. for me content of the file seems ok. additionally i added some more informations. for me it looks like the plugin is not available at the extension point. is there a way to find errors in a log or something?solidspace
I wish I could help. We didn't use an OSGI plugin for our DB2 drivers. We just installed them into jvm\ext\lib folder on the server.Steve Zavocki
You could try using the "JDBC Driver Plug-in Wizard" in Designer, if you have 901 Extlib installed (v7 or later). It will generate an update site (or just a plugin) with the correct format & structure for adding the driver to your server.Brian Gleeson - IBM
i think i'm gonna try JDBC Driver Plugin-in Wizard. If not i put it the files to jvm\ext\.. like Steve adviced. I'm gonna play around with the idea of my plugin later. thanks to all of you.solidspace

1 Answers

3
votes

As Steve mentioned, please check your definition file. The jdbc definition file in WEB-INF must be in the folder "jdbc" and named "db2.jdbc" as this is the name you are using.

The content is also important: check the <driver> section for the correct class name. This is an example for PostgreSQL but the structure for DB2 is similar:

<jdbc>
<driver>org.postgresql.Driver</driver>

<!-- replace host/ip and schema (demo) with your database -->
<url>jdbc:postgresql://notesx.net/postgres/xpagesdemo</url>

<!-- replace these with your credentials -->
<user>johndoe</user>
<password>password</password>
<simple>
    <maxPoolSize>50</maxPoolSize>
</simple>