RestComm / smscgateway

RestComm SMS Gateway (SMSC) to send/receive SMS from/to Operators Network (GSM)
http://www.restcomm.com/
GNU Affero General Public License v3.0
126 stars 112 forks source link

Apparently missing library in SchedulerResourceAdaptor under Java 8/Wildlfy #292

Open KeithMilner opened 6 years ago

KeithMilner commented 6 years ago

/kind bug

What happened: Using Restcomm SMSC 7.4.0-138 compiled to work with Wildfly. Migrating config and data across from Restcomm 7.3.153 installation.

After normal startup, logs started getting filled with the following error:

2018-06-01 00:00:00,107 ERROR [javax.slee.RAEntityNotification[entity=SchedulerResourceAdaptor].SchedulerResourceAdaptor] (pool-78-thread-1) Exception in SchedulerResourceAdaptor when fetching records and issuing events: javax/xml/bind/DatatypeConverter: java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
        at org.restcomm.smpp.parameter.TlvProxy$1.read(TlvProxy.java:51)
        at org.restcomm.smpp.parameter.TlvProxy$1.read(TlvProxy.java:44)
        at javolution.xml.XMLFormat$InputElement.readInstanceOf(XMLFormat.java:467)
        at javolution.xml.XMLFormat$InputElement.get(XMLFormat.java:410)
        at org.restcomm.smpp.parameter.TlvSet$1.read(TlvSet.java:217)
        at org.restcomm.smpp.parameter.TlvSet$1.read(TlvSet.java:210)
        at javolution.xml.XMLFormat$InputElement.readInstanceOf(XMLFormat.java:467)
        at javolution.xml.XMLFormat$InputElement.get(XMLFormat.java:410)
        at javolution.xml.XMLObjectReader.read(XMLObjectReader.java:277)
        at org.mobicents.smsc.cassandra.DBOperations.createSms(DBOperations.java:1434)
        at org.mobicents.smsc.cassandra.DBOperations.c2_getRecordList(DBOperations.java:1172)
        at org.mobicents.smsc.slee.resources.scheduler.SchedulerResourceAdaptor.fetchSchedulable(SchedulerResourceAdaptor.java:950)
        at org.mobicents.smsc.slee.resources.scheduler.SchedulerResourceAdaptor.onTimerTick(SchedulerResourceAdaptor.java:461)
        at org.mobicents.smsc.slee.resources.scheduler.SchedulerResourceAdaptor$TickTimerTask.run(SchedulerResourceAdaptor.java:352)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

Unsure what the side effect of this is, other than it seemed to delay or prevent the migration of Cassandra tables.

What you expected to happen:

I expected no errors in the logs

How to reproduce it (as minimally and precisely as possible):

Unsure, but it seemed to be related to having Cassandra tables from a previous deployment that needed migrating.

Anything else we need to know?:

I fixed this by adding the following dependency to ../wildfly-10.1.0.Final/modules/system/layers/base/org/restcomm/smpp/bootstrap/main/module.xml <module name="javax.xml.bind.api" export="true"/>

After startup I see this in the logs :

2018-06-01 13:45:38,031 INFO [javax.slee.RAEntityNotification[entity=SchedulerResourceAdaptor].SchedulerResourceAdaptor] (pool-78-thread-1) Fetching: Scheduled '1' out of '0, fetchMaxRows=100, activityCount=0, fetchAvailRows=500'.

and the errors are gone.

Environment:

KeithMilner commented 6 years ago

I'm not sure that the fix I applied above is the correct or sensible one, hence raising this as a bug.