2014-01-14 34 views
3

我使用weld se 2.0和其他簡單的依賴關係構建了一個應用程序。 在我的開發環境(日食)這工作正常,沒有錯誤,但......在生產中的應用程序崩潰完全和焊接的實習生依賴的一部分拋出「曖昧的依賴關係」的錯誤:Weld在生產中只有錯誤的依賴關係錯誤

Exception 0 : 
org.jboss.weld.exceptions.AmbiguousResolutionException: WELD-001318 Cannot resolve an ambiguous  dependency between: 
    - Implicit Bean [javax.enterprise.inject.spi.InjectionPoint] with qualifiers [@Default], 
    - Managed Bean [class org.jboss.weld.injection.EmptyInjectionPoint] with qualifiers [@Any @Default], 
    - Managed Bean [class org.jboss.weld.manager.BeanManagerImpl$InstanceInjectionPoint] with qualifiers [@Any @Default] 
     at org.jboss.weld.manager.BeanManagerImpl.resolve(BeanManagerImpl.java:1176) 
     at org.jboss.weld.bootstrap.Validator.validatePseudoScopedInjectionPoint(Validator.java:929) 
     at org.jboss.weld.bootstrap.Validator.reallyValidatePseudoScopedBean(Validator.java:902) 
     at org.jboss.weld.bootstrap.Validator.validatePseudoScopedInjectionPoint(Validator.java:935) 
     at org.jboss.weld.bootstrap.Validator.reallyValidatePseudoScopedBean(Validator.java:902) 
     at org.jboss.weld.bootstrap.Validator.validatePseudoScopedBean(Validator.java:879) 
     at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:192) 
     at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:209) 
     at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:521) 
     at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:71) 
     at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:69) 
     at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:60) 
     at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:53) 
     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
     at java.lang.Thread.run(Thread.java:724) 

... 。

Exception 0 : 
org.jboss.weld.exceptions.DeploymentException: WELD-001409 Ambiguous dependencies for type [Instance<Object>] 
with qualifiers [@Any] at injection point [[BackedAnnotatedField] @Inject @Any  org.jboss.weld.environment.se.beans.InstanceManager.instances]. 
Possible dependencies: 
    - Managed Bean [class org.jboss.weld.Weld] with qualifiers [@Any @Default], 
    - Implicit Bean [javax.enterprise.inject.Instance] with qualifiers [@Default], 
    - Managed Bean [class org.jboss.weld.servlet.StaticWeldProvider$EnhancedWeld] with qualifiers [@Any @Default] 
     at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:408) 
     at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:327) 
     at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:178) 
     at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:209) 
     at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:521) 
     at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:71) 
     at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:69) 
     at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:60) 
     at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:53) 
     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
     at java.lang.Thread.run(Thread.java:724) 

....

Exception 0 : 
org.jboss.weld.exceptions.DeploymentException: WELD-001409 Ambiguous dependencies for type [List<String>] with qualifiers [@Parameters] at injection point [[BackedAnnotatedParameter] Parameter 1 of [BackedAnnotatedMethod] @Produces @GlobalProperties @ApplicationScoped public br.com.aptalaser.mensageria.factory.PropertiesConfigurationBuilder.getProperties(@Parameters List<String>)]. 
Possible dependencies: 
    - Producer Method [List<String>] with qualifiers [@Parameters @Any] declared as [[BackedAnnotatedMethod] @Produces @Parameters public org.jboss.weld.environment.se.beans.ParametersFactory.getArgs()], 
    - Producer Method [List<String>] with qualifiers [@Parameters @Any] declared as [[UnbackedAnnotatedMethod] @Produces @Parameters public org.jboss.weld.environment.se.beans.ParametersFactory.getArgs()] 
     at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:408) 
     at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:327) 
     at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:178) 
     at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:209) 
     at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:521) 
     at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:71) 
     at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:69) 
     at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:60) 
     at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:53) 
     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
     at java.lang.Thread.run(Thread.java:724) 

我使用JDK 1.7和焊接-SE 2.0。

的pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 

<modelVersion>4.0.0</modelVersion> 
<groupId>apta</groupId> 
<artifactId>mensageria</artifactId> 
<version>0.0.1-SNAPSHOT</version> 

<properties> 
    <maven.compiler.source>1.7</maven.compiler.source> 
    <maven.compiler.target>1.7</maven.compiler.target> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.10</version> 
     <scope>test</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.mockito</groupId> 
     <artifactId>mockito-all</artifactId> 
     <version>1.9.5</version> 
     <scope>test</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.jboss.arquillian</groupId> 
     <artifactId>arquillian-bom</artifactId> 
     <version>1.1.1.Final</version> 
     <scope>provided</scope> 
     <type>pom</type> 
    </dependency> 

    <dependency> 
     <groupId>org.jboss.arquillian.junit</groupId> 
     <artifactId>arquillian-junit-container</artifactId> 
     <version>1.0.2.Final</version> 
     <scope>test</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.jboss.arquillian.container</groupId> 
     <artifactId>arquillian-weld-se-embedded-1.1</artifactId> 
     <version>1.0.0.CR7</version> 
     <scope>test</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.mybatis</groupId> 
     <artifactId>mybatis</artifactId> 
     <version>3.2.3</version> 
    </dependency> 

    <dependency> 
     <groupId>org.hsqldb</groupId> 
     <artifactId>hsqldb</artifactId> 
     <version>2.2.9</version> 
     <scope>test</scope> 
    </dependency> 

    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.22</version> 
    </dependency> 

    <dependency> 
     <groupId>aopalliance</groupId> 
     <artifactId>aopalliance</artifactId> 
     <version>1.0</version> 
    </dependency> 

    <dependency> 
     <groupId>com.mchange</groupId> 
     <artifactId>c3p0</artifactId> 
     <version>0.9.5-pre1</version> 
    </dependency> 

    <dependency> 
     <groupId>joda-time</groupId> 
     <artifactId>joda-time</artifactId> 
     <version>2.2</version> 
    </dependency> 

    <dependency> 
     <groupId>org.jboss.weld.se</groupId> 
     <artifactId>weld-se-core</artifactId> 
     <version>2.0.3.Final</version> 
    </dependency> 

    <dependency> 
     <groupId>org.javassist</groupId> 
     <artifactId>javassist</artifactId> 
     <version>3.14.0-GA</version> 
    </dependency> 

    <dependency> 
     <groupId>org.json</groupId> 
     <artifactId>json</artifactId> 
     <version>20090211</version> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-api</artifactId> 
     <version>2.0-beta4</version> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-core</artifactId> 
     <version>2.0-beta4</version> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-slf4j-impl</artifactId> 
     <version>2.0-beta8</version> 
    </dependency> 

    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-validator</artifactId> 
     <version>5.0.1.Final</version> 
    </dependency> 
</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-jar-plugin</artifactId> 
      <configuration> 
       <archive> 
        <manifest> 
         <mainClass>org.jboss.weld.environment.se.StartMain</mainClass> 
        </manifest> 
       </archive> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-shade-plugin</artifactId> 
      <version>1.4</version> 
      <executions> 
       <execution> 
        <phase>package</phase> 
        <goals> 
         <goal>shade</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.16</version> 
      <configuration> 
       <skipTests>true</skipTests> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

什麼可以原因?我的應用程序在eclipse中工作正常,我的依賴關係配置不當或者我的構建過程錯誤?我能做些什麼來避免這種異常?

親切問候塞繆爾。

回答

1

很好,這是我不得不承認它關注的問題,解決方案是把它放到你的beans.xml文件:

<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd" 
    version="1.1" bean-discovery-mode="all"> 
    <scan> 
     <exclude name="org.jboss.weld.**" /> 
    </scan> 
</beans> 

在後續:http://weld.cdi-spec.org/documentation

對不起你們。