创建自己的scaffold插件:metawidget资源加载异常仅在forge控制台中运行时

时间:2012-09-27 13:43:26

标签: java crud jboss-tools seam3 jboss-forge

由于某些原因,我尝试单独重建一个脚手架面部插件,但发现了一个非常烦人的bug,我无法解决。

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)

尝试了一些技巧后,查看metawidget配置代码,找不到如何解决问题。

scaffold setup --scaffoldType customfaces

工作正常,但

scaffold from-entity com.domain.entity.* --scaffoldType customfaces 

失败。

有人有同样的问题吗?我可以弄乱一些东西吗?


更新#1

在forge控制台中运行时,资源加载仅失败。 JUnit测试工作正常。我假设,metawidget插件资源加载器尝试加载metawidget - * .xml不是来自新插件,而是来自原始scaffold-api的上下文。

更新#2

问题在于metawidget和伪造关系。我发现如果我直接使用SimpleResourceResolver.openResource(),结果是有效的。但是,如果我添加StaticHtmlWidget.setConfig(),则结果为Unable to locate com/domain/customfaces/metawidget-entity.xml on CLASSPATH,即write()次呼叫。我不知道如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

可能你不止一次包括Metawidget JAR? Forge使用JBoss模块,因此必须小心如何构造类路径。

Metawidget错误基本上是说'ForgePropertyStyle'不是'PropertyStyle'类型。但是(除非你在自定义面板中更改了代码)ForgePropertyStyle确实扩展了PropertyStyle。所以你必须在你的类路径上有两个PropertyStyles?