Недавно мы перешли с WAS6 на WAS7. Одно из наших приложений, которое отлично работало в WAS6, не работает в WAS7 со следующей ошибкой.
java.lang.NoSuchMethodError: com/sun/faces/util/Util.verifyFactoriesAndInitDefaultRenderKit(Ljavax/servlet/ServletContext;)V
at com.ibm.faces.context.MultipartFacesContextFactoryImpl.getFacesContext(MultipartFacesContextFactoryImpl.java:73)
Кусок кода, который дает эту ошибку,
FacesContextFactory contextFactory = (FacesContextFactory)
FactoryFinder.getFactory(FactoryFinder.FACES_CONTEXT_FACTORY);
facesContext = contextFactory.getFacesContext(
request.getSession().getServletContext(), request, response, lifecycle);
Нашел эту информацию во время отладки приложения в WAS6 и WAS7 contextfactory: com.ibm.faces.context.MultipartFacesContextFactoryImpl - JSF-IBM.jar - WAS7 contextfactory: com.icesoft.faces.context.FacesContextFactoryImpl - icefaces.jar - WAS6
Я пробовал некоторые предложения, такие как создание общей библиотеки и связывание ее с EAR и изменение схем загрузчика классов с «Родительский последний» на «Родительский первый».
Но что бы я ни делал, в WAS7 я получаю MultipartFacesContextFactoryImpl как значение contextFactory.
Я попытался заменить 1.7.2 на 1.8 версию icefaces.jar и icefaces-comps.jar. Но все тот же результат.
Пожалуйста помоги. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.