Il 23/05/2013 09:21, Jesse van Bekkum ha scritto:
Found the issue: Mysql jdbc driver 5.1 is required, I was using 5.0
Thank you for your feedback.

Regards,
F.


Jesse


On Wed, May 22, 2013 at 9:11 AM, Jesse van Bekkum <[email protected] <mailto:[email protected]>> wrote:

    Hi

    I get the following error when testing the connection of my
    Scripted SQL connector:

    ==> /var/log/syncope/core-rest.log <==
    16:30:27.518 ERROR
    org.apache.syncope.core.rest.controller.AbstractController - Test
    connection failure {}
    java.lang.IllegalArgumentException: java.lang.AbstractMethodError:
    com.mysql.jdbc.Connection.isValid(I)Z
    at
    
org.apache.syncope.core.propagation.impl.ConnectorFacadeProxy.test(ConnectorFacadeProxy.java:480)
    ~[ConnectorFacadeProxy.class:na]
    at
    
org.apache.syncope.core.rest.controller.ConnInstanceController.check(ConnInstanceController.java:360)
    ~[ConnInstanceController.class:na]
    at
    
org.apache.syncope.core.rest.controller.ConnInstanceController$$FastClassByCGLIB$$7de89b09.invoke(<generated>)
    [spring-core-3.2.2.RELEASE.jar:na]
    at
    org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
    [spring-core-3.2.2.RELEASE.jar:3.2.2.RELEASE]
    at
    
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:698)
    [spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE]
    at
    
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
    [spring-aop-3.2.2.RELEASE.jar:3.2.2.RELEASE]
    .
    .
    .
    Caused by: java.lang.AbstractMethodError:
    com.mysql.jdbc.Connection.isValid(I)Z
    at
    
org.forgerock.openicf.connectors.scriptedsql.ScriptedSQLConnection.test(ScriptedSQLConnection.java:116)
    ~[na:na]
    at
    
org.forgerock.openicf.connectors.scriptedsql.ScriptedSQLConnector.checkAlive(ScriptedSQLConnector.java:136)
    ~[na:na]
    at
    
org.identityconnectors.framework.impl.api.local.ConnectorPoolManager$ConnectorPoolHandler.testObject(ConnectorPoolManager.java:113)
    ~[connid-framework-internal-1.3.3.jar:na]
    at
    
org.identityconnectors.framework.impl.api.local.ConnectorPoolManager$ConnectorPoolHandler.testObject(ConnectorPoolManager.java:79)
    ~[connid-framework-internal-1.3.3.jar:na]

    It goes wrong in scriptedsqlConnection.java, in the following lines:
        public void test() {
            try {
                if (null == getSqlConnection() || sqlConn.isClosed()
    || !sqlConn.isValid(2)) {
                    throw new ConnectionBrokenException("JDBC
    connection is broken");
                }
            }
            catch (SQLException e) {
                throw ConnectionBrokenException.wrap(e);
            }

        }

    sqlConn.isValid(2) throws a NPE, but I cannot find out where that
    goes wrong.

    All my connection parameters are identical to the ones of the old
    ConnID JDBCconnector, which works. So classpath, mysql driver and
    parameters are correct.

    Any idea what's wrong?

    Jesse


    On Tue, May 21, 2013 at 3:18 PM, Jesse van Bekkum
    <[email protected] <mailto:[email protected]>> wrote:

        Thanks Francesco. This looks promising.

        Jesse


        On Tue, May 21, 2013 at 2:46 PM, Francesco Chicchiriccò
        <[email protected] <mailto:[email protected]>> wrote:

            On 21/05/2013 14:18, Jesse van Bekkum wrote:

                Hi

                I would like to provision a multivalued attribute to a
                relational database, in a simple one-to-many mapping:

                UserId1 | MultivaluedAttr1
                UserId1 | MultivaluedAttr2
                UserId2 | MultivaluedAttr1
                etc.

                When I try to just provision a MV attribute, i get an
                error in core.log:
                java.util.concurrent.ExecutionException:
                java.lang.IllegalArgumentException: The method is only
                for single value attributes.
                        at
                
java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:232)
                ~[na:1.6.0_33]
                        at
                java.util.concurrent.FutureTask.get(FutureTask.java:91) 
~[na:1.6.0_33]
                        at
                
org.apache.syncope.core.propagation.impl.ConnectorFacadeProxy.update(ConnectorFacadeProxy.java:184)
                ~[ConnectorFacadeProxy.class:na]


            Hi,
            this looks like an exception raised by the ConnId
            DatabaseTable connector, that barely supports only
            single-valued attributes [1]: "[...]All of these
            attributes are single-valued[...]"

                        at
                
org.apache.syncope.core.propagation.impl.AbstractPropagationTaskExecutor.createOrUpdate(AbstractPropagationTaskExecutor.java:196)
                [AbstractPropagationTaskExecutor.class:na]
                        at
                
org.apache.syncope.core.propagation.impl.AbstractPropagationTaskExecutor.execute(AbstractPropagationTaskExecutor.java:297)
                [AbstractPropagationTaskExecutor.class:na]

                Is there another way to get this to work?


            I think you might try yourself with more customizable
            Scripted SQL connector [2].

                The multivalued attributes I am working with are a bit
                like roles, so if I define these as roles, and then
                provision the memberships somehow, that would also work.


            It might be, but consider that neither DatabaseTable nor
            Scripted SQL connectors support roles.

            Regards.

            [1]
            
https://connid.atlassian.net/wiki/display/BASE/Database+Table#DatabaseTable-Schema
            [2]
            
https://cwiki.apache.org/confluence/display/SYNCOPE/Configure+a+Scripted+SQL+resource

-- Francesco Chicchiriccò

            ASF Member, Apache Syncope PMC chair, Apache Cocoon PMC Member
            http://people.apache.org/~ilgrosso/
            <http://people.apache.org/%7Eilgrosso/>





Reply via email to