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/>