Создание собственного плагина scaffold: исключение загрузки ресурса мета-виджета только при запуске в консоли forge
По некоторым причинам я пытаюсь перестроить плагин scaffoldface по отдельности, но обнаружил действительно раздражающую ошибку, которую не могу устранить.
java.lang.NoSuchMethodException: class org.metawidget.inspector.impl.BaseObjectInspectorConfig.setPropertyStyle(ForgePropertyStyle). Did you mean setPropertyStyle(PropertyStyle)?
at org.metawidget.config.impl.BaseConfigReader$ConfigHandler.classGetMethod(BaseConfigReader.java:1633)
Попробовав некоторые хитрости, просмотрите конфигурационные коды мета-виджетов, не найдя, как решить проблему.
scaffold setup --scaffoldType customfaces
работает нормально, но
scaffold from-entity com.domain.entity.* --scaffoldType customfaces
выходит из строя.
У кого-нибудь есть такая же проблема? Могу я что-нибудь испортить?
Обновление № 1:
Загрузка ресурса не удалась только при запуске в консоли forge. Тест JUnit работает отлично. Я предполагаю, что загрузчик ресурсов плагина metawidget пытается загрузить metawidget-*. Xml не из нового плагина, а из контекста исходного scaffold-api.
Обновление № 2:
Проблема в глубине мета-виджета и кузнечного отношения. Я обнаружил, что если я использую непосредственно SimpleResourceResolver.openResource()
, результат действителен. Но если я добавлю StaticHtmlWidget.setConfig()
результат Unable to locate com/domain/customfaces/metawidget-entity.xml on CLASSPATH
у первых write()
вызов. Я понятия не имею, как решить это поведение.
1 ответ
Возможно, вы включаете JAR-файлы Metawidget более одного раза? Forge использует JBoss Modules, поэтому вы должны быть осторожны, как устроен ваш classpath.
Ошибка Metawidget в основном говорит о том, что ForgePropertyStyle не относится к типу PropertyStyle. Но (если вы не изменили этот код в своих пользовательских интерфейсах) ForgePropertyStyle действительно расширяет PropertyStyle. То есть у вас должно быть два PropertyStyles на вашем пути к классам?