Используете ли вы Gilead <</strong> 1.2.2?
Если да, обновите Gilead . А затем снова запустите и проверьте новое сообщение об исключении. Скорее всего, просто какая-то неправильная конфигурация.
Полное объяснение:
Если вы проверите исходный код PersistentRemoteService.java в версии 1.2.1
PersistentRemoteService.java v1.2.1
в строке 170 вы видите следующую строку
return RPCCopy.getInstance().encodeResponseForFailure(null, ex, rpcRequest.getSerializationPolicy());
Это очевидно не с NullPointerException
, если rpcRequest
равно нулю.
Это происходит, когда в строке 143
// Decode request
rpcRequest = RPCCopy.getInstance().decodeRequest(payload, this.getClass(), this);
Метод decodeRequest
бросает IncompatibleRemoteServiceException
. Что это делает в вашем случае.
Начиная с версии 1.2.2 строка 170 меняется на
if (rpcRequest != null)
{
return RPCCopy.getInstance().encodeResponseForFailure(null, ex, rpcRequest.getSerializationPolicy());
}
else
{
return RPCCopy.getInstance().encodeResponseForFailure(null, ex);
}
Теперь вы должны получить правильное исключение (IncompatibleRemoteServiceException
), которое указывает на реальную проблему.
Вы также можете проверить соответствующую фиксацию / исправление в SVN
Исправлено неправильное исключение (ошибка 2663344)
и соответствующая запись о проблеме в Bug-Tracker для Gilead
Неправильное исключение
Таким образом, эта проблема решается в SVN с 7 февраля 2009 г. или с версии Gilead 1.2.2 (13 марта 2009 г.)