문제

I've been using omnifaces in my jsf 2.2 application without issues until I decided to migrate from tomee web profiler to jetty (9.0.7). It appears there's some annotation and CDI related issues that prevent Weld (2.1.2.Final) and Omnifaces (1.7) from fitting nicely, The only functionality I use from Omnifaces is to hide the extension from my URLs.

brief view of the project setup:

relevant POM dependencies:

        <!--OmniFaces-->
    <dependency>
        <groupId>org.omnifaces</groupId>
        <artifactId>omnifaces</artifactId>
        <version>1.7</version>
    </dependency>
 <!--Weld for cdi in jetty--> 
    <dependency>
        <groupId>org.jboss.weld.servlet</groupId>
        <artifactId>weld-servlet</artifactId>
        <version>${weld.version}</version>
        <scope>runtime</scope>
    </dependency>

in web.xml:

    <context-param>
    <param-name>org.omnifaces.FACES_VIEWS_SCAN_PATHS</param-name>
    <param-value>/*.xhtml</param-value>
</context-param>

everything weld related comes in override-web.xml (parsed after web.xml):

    <!--WELD-->
<listener>
    <listener-class>org.jboss.weld.environment.servlet.Listener</listener-class>
</listener>
<resource-env-ref>
    <resource-env-ref-name>BeanManager</resource-env-ref-name>
    <resource-env-ref-type>
        javax.enterprise.inject.spi.BeanManager
    </resource-env-ref-type>
</resource-env-ref>
   <!--weld complains if the following is not done manually :-S-->
<listener>
    <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>

I am trying to keep my application free of unnecessary xml configurations, and I've managed to do so until now, If I instruct weld to exclude the problematic classes in Omnifaces by putting the following in beans.xml:

     <scan>
     <exclude name="org.omnifaces" />
     <exclude name="org.omnifaces.cdi.param.RequestParameterProducer"/>
      <exclude name="org.omnifaces.validator.JsfLabelMessageInterpolator"/>
      <exclude name="org.omnifaces.util.Platform"/>
 </scan>

then everything runs fine, omnifaces does it's job, and removes the extensions from the url, and weld does not complain about anything, So my question is whether this is the only way to go for now, or is there a better way to solve this issue without polluting my beans.xml?

Heres a copy of the exception I get when doin mvn jetty:run :

 org.jboss.weld.resources.spi.ResourceLoadingException: Exception while loading class org.omnifaces.cdi.param.RequestParameterProducer
    at org.jboss.weld.resources.ClassTransformer.getBackedAnnotatedType(ClassTransformer.java:179) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.resources.ClassTransformer.getBackedAnnotatedType(ClassTransformer.java:194) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.bootstrap.BeanDeployer.loadAnnotatedType(BeanDeployer.java:119) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:96) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.bootstrap.ConcurrentBeanDeployer$1.doWork(ConcurrentBeanDeployer.java:62) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.bootstrap.ConcurrentBeanDeployer$1.doWork(ConcurrentBeanDeployer.java:60) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:60) [weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:53) [weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) [na:1.7.0_13]
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) [na:1.7.0_13]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_13]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_13]
    at java.lang.Thread.run(Thread.java:722) [na:1.7.0_13]
Caused by: java.lang.TypeNotPresentException: Type javax.validation.ConstraintViolation not present
    at sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:117) ~[na:1.7.0_13]
    at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:125) ~[na:1.7.0_13]
    at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49) ~[na:1.7.0_13]
    at sun.reflect.generics.visitor.Reifier.reifyTypeArguments(Reifier.java:68) ~[na:1.7.0_13]
    at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:138) ~[na:1.7.0_13]
    at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49) ~[na:1.7.0_13]
    at sun.reflect.generics.repository.MethodRepository.getReturnType(MethodRepository.java:68) ~[na:1.7.0_13]
    at java.lang.reflect.Method.getGenericReturnType(Method.java:244) ~[na:1.7.0_13]
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedMethod.<init>(BackedAnnotatedMethod.java:38) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedMethod.of(BackedAnnotatedMethod.java:32) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$BackedAnnotatedMethods.computeValue(BackedAnnotatedType.java:193) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$BackedAnnotatedMethods.computeValue(BackedAnnotatedType.java:186) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.util.LazyValueHolder.get(LazyValueHolder.java:35) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$EagerlyInitializedLazyValueHolder.<init>(BackedAnnotatedType.java:154) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$BackedAnnotatedMethods.<init>(BackedAnnotatedType.java:186) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$BackedAnnotatedMethods.<init>(BackedAnnotatedType.java:186) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType.<init>(BackedAnnotatedType.java:66) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType.of(BackedAnnotatedType.java:47) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.resources.ClassTransformer$TransformClassToBackedAnnotatedType.load(ClassTransformer.java:83) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.resources.ClassTransformer$TransformClassToBackedAnnotatedType.load(ClassTransformer.java:80) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3589) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2374) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2337) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2252) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at com.google.common.cache.LocalCache.get(LocalCache.java:3990) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3994) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4878) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.util.cache.LoadingCacheUtils.getCacheValue(LoadingCacheUtils.java:52) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.util.cache.LoadingCacheUtils.getCastCacheValue(LoadingCacheUtils.java:80) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.resources.ClassTransformer.getBackedAnnotatedType(ClassTransformer.java:175) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    ... 12 common frames omitted
Caused by: java.lang.ClassNotFoundException: javax.validation.ConstraintViolation
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) ~[na:1.7.0_13]
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) ~[na:1.7.0_13]
    at java.security.AccessController.doPrivileged(Native Method) ~[na:1.7.0_13]
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) ~[na:1.7.0_13]
    at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:420) ~[jetty-webapp-9.0.7.v20131107.jar:9.0.7.v20131107]
    at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:382) ~[jetty-webapp-9.0.7.v20131107.jar:9.0.7.v20131107]
    at java.lang.Class.forName0(Native Method) ~[na:1.7.0_13]
    at java.lang.Class.forName(Class.java:266) ~[na:1.7.0_13]
    at sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:114) ~[na:1.7.0_13]
    ... 41 common frames omitted
20:26:49.562 [weld-worker-1] INFO  org.jboss.weld.Bootstrap - WELD-000119: Not generating any bean definitions from org.omnifaces.validator.JsfLabelMessageInterpolator because of underlying class loading error: Type javax.validation.MessageInterpolator not found.  If this is unexpected, enable DEBUG logging to see the full error.
20:26:49.574 [weld-worker-1] DEBUG org.jboss.weld.Bootstrap - Catching
org.jboss.weld.resources.spi.ResourceLoadingException: Error loading class org.omnifaces.validator.JsfLabelMessageInterpolator
    at org.jboss.weld.resources.AbstractClassLoaderResourceLoader.classForName(AbstractClassLoaderResourceLoader.java:44) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.bootstrap.BeanDeployer.loadClass(BeanDeployer.java:106) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:94) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.bootstrap.ConcurrentBeanDeployer$1.doWork(ConcurrentBeanDeployer.java:62) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.bootstrap.ConcurrentBeanDeployer$1.doWork(ConcurrentBeanDeployer.java:60) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:60) [weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:53) [weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) [na:1.7.0_13]
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) [na:1.7.0_13]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_13]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_13]
    at java.lang.Thread.run(Thread.java:722) [na:1.7.0_13]
Caused by: java.lang.NoClassDefFoundError: javax/validation/MessageInterpolator
    at java.lang.ClassLoader.defineClass1(Native Method) ~[na:1.7.0_13]
    at java.lang.ClassLoader.defineClass(ClassLoader.java:791) ~[na:1.7.0_13]
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) ~[na:1.7.0_13]
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) ~[na:1.7.0_13]
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71) ~[na:1.7.0_13]
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361) ~[na:1.7.0_13]
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) ~[na:1.7.0_13]
    at java.security.AccessController.doPrivileged(Native Method) ~[na:1.7.0_13]
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) ~[na:1.7.0_13]
    at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:420) ~[jetty-webapp-9.0.7.v20131107.jar:9.0.7.v20131107]
    at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:382) ~[jetty-webapp-9.0.7.v20131107.jar:9.0.7.v20131107]
    at org.jboss.weld.resources.AbstractClassLoaderResourceLoader.classForName(AbstractClassLoaderResourceLoader.java:40) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    ... 11 common frames omitted
Caused by: java.lang.ClassNotFoundException: javax.validation.MessageInterpolator
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) ~[na:1.7.0_13]
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) ~[na:1.7.0_13]
    at java.security.AccessController.doPrivileged(Native Method) ~[na:1.7.0_13]
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) ~[na:1.7.0_13]
    at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:420) ~[jetty-webapp-9.0.7.v20131107.jar:9.0.7.v20131107]
    at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:382) ~[jetty-webapp-9.0.7.v20131107.jar:9.0.7.v20131107]
    ... 23 common frames omitted
20:26:49.769 [weld-worker-2] INFO  org.jboss.weld.Bootstrap - WELD-000119: Not generating any bean definitions from org.omnifaces.util.Platform because of underlying class loading error: Type javax.validation.ValidatorFactory not found.  If this is unexpected, enable DEBUG logging to see the full error.
20:26:49.780 [weld-worker-2] DEBUG org.jboss.weld.Bootstrap - Catching
org.jboss.weld.resources.spi.ResourceLoadingException: Error while loading class org.omnifaces.util.Platform
    at org.jboss.weld.resources.ClassTransformer.getBackedAnnotatedType(ClassTransformer.java:186) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.resources.ClassTransformer.getBackedAnnotatedType(ClassTransformer.java:194) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.bootstrap.BeanDeployer.loadAnnotatedType(BeanDeployer.java:119) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:96) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.bootstrap.ConcurrentBeanDeployer$1.doWork(ConcurrentBeanDeployer.java:62) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.bootstrap.ConcurrentBeanDeployer$1.doWork(ConcurrentBeanDeployer.java:60) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:60) [weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:53) [weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) [na:1.7.0_13]
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) [na:1.7.0_13]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_13]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_13]
    at java.lang.Thread.run(Thread.java:722) [na:1.7.0_13]
Caused by: java.lang.NoClassDefFoundError: javax/validation/ValidatorFactory
    at java.lang.Class.getDeclaredMethods0(Native Method) ~[na:1.7.0_13]
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2451) ~[na:1.7.0_13]
    at java.lang.Class.getDeclaredMethods(Class.java:1810) ~[na:1.7.0_13]
    at org.jboss.weld.security.GetDeclaredMethodsAction.run(GetDeclaredMethodsAction.java:30) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.security.GetDeclaredMethodsAction.run(GetDeclaredMethodsAction.java:22) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at java.security.AccessController.doPrivileged(Native Method) ~[na:1.7.0_13]
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$BackedAnnotatedMethods.computeValue(BackedAnnotatedType.java:192) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$BackedAnnotatedMethods.computeValue(BackedAnnotatedType.java:186) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.util.LazyValueHolder.get(LazyValueHolder.java:35) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$EagerlyInitializedLazyValueHolder.<init>(BackedAnnotatedType.java:154) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$BackedAnnotatedMethods.<init>(BackedAnnotatedType.java:186) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$BackedAnnotatedMethods.<init>(BackedAnnotatedType.java:186) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType.<init>(BackedAnnotatedType.java:66) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType.of(BackedAnnotatedType.java:47) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.resources.ClassTransformer$TransformClassToBackedAnnotatedType.load(ClassTransformer.java:83) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.resources.ClassTransformer$TransformClassToBackedAnnotatedType.load(ClassTransformer.java:80) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3589) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2374) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2337) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2252) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at com.google.common.cache.LocalCache.get(LocalCache.java:3990) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3994) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4878) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.util.cache.LoadingCacheUtils.getCacheValue(LoadingCacheUtils.java:52) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.util.cache.LoadingCacheUtils.getCastCacheValue(LoadingCacheUtils.java:80) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    at org.jboss.weld.resources.ClassTransformer.getBackedAnnotatedType(ClassTransformer.java:175) ~[weld-servlet-2.1.2.Final.jar:2014-01-09 09:23]
    ... 12 common frames omitted
    Caused by: java.lang.ClassNotFoundException: javax.validation.ValidatorFactory
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) ~[na:1.7.0_13]
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) ~[na:1.7.0_13]
    at java.security.AccessController.doPrivileged(Native Method) ~[na:1.7.0_13]
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) ~[na:1.7.0_13]
    at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:420)     ~[jetty-webapp-9.0.7.v20131107.jar:9.0.7.v20131107]
    at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:382)     ~[jetty-webapp-9.0.7.v20131107.jar:9.0.7.v20131107]
    ... 38 common frames omitted
도움이 되었습니까?

해결책

Caused by: java.lang.ClassNotFoundException: javax.validation.ConstraintViolation
Caused by: java.lang.ClassNotFoundException: javax.validation.MessageInterpolator
Caused by: java.lang.ClassNotFoundException: javax.validation.ValidatorFactory

Those problems are caused because JSR303 Bean Validation API is absent in your runtime classpath, while those OmniFaces CDI beans expect it to be present. This is indeed an unclarity in the OmniFaces dependency documentation. This will be worked on.

Apart from explicitly excluding those classes from being scanned as CDI managed beans as you rightfully did, you could also consider to actually install the JSR303 API and if necessary a JSR303 implementation along with your CDI API/impl in Jetty. This answer on how to install CDI in Tomcat applies to your Jetty case as well.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top