WebSphere имеет иерархию загрузчиков классов, родительские загрузчики классов не могут видеть дочерние загрузчики классов, поэтому вы получаете сюрпризы, когда размещаете различные аспекты вашего приложения в разных местах.
Никогда не пытайтесь поместить файлы приложения в собственный каталог lib в WebSphere и никогда не изменяйте собственный путь к классам в WebSphere. Существует определенный способ сделать видимыми внешние банки, я объясню это чуть позже.
Есть три места, в которые вы можете поместить файлы JAR, чтобы они были загружены. Безусловно, лучшее - это просто разместить файлы JAR в WEB-INF / lib. Вы можете указать предпочтение порядка поиска PARENT LAST, чтобы они имели приоритет над банками, предоставляемыми веб-сферой, но учтите, что некоторые фундаментальные банки не могут быть переопределены. Например, вы не можете заменить защиту IBM.
Во-вторых, вы можете добавить банки в корень файла EAR. Нет, теперь в игру вступает иерархия, банки WEB-INF / lib могут видеть баночки EAR, но банки EAR не могут видеть банки WEB-INF / lib.
Наконец, вы можете указать WebSphere "Shared Libarary". См. Информационный центр, чтобы узнать, как это легко сделать через консоль. В общей библиотеке есть путь к классам, к которому вы добавляете jar-файлы. Затем вы распределяете общую библиотеку отдельным приложениям или целым серверам.
Еще раз, вы WEB-приложение можете видеть общую библиотеку, но я не верю, что разговор правдив. Следовательно, размещение фреймворк-кода в библиотеке может не работать.