powered by Jive Software

Which jar files are needed for slf4j using Tinder with Openfire 3.6.4


#1

I am re-writing a plugin using Tinder (Gus, great stuff by the way) and using the AbstractComponent and everything seems fine except I get this error

Exception in thread “pool-10-thread-1” java.lang.NoSuchMethodError: org.slf4j.Logger.trace(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V

at org.xmpp.component.AbstractComponent.processIQRequest(AbstractComponent.java:44 4)

at org.xmpp.component.AbstractComponent.processIQ(AbstractComponent.java:252)

at org.xmpp.component.AbstractComponent.processQueuedPacket(AbstractComponent.java :202)

at org.xmpp.component.AbstractComponent.access$100(AbstractComponent.java:76)

at org.xmpp.component.AbstractComponent$PacketProcessor.run(AbstractComponent.java :933)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

Can anyone else using Tinder point me at the missing jar files to make this error go away


#2

The next release of Openfire (3.7.0) will support the slf4j framework that is also being used by Tinder. The current and previous versions of Openfire (3.6.4 and older) make use of a propriatery logging implementation. This implementation is not accessible by an existing slf4j framework binder.

I had expected Openfire 3.7.0 to be released by now. Sadly, this is being delayed (Re: When the new version openfire server is expected?)

There’s a couple of things that you can do now:

  • Wait for Openfire 3.7.0 to be released;
  • Write your own slf4j framwork binder to make slf4j talk to Openfires logging framework;
  • Add log4j (or any other framework) to your plugin and add the corresponding slf4j binder.

#3

Add log4j (or any other framework) to your plugin and add the corresponding slf4j binder.
I did that, but it did not get rid of the error. In the end, I modified the source code of AbstractComponent and changed the log.trace() methods to log.debug() and that solved it for me.

Thanks for the reply.