かなり大きな webapp (Primefaces、Mojarra 2.1、Jetty を使用) を Sun JDK6 + Jetty 6 から Oracle JDK7 + Jetty 9 に切り替えることを検討しています。ほとんどの場合、これは簡単でしたが、Java 7 ではメソッド アクセスが異なるようです。
2つのメソッドを持つクラスを持つ場合
public Object getValue(int _index) {...}
と
public Object getValue(String _name) {...}
と使用
#{myBean.getValue(index)}
Java 6 では、 (パラメーターを使用して) 正しいメソッドを呼び出し、int
正しい値を返します。ただし、Java 7 では、何も表示されずに失敗し、何も返されたり出力されたりしませんでした。メソッド名を変更し、JSF ファイルで適切な名前を使用すると、アクセスは期待どおりに機能します。
なぜこれは Java 7 でしか見られないのですか? また、古い動作を復元する方法はありますか?