Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.LinkageError: loader constraint violation in interface itable initialization: when resolving method "org.omnifaces.taghandler.ValidateUniqueColumn.processValueChange(Ljavax/faces/event/ValueChangeEvent;)V" the class loader (instance of org/jboss/modules/ModuleClassLoader) of the current class, org/omnifaces/taghandler/ValidateUniqueColumn, and the class loader (instance of org/jboss/modules/ModuleClassLoader) for interface javax/faces/event/ValueChangeListener have different Class objects for the type (Ljavax/faces/event/ValueChangeEvent;)V used in the signature
You've multiple different versioned JSF API classes in webapp's runtime classpath. In this particular problem, specifically for the javax.faces.event.ValueChangeEvent
class multiple different versions have been found in the webapp's runtime classpath. In other words, the webapp's runtime classpath is dirty. Most likely you've JARs in webapp's /WEB-INF/lib
which do not belong there, because the appserver itself already ships those libraries out the box, such as Java EE and JSF.
Then there's another strange thing in your question. You're talking about IBM WebSphere and you've tagged [websphere]
, but the appserver specific classes listed in the stack trace clearly tells that it's JBoss WildFly, which is a completely different server, but perhaps explains why you added [jboss]
tag as well. Again, those are two completely different servers. Know what you're using.
In any case, explore the webapp's /WEB-INF/lib
and get rid of libraries which are already provided by the appserver itself, such as javaee.jar
, jsf-api.jar
, etc.