Это похоже на проблему иерархии загрузчиков классов, в которой классы, загружаемые загрузчиком классов приложения (EAR), пытаются загрузить классы, упакованные в загрузчик веб-модуля (WAR). Я полагаю, что метод resolClass () ObjectInputStream использует загрузчик классов своего вызывающего для неудачной загрузки классов, и я также предполагаю, что ваши классы Spring входят в класс общей библиотеки.
В Java Приложение EE, EAR и WAR имеют отдельные загрузчики классов, причем родительский загрузчик выполняет EAR. Когда общая библиотека связана с приложением в WebSphere, ее содержимое добавляется в путь классов загрузчика EAR. Это проблема, если классы в общей библиотеке нуждаются в видимости для классов, упакованных в WAR, потому что родительские загрузчики не могут «видеть» своих потомков. WebSphere позволяет связывать разделяемую библиотеку либо с приложением, либо с одним или несколькими веб-модулями в приложении, и это меняет, к какому загрузчику классов добавляется путь к классу библиотеки.
Предполагается, что я понимаю упаковку и поведение resolClass правильно, я думаю, что решение должно быть довольно простым - вместо того, чтобы связывать разделяемую библиотеку с приложением, вместо этого свяжите ее с веб-модулем, который содержит класс, который не найден (обратите внимание, что вам нужно удалите также ассоциацию уровня EAR, иначе она просто загрузит классы Spring оттуда и возникнет та же проблема). Это позволит получить пути WAR и пути к общей библиотеке в одном загрузчике классов, что устраняет проблему иерархии.
Обратите внимание, что даже если мои предположения верны, это решение не будет работать, если вы выбрали «использовать Параметр «Изолированный загрузчик классов» для общей библиотеки - этот параметр создает отдельный загрузчик классов, который действует как своего рода родительский элемент для WAR / EAR, с которым он связан, поэтому он все равно не сможет видеть классы в WAR, даже если это связано с войной соответственно. Если есть jar-файлы, требующие поведения изолированной загрузки классов, вам придется либо переместить классы WAR в разделяемую библиотеку, либо вернуть Spring в WAR.