Я использую Scala 2.9.1
Я определил свойство Logging как таковое:
trait Logging {
def debug(msg: String, throwables: Throwable*) = ....
....
}
И у меня есть JMSPublisher class, который смешивает черту Logging:
class JMSPublisher extends Publisher with Logging {
def publishProducts(list: List[_ <: Product]) = ....
def publish(list: Seq[Product]) = ....
}
Все это хорошо компилируется. Моя проблема в том, что у меня есть пользователь, который хочет загрузить мой JMSPublisher в Spring. Он использует Spring 2.5.6.
Когда ApplicationContext загружается во время запуска, приложение вылетает из-за исключения IllegalStateException, жалуясь, что не может найти мостовой метод, связанный с моей особенностью Logging.
Initialization of bean failed; nested exception is java.lang.IllegalStateException: Unable to locate bridged method for bridge method 'public void com.app.messaging.JmsPublisher.debug(java.lang.String, scala.collection.Seq)'
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:480)
.....stack trace follows.......
Этот код работал под Scala-2.8, и я слышал, что Scala помечает типаж, у которого есть некоторые методы, как соединенные в 2.9. Я думаю, это то, из-за чего Spring терпит неудачу. Я не могу перейти на Scala-2.9, если мой класс не может быть загружен с помощью Spring.
Кто-нибудь сталкивался с этой проблемой? Есть ли какое-либо исправление или обходной путь?