2016-06-25 6 views
1

Мой проект работал хорошо вчера. Единственное, что я сделал, это изменить структуру от одной войны до мультимодульного пом. Если я правильно понимаю, что в стеке есть двусмысленность между сваркой и всенаправлением websocket lib. Однако, похоже, нет никакого вызова ни одному из моих методов в stacktrace. Так что, может быть, это проблема со всеми? Я даже не использую веб-узлы smnifaces, я использую javax.websocket. Тем не менее, я пробовал это в прошлом в этом проекте, и я выполнил поиск по «org.omnifaces.cdi» и закомментировал вещи из подпакетов, таких как @Param, но проблема остается. Кроме того, я не понимаю, почему ambiguousity, кажется, от 2 точно такого же классов:org.jboss.weld.exceptions.DeploymentException: WELD-001409: Неоднозначные зависимости для типа Bean с квалификаторами @Default

  • Managed Bean [класс org.omnifaces.cdi.push.SocketSessionManager] с классификаторами [@Any @default] ,
  • Managed Bean [класс org.omnifaces.cdi.push.SocketSessionManager] с классификаторов [@Any @default]
[2016-06-25 03:13:59,430] Artifact core:war: java.lang.Exception: {"WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"core-0.0.1-SNAPSHOT.war\".WeldStartService" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"core-0.0.1-SNAPSHOT.war\".WeldStartService: Failed to start service 
    Caused by: org.jboss.weld.exceptions.DeploymentException: Exception List with 4 exceptions: 
Exception 0 : 
org.jboss.weld.exceptions.DeploymentException: WELD-001409: Ambiguous dependencies for type SocketSessionManager with qualifiers @Default 
    at injection point [BackedAnnotatedField] @Inject private org.omnifaces.cdi.push.SocketPushContextProducer.socketSessions 
    at org.omnifaces.cdi.push.SocketPushContextProducer.socketSessions(SocketPushContextProducer.java:0) 
    Possible dependencies: 
    - Managed Bean [class org.omnifaces.cdi.push.SocketSessionManager] with qualifiers [@Any @Default], 
    - Managed Bean [class org.omnifaces.cdi.push.SocketSessionManager] with qualifiers [@Any @Default] 

    at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:367) 
    at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:281) 
    at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:134) 
    at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:155) 
    at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:518) 
    at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:68) 
    at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:66) 
    at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:63) 
    at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:56) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
    at org.jboss.threads.JBossThread.run(JBossThread.java:320) 
Exception 0 : 
org.jboss.weld.exceptions.DeploymentException: WELD-001409: Ambiguous dependencies for type SocketSessionManager with qualifiers @Default 
    at injection point [BackedAnnotatedField] @Inject private org.omnifaces.cdi.push.SocketChannelManager.socketSessions 
    at org.omnifaces.cdi.push.SocketChannelManager.socketSessions(SocketChannelManager.java:0) 
    Possible dependencies: 
    - Managed Bean [class org.omnifaces.cdi.push.SocketSessionManager] with qualifiers [@Any @Default], 
    - Managed Bean [class org.omnifaces.cdi.push.SocketSessionManager] with qualifiers [@Any @Default] 

    at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:367) 
    at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:281) 
    at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:134) 
    at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:155) 
    at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:518) 
    at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:68) 
    at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:66) 
    at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:63) 
    at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:56) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
    at org.jboss.threads.JBossThread.run(JBossThread.java:320) 
Exception 0 : 
org.jboss.weld.exceptions.DeploymentException: WELD-001409: Ambiguous dependencies for type SocketUserManager with qualifiers @Default 
    at injection point [BackedAnnotatedField] @Inject private org.omnifaces.cdi.push.SocketSessionManager.socketUsers 
    at org.omnifaces.cdi.push.SocketSessionManager.socketUsers(SocketSessionManager.java:0) 
    Possible dependencies: 
    - Managed Bean [class org.omnifaces.cdi.push.SocketUserManager] with qualifiers [@Any @Default], 
    - Managed Bean [class org.omnifaces.cdi.push.SocketUserManager] with qualifiers [@Any @Default] 

    at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:367) 
    at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:281) 
    at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:134) 
    at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:155) 
    at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:518) 
    at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:68) 
    at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:66) 
    at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:63) 
    at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:56) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
    at org.jboss.threads.JBossThread.run(JBossThread.java:320) 
Exception 0 : 
org.jboss.weld.exceptions.AmbiguousResolutionException: WELD-001318: Cannot resolve an ambiguous dependency between: 
    - Managed Bean [class org.omnifaces.cdi.push.SocketSessionManager] with qualifiers [@Any @Default], 
    - Managed Bean [class org.omnifaces.cdi.push.SocketSessionManager] with qualifiers [@Any @Default] 
    at org.jboss.weld.manager.BeanManagerImpl.resolve(BeanManagerImpl.java:1235) 
    at org.jboss.weld.bootstrap.Validator.validatePseudoScopedInjectionPoint(Validator.java:926) 
    at org.jboss.weld.bootstrap.Validator.reallyValidatePseudoScopedBean(Validator.java:902) 
    at org.jboss.weld.bootstrap.Validator.reallyValidatePseudoScopedBean(Validator.java:917) 
    at org.jboss.weld.bootstrap.Validator.validatePseudoScopedBean(Validator.java:879) 
    at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:138) 
    at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:155) 
    at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:518) 
    at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:68) 
    at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:66) 
    at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:63) 
    at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:56) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
    at org.jboss.threads.JBossThread.run(JBossThread.java:320) 
"}} 
+1

Путь к классам среды выполнения загрязнен несколькими библиотеками OmniFaces. При необходимости очистите его, также на стороне сервера. Чтобы быть уверенным, OmniFaces спроектирован как библиотека WAR, поэтому WAR/WEB-INF/lib - единственное правильное место, и он абсолютно не должен находиться в другом месте (например, EAR/lib или Server/lib), см. Также инструкции по установке на своем домашняя страница. – BalusC

+0

Спасибо @BalusC, я знал, что банка вместо зависимости от maven вернется, чтобы укусить меня :).Похоже, вы включили исправление в RC2, который находится в maven, поэтому мне больше не нужно беспокоиться об этом. – Ced

ответ

4

org.jboss.weld.exceptions.DeploymentException: WELD-001409: Неоднозначные зависимости для типа SocketSessionManager с отборочными @default в точке инъекции [BackedAnnotatedField] @Inject частные org.omnifaces.cdi.push.SocketPushContextProducer.socketSessions

В основном, Weld обнаружил несколько управляемых бинов CDI, которые могут быть введены в поле private SocketSessionManager socketSessions класса SocketPushContextProducer. Они перечислены в дальнейшем:

Возможные зависимости:

  • Managed Bean [класс org.omnifaces.cdi.push.SocketSessionManager] с классификаторов [@Any @default]
  • Managed Bean [класс орг .omnifaces.cdi.push.SocketSessionManager] с классификаторами [@Any @default]

в данном конкретном случае они, однако, точно так же. Это означает, что в пути к среде выполнения есть несколько классов SocketSessionManager. Это, в свою очередь, означает, что существует несколько библиотек/зависимостей OmniFaces, присутствующих в пути к классам времени выполнения (или вредоносное создание/(горячее) развертывание, которые могут быть решены путем перебора рабочих/временных папок сервера или создания нереализованного экземпляра сервера).

Вам нужно убедиться, что в пути к среде исполнения есть только одна библиотека OmniFaces, и она заканчивается в /WEB-INF/lib WAR.

Это не относится к веб-сайтам. Это был первый класс, связанный с OmniFaces, который проверяется Weld. Это может произойти на любом другом управляемом компоненте CDI, включенном в OmniFaces.

+0

У меня такая же проблема, но я не могу найти причину. Не могли бы вы помочь? Https: //stackoverflow.com/questions/46537209/weld-001409-ambiguous-dependencies-for-type-stepcontext-with-qualifiers-defaul – yathirigan