Конечно, MailItem.EntryID
- это шестнадцатеричное представление идентификатора двоичной записи, хранящегося в свойстве PR_ENTRYID
MAPI.
Я не совсем слежу за вашим описанием потока программы, но обычно, когда вы получаете ClassCastExceptions, вы не можете объяснить, что вы загрузили класс одним загрузчиком классов, а затем пытаетесь привести его к тому же классу, загруженному с помощью другой загрузчик классов. Это не будет работать - они представлены двумя различными объектами Class внутри JVM, и приведение не будет выполнено.
Существует статья о загрузке классов в WebSphere . Я не могу сказать, как это относится к вашему приложению, но есть ряд возможных решений. Я могу думать по крайней мере:
Изменить загрузчик класса контекста вручную. Требует, чтобы вы действительно могли получить ссылку на соответствующий загрузчик классов, что может быть невозможно в вашем случае.
Thread.currentThread (). SetContextClassLoader (...);
Убедитесь, что класс загружен загрузчиком классов выше в иерархии.
Сериализация и десериализация объекта. (Тьфу!)
Хотя, вероятно, есть более подходящий способ для вашей конкретной ситуации.
Объекты классов были загружены в разные загрузчики классов, поэтому экземпляры, созданные в каждом из классов, являются рассматривается как «несовместимый». Это распространенная проблема в среде, где используется много разных загрузчиков классов и объекты передаются. Эти проблемы могут легко возникнуть в среде Java EE и портала.