Я пытаюсь отладить приложение, которое работает должным образом при локальном тестировании на компьютере с Windows XP (версия 5.1 сборка 2600 с пакетом обновления 3) через Websphere Platform 6.1 под управлением Java версии 1.5.
Это приложение выбрасываетArrayStoreException при его развертывании на серверах UNIX (SunOS, версия 5.10) под управлением Java версии 1.5.0_24.
Я склоняюсь к тому, что это проблема конфигурации среды, но (кроме того, что она работает локально) я могу 'Кажется, он не подтверждает, что это проблема конфигурации.
Ниже приведены сообщения журнала , которые были добавлены в код для устранения неполадок.Как отмечено в журналах, код пытается добавить объект Profile в массив типа Profile .Я не понимаю, почему это не сработает.
CollectionUtility.searchMapmsg = ZZZZZ Пойманный ArrayStoreException ZZZZZ
CollectionUtility.searchMap | msg = ZZZZZ Невозможно добавить элемент списка в массив типа [Lcom.process.im.profile.impl.Profile;ZZZZZ
CollectionUtility.searchMap | msg = ZZZZZ List [0] является классом com.process.im.profile.impl.Profile, toString () = com.process.im.profile.impl.Profile mId = 4, mLongName = ccounting ZZZZZ
Ниже приведен Java-код , который выдает ошибку
public static Object[] searchMap(Map m, Object[] keys, Object[] a)
{
if (keys != null && a != null)
{
List<Object> l = new ArrayList<Object>(keys.length);
searchMap(m, keys, l, true, null);
try
{
a = l.toArray(a);
}
catch (ArrayStoreException eArrayStore)
{
Log.warning("CollectionUtility.searchMap", "ZZZZZ Caught ArrayStoreException ZZZZZ", 0);
if(l==null)
{
Log.warning("CollectionUtility.searchMap", "ZZZZZ Core CollectionUtility ZZZZZ null list.", 0);
}
else
{
for(int i=0; i<l.size(); i++)
{
Object bug = l.get(i);
if(bug==null)
{
Log.warning("CollectionUtility.searchMap", "ZZZZZ List[" + i + "] is null ZZZZZ", 0);
}
else
{
if (a!=null && !a.getClass().getName().equals(bug.getClass().getName()))
{
Log.warning("CollectionUtility.searchMap", "ZZZZZ Unable to add list item to Array of type " + a.getClass().getName() + " ZZZZZ", 0);
Log.warning("CollectionUtility.searchMap", "ZZZZZ List[" + i + "] is class " + bug.getClass().getName() + ", toString()=" + bug.toString() + " ZZZZZ", 0);
}
}
}
}
throw eArrayStore;
}
}
return a;
}
Я знаю, что, возможно, упускаю что-то простое, но я не уверен, что проверить дальше.Если у кого-то из вас есть идеи, пожалуйста, дайте мне знать.Любая помощь очень ценится.Спасибо!