我们正在考虑将我们相当大的 web 应用程序(使用 Primefaces、Mojarra 2.1、Jetty)从 Sun JDK6 + Jetty 6 切换到 Oracle JDK7 + Jetty 9。大多数情况下这很轻松,但似乎 Java 7 上的方法访问不同。
当有一个具有两种方法的类时
public Object getValue(int _index) {...}
和
public Object getValue(String _name) {...}
并使用
#{myBean.getValue(index)}
将调用正确的方法(带int
参数)并在 Java 6 下返回正确的值。然而,在 Java 7 中,它会静默失败并且不会返回/打印任何内容。当我更改方法名称并在 JSF 文件中使用适当的名称时,访问按预期工作。
为什么我只在 Java 7 上看到这一点,有没有办法恢复旧行为(基本上,它就像在 Java 代码中一样工作——根据参数的类使用正确的方法)?