0
This code增加的getBean()方法,我們使用的是類:MissingMethodException:法無簽名:getBean()方法重新編譯後
clazz.metaClass.getBean = { String name ->
return VaadinUtils.getBean(name)
}
clazz.metaClass.getBean = { Class type ->
return VaadinUtils.getBean(type)
}
當應用程序啓動時它的工作原理沒有問題,它也存活數重新編譯。重新編譯完成like this:
def reloadedClass = application.classLoader.loadClass(vaadinGrailsClass.clazz.name)
幾個重新編譯後,它說的getBean()方法缺失和異常被拋出(所以一個個有重新啓動和重新部署正在開發的應用程序)。
Caused by MissingMethodException: No signature of method:
com.myapp.SaveIssueDetailListener.getBean() is applicable for argument types:
(java.lang.Class) values: [class agiletool.core.IssueService]
Possible solutions: getClass(), getForm(), getAt(java.lang.String)
->> 30 buttonClick in com.myapp.SaveIssueDetailListener$$ENRHmYFM
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
512 receiveEvent in com.vaadin.event.ListenerMethod
164 fireEvent . . . . . in com.vaadin.event.EventRouter
1219 fireEvent in com.vaadin.ui.AbstractComponent
550 fireClick . . . . . in com.vaadin.ui.Button
217 changeVariables in ''
1451 changeVariables . . in com.vaadin.terminal.gwt.server.AbstractCommunicationManager
1399 handleVariableBurst in ''
1318 handleVariables . . in ''
763 doHandleUidlRequest in ''
296 handleUidlRequest . in com.vaadin.terminal.gwt.server.CommunicationManager
501 service in com.vaadin.terminal.gwt.server.AbstractApplicationServlet
191 service . . . . . . in com.vaadin.terminal.gwt.server.GrailsAwareApplicationServlet
886 runTask in java.util.concurrent.ThreadPoolExecutor$Worker
908 run . . . . . . . . in ''
680 run in java.lang.Thread
這就是我們稱之爲的getBean()方法:
public void buttonClick(ClickEvent event) {
UserService userService = getBean(UserService) //...
任何想法可能是錯誤的?