2012-09-27 22 views
0

中運行metawidget資源加載例外,我試圖重建一個支架的面孔因爲某些原因分開插件,卻發現一個非常惱人的錯誤,我解決不了。創建自己的腳手架插件:只有當鍛造控制檯

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

資源只加載失敗,當鍛造控制檯內運行。 JUnit測試正常工作。我認爲,metawidget插件資源加載器嘗試加載metawidget - *。xml不是來自新插件,而是來自原始腳手架-API的上下文。

更新#2

的問題是somewehere深metawidget,銳意關係。我發現如果我直接使用SimpleResourceResolver.openResource(),結果是有效的。但如果我添加StaticHtmlWidget.setConfig(),結果是Unable to locate com/domain/customfaces/metawidget-entity.xml on CLASSPATH在第一次調用write()。我不知道如何解決這個問題。

+1

這個問題比我之前提到的更有趣,我編寫的Te JUnit測試正確運行。 。 getShell()執行( 「支架從實體com.domain.entity * --scaffoldType customfaces --overwrite --targetDir /。」); 它可能會僞造控制檯相關的問題? – azendh

回答

0

也許你包括Metawidget JAR文件不止一次? Forge使用JBoss模塊,因此您必須小心如何構建您的類路徑。

的Metawidget誤差基本上是說,「ForgePropertyStyle」的類型是「物業風格」的不是。但是(除非您在自定義面板中更改了該代碼),ForgePropertyStyle的確的確擴展了PropertyStyle。所以你的類路徑必須有兩個PropertyStyles?

+0

克隆插件也取決於metawidget-all artifact,但是如果我將範圍從'compile'更改爲'test',我無法安裝插件。我重新命名'ForgePropertyStyle'到'CustomFacesPropertyStyle'(也是*配置),但例外的是相同的:插件參考'ForgePropertyStyle'(在metawidget XML-S被修改,太)。你有什麼想法,如何消除這個問題。我完全困惑。 – azendh

+1

這不是ForgePropertyStyle/CustomFacesPropertyStyle這是問題,所以重命名將無濟於事。問題(我認爲)是你的類路徑中有兩個org.metawidget.inspector.impl.propertystyle.PropertyStyles。你可以嘗試1)刪除默認的scaffold-faces模塊,只需要定製一個; 2)查看https://github.com/forge/plugin-spring-mvc這是一個類似的插件(也使用Metawidget); 3)在[email protected]問這個問題 –

+0

問題仍然沒有解決。我理解你的答案,在classpath中有兩個metawidget-all jar,但我無法修復它:我可能沒有足夠的mavan技能。 :( 1)不是接受靈魂。 2)我檢查一下,但沒有發現任何區別,如何依賴metawidget模塊。 (當我嘗試,這個模塊是與當前狀態越野車) 3)仍然沒有嘗試它,我希望任何人都可以在這裏幫助。我認爲這是一個與maven相關的問題,所以我一直在閱讀並嘗試:) – azendh