JSF/EL偶尔无法解决操作方法

JSF/EL偶尔无法解决操作方法,jsf,el,Jsf,El,环境: JSF2.1.11 el api 2.2 日食开普勒 雄猫7 铬 IE-11 我有一个可以工作的xhtml和bean,它包含几个动作方法,并且工作得很好 我添加了另一个命令按钮: <h:commandButton id="idBtnSave" value="Save" action="#{imageMetadataEditProvider.saveLabelWithBox}"></h:commandButton> 。。。然后由于某种莫名其妙的原因,EL在be

环境:

JSF2.1.11 el api 2.2 日食开普勒 雄猫7 铬 IE-11 我有一个可以工作的xhtml和bean,它包含几个动作方法,并且工作得很好

我添加了另一个命令按钮:

<h:commandButton id="idBtnSave" value="Save" 
action="#{imageMetadataEditProvider.saveLabelWithBox}"></h:commandButton> 
。。。然后由于某种莫名其妙的原因,EL在bean上找不到方法saveLabelWithBox

我做了几轮重命名方法、重建、取消部署和清理Tomcat环境、重新部署。这几乎总是失败的

然而,似乎有效的方法只是将saveLabelWithBox{}块移动到bean中的其他位置。突然,它又起作用了,所以我轻信地将该方法重命名为更有意义的方法,然后又失败了。。。艾尔找不到方法。所以我重新命名并移动它,重建,重新部署,现在它又能工作了


我很好奇,除了Eclipse工作区被破坏的典型嫌疑,或者在微波束路径上,其他人是否有过这种奇怪的行为,以及你认为可能导致这种情况的原因。

我终于解决了这个奇怪的问题,它似乎与环境中的腐败有关。解决方法似乎是创建一个具有不同名称的新bean,并从以前不可靠的bean导入所有方法。我也做了通常的Eclipse-clean启动,尽管这似乎没有效果。我还删除了Eclipse.metadata并重新启动,尽管这似乎也没有效果

奇怪的是,在构建新的替换bean之后,它不会通过注释加载: @ManagedBean @视域

…所以我不得不在faces配置中定义替换bean,然后在页面请求时加载它。我认为环境还是有问题的。但是所有的方法现在都得到了解决,并且已经正常工作了几天


你的里程数可能会有所不同。

总有一个原因。这给我在使用JSF 1.x版本+Eclipse时敲响了警钟。这种行为就是你所描述的。开普勒+莫哈拉2.x+Tomcat从未发生在我身上。无论如何,这似乎是一个与EclipseWTP相关的问题,只需在Eclipse中为Tomcat安装建立一个自定义部署目录,并查看更改时是否替换了*.class文件。您也没有指定是否使用Maven或类似的打包工具。
public void saveLabelWithBox() {
    saveBoundingBox();
    saveImage();
}