Scala 2.9 Bridge-Method

Я использую 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.

Кто-нибудь сталкивался с этой проблемой? Есть ли какое-либо исправление или обходной путь?

6
задан shj 6 November 2011 в 03:48
поделиться