9

getCurrentlocation()タイプで定義された関数を呼び出そうとするjspページを表示すると、例外が発生しますPerson。この関数は${person.currentlocation}、jspファイルでによって呼び出されます。

type Exception report

message javax.el.ELException: Error reading 'currentlocation' on type **.person.Person

description The server encountered an internal error that prevented it from fulfilling this request.

exception 

org.apache.jasper.JasperException: javax.el.ELException: Error reading 'currentlocation' on type **.person.Person

私はjspテクノロジーにかなり慣れていません。多分誰かが私を助けることができます!

ありがとう、ベンジャミン

4

1 に答える 1

22

これELExceptionはラッパーの例外です。これは通常、getter メソッド自体の呼び出しによって例外がスローされた場合にのみスローされます。ELExceptionこれがスローされると、次のようなことがカバーの下で起こっています。

Object bean;
String property;
Method getter;
// ...

try {
    getter.invoke(bean);
} catch (Exception e) {
    String message = String.format("Error reading '%s' on type %s", property, bean.getClass().getName());
    throw new ELException(message, e);
}

実際の根本原因については、スタック トレースのさらに下を確認する必要があります。完全なスタック トレースは通常、サーバー ログでのみ確認できます。本当の根本原因は、スタック トレースの一番下の例外です。たとえば、以下NullPointerExceptionは getter メソッドでスローされたことが原因です。

javax.el.ELException: Error reading 'currentlocation' on type **.person.Person
    at ...
    at ...
    at ...
Caused by: java.lang.NullPointerException
    at **.person.Person.getCurrentlocation(Person.java:42)
    at ...
    at ...

本当の根本原因 (例外の種類と行番号) に関する情報は、問題を突き止めるのに十分な手がかりになるはずです。

繰り返しますが、これは一般的に EL の問題ではありません。問題を引き起こしたのはあなた自身のコードです。

于 2012-09-17T18:54:12.050 に答える