Плагин Grails, ссылающийся на удаленную пользовательскую службу с тем же именем

#spring #git #grails #jasper-plugin

#spring #git #grails #jasper-плагин

Вопрос:

У меня странная проблема, которая мешает запуску моего приложения Grails 3.3.9 после развертывания на Tomcat 8.

До недавнего времени у нас была собственная копия JasperService. Мы удалили это и теперь используем плагин Jasper. Увы, теперь мы получаем исключение (ff является нашим приложением)

 org.grails.taglib.TagLibraryLookup.registerTagLib(TagLibraryLookup.java:113)
...
org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'ff.documents.JasperService' to required type 'grails.plugins.jasper.JasperService' for property 'jasperService'; nested exception is java.lang.IllegalStateException: Cannot convert value of type 'de.berlinale.ff.documents.JasperService' to required type 'grails.plugins.jasper.JasperService' for property 'jasperService': no matching editors or conversion strategy found
  

Поскольку у нас нет TagLib, внедряющего JasperService, я предполагаю, что где-то все еще есть память / ссылка на старую службу, которая на самом деле пытается внедриться в JasperTagLib плагина, который я не могу редактировать:

 class JasperTagLib {
  JasperService jasperService 
  ...
}
  

Я использую IntelliJ Ultimate 2018.3, и проблема возникает не локально, а только при развертывании в качестве войны с tomcat. Я искал строку в path и scope, но ничего не нашел.

Я был бы рад, если бы кто-нибудь мог подсказать мне, где искать этот фантом.

Комментарии:

1. является ли ваше приложение монилитным? использует ли он какие-либо ваши модули / плагины? что ваш grails-app/conf/spring/resources.groovy содержит?

2. На самом деле у нас есть 3 модуля, которые мы создаем отдельно с помощью одного плагина (ff-core), который каждый модуль компилирует / загружает при сборке. Все ресурсы.groovy содержат пустые закрытия компонентов, за исключением ядра, в которое мы загружаем плагин jasper, как указано в документах.

3. тогда старая служба или класс, ссылающийся на нее, все еще должен присутствовать в одной из этих зависимостей, возможно, в виде файла jar

Ответ №1:

Мы обнаружили, что это, возможно, было проблемой Git. Мы разветвили master и развернули это без каких-либо изменений, и это запустилось без проблем, поэтому мы предполагаем, что на самом деле это было поврежденное Git-репозиторий нашей master-ветки. Я думаю, @injecteer был прав, что он должен был содержать ссылку.

Я задам свой вопрос тегом git. Спасибо @injecteer