Hi,
Thanks for your replay.
I put jar file under conf/triggers before starting Cassandra then I could found
following log
INFO [OptionalTasks:1] 2017-11-30 03:55:43,541 CustomClassLoader.java:87 -
Loading new jar /home/tnarita/cassandra/conf/triggers/TestTrigger.jar
It looks like my jar files is added to Cassandra's classloader but when
Cassandra call my class, sometimes ClassNotFoundException happen.
If I reboot Cassandra , I don't get ClassNotFoundException and cassandara can
call my class.
So, I suspect function related to loading jar file have bugs.
Thanks,
Tsubasa Narita
From: Jacques-Henri Berthemet [mailto:jacques-henri.berthe...@genesys.com]
Sent: Wednesday, December 6, 2017 11:56 PM
To: user@cassandra.apache.org
Subject: RE: ClassNotFoundException when trigger is fired
Hi,
I have a custom secondary index that works well with Cassandra, I put the jar
file in Cassandra's lib folder before starting Cassandra, maybe you can try to
do the same thing?
I don't think that Cassandra's class loader is dynamic, you need to have your
jars in the classpath before starting Cassandra.
Regards,
--
Jacques-Henri Berthemet
From: tsubasa.nar...@us.fujitsu.com<mailto:tsubasa.nar...@us.fujitsu.com>
[mailto:tsubasa.nar...@us.fujitsu.com]
Sent: mercredi 6 décembre 2017 19:49
To: user@cassandra.apache.org<mailto:user@cassandra.apache.org>
Subject: ClassNotFoundException when trigger is fired
Dear All
I use cassandra trigger to detect data change in DB and usually it works.
But sometime I get ClassNotFoundException when trigger is fired.
Following is what I did
1. create class which implement ITrigger interface. ex)class name is
TestTrigger.java
2. create jar file and put it under conf/triggers ex)jar file name is
TestTrigger.jar
3. start cassandra
4. I can find following log. Looks like jar file is loaded successfully
INFO [OptionalTasks:1] 2017-11-30 03:55:43,541 CustomClassLoader.java:87 -
Loading new jar /home/tnarita/cassandra/conf/triggers/TestTrigger.jar
5. login cql and create trigger for test table.
6. insert value into test table
7. trigger is fired.
8. I got ClassNotFoundException. following is the log
java.lang.RuntimeException: Exception while executing trigger on table with ID:
1cb6a5a0-cb00-11e7-a737-49047aea57a8
at
org.apache.cassandra.triggers.TriggerExecutor.executeInternal(TriggerExecutor.java:241)
~[apache-cassandra-3.9.jar:3.9]
at
org.apache.cassandra.triggers.TriggerExecutor.execute(TriggerExecutor.java:119)
~[apache-cassandra-3.9.jar:3.9]
at
org.apache.cassandra.service.StorageProxy.mutateWithTriggers(StorageProxy.java:823)
~[apache-cassandra-3.9.jar:3.9]
at
org.apache.cassandra.cql3.statements.ModificationStatement.executeWithoutCondition(ModificationStatement.java:431)
~[apache-cassandra-3.9.jar:3.9]
at
org.apache.cassandra.cql3.statements.ModificationStatement.execute(ModificationStatement.java:417)
~[apache-cassandra-3.9.jar:3.9]
at
org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:188)
~[apache-cassandra-3.9.jar:3.9]
at
org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:219)
~[apache-cassandra-3.9.jar:3.9]
at
org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:204)
~[apache-cassandra-3.9.jar:3.9]
at
org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:115)
~[apache-cassandra-3.9.jar:3.9]
at
org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:513)
[apache-cassandra-3.9.jar:3.9]
at
org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:407)
[apache-cassandra-3.9.jar:3.9]
at
io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
[netty-all-4.0.39.Final.jar:4.0.39.Final]
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
[netty-all-4.0.39.Final.jar:4.0.39.Final]
at
io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChannelHandlerContext.java:35)
[netty-all-4.0.39.Final.jar:4.0.39.Final]
at
io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHandlerContext.java:357)
[netty-all-4.0.39.Final.jar:4.0.39.Final]
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[na:1.8.0_66]
at
org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:164)
[apache-cassandra-3.9.jar:3.9]
at
org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:109)
[apache-cassandra-3.9.jar:3.9]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_66]
Caused by: java.lang.ClassNotFoundException: com.test