[weld-dev] potential weld jira

Martin Kouba mkouba at redhat.com
Wed Nov 18 10:51:50 EST 2015


Well, it seems the problem is that CounterProducerModified is 
specialized by AlternativeCounterProducerModified and so it's not 
enabled and therefore it's producer method is also disabled (see also 
5.1.2. Enabled and disabled beans [1]), i.e. it's not available for 
injection in beans-xml-modified2.jar. And 
AlternativeCounterProducerModified is an alternative which is not 
selected for beans-xml-modified2.jar.

It should work if you enable AlternativeCounterProducerModified globally 
or select AlternativeCounterProducerModified for beans-xml-modified2.jar.

Martin

[1]
http://docs.jboss.org/cdi/spec/1.2/cdi-spec.html#enablement

Dne 18.11.2015 v 16:14 Emily Jiang napsal(a):
> Hi Martin,
>
> Here's a simplified form of the test case:
>
>
> The application does not start, reporting
>
> [ERROR   ] CWWKZ0004E: An exception occurred while starting the
> application testDiffBDA. The exception message was:
> com.ibm.ws.container.service.state.StateChangeException:
> org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied
> dependencies for type String with qualifiers @CounterModifiedQualifier
>    at injection point [BackedAnnotatedField] @Inject
> @CounterModifiedQualifier
> com.ibm.jcdi.test.beansxml.CounterProducerConsumerModified2.modifiedProducer
>    at
> com.ibm.jcdi.test.beansxml.CounterProducerConsumerModified2.modifiedProducer(CounterProducerConsumerModified2.java:0)
>
> There are five classes in the .war.
>
> testDiffBDA.war/WEB-INF/classes/test/diff/web/FrontEndServlet.class
>
> @Inject CounterProducerConsumerModified2 bean;
>
> This class, CounterProducerConsumerModified2.class is packaged in the
> first of two WEB-INF/lib jars, at
> testDiffBDA.war/WEB-INF/lib/beans-xml-modified2.jar.jar/com/ibm/jcdi/test/beans/xml.
> There is a bean that needs another bean injected into it:
>
> @Inject at CounterModifiedQualifierString modifiedProducer;
>
> The remaining three classes are all in the second WEB-INF/lib jar, at
> testDiffBDA.war/WEB-INF/lib/beans-xml-modified.jar.jar/com/ibm/jcdi/test/beansxml/.
> The classes are
>
> CounterModifiedQualifier  (the interface)
> CounterProducerModified (the bean implementing that interface)
> AlternativeCounterProducerModified (an alternative bean)
>
> The AlternativeCounterProducerModified class is declared in
> testDiffBDA.war/WEB-INF/lib/beans-xml-modified.jar.jar/META-INF/beans.xml,
>
> <alternatives>
> <class>com.ibm.jcdi.test.beansxml.AlternativeCounterProducerModified</class>
> </alternatives>
>
> The test app starts correctly if the <alternative> stanza is commented out.
>
>
> Many thanks,
> Emily
> ===========================
> Emily Jiang
> WebSphere Application Server, CDI Development Lead
>
> MP 211, DE3A20, Winchester, Hampshire, England, SO21 2JN
> Phone:  +44 (0)1962 816278  Internal: 246278
>
> Email: emijiang at uk.ibm.com
> Lotus Notes: Emily Jiang/UK/IBM at IBMGB
>
>
>
>
> From: Martin Kouba <mkouba at redhat.com>
> To: Emily Jiang/UK/IBM at IBMGB, Weld <weld-dev at lists.jboss.org>,
> Date: 18/11/2015 07:58
> Subject: Re: potential weld jira
> ------------------------------------------------------------------------
>
>
>
> Hi Emily,
>
> a brief description would be helpful - it's not a trivial
> deployment/reproducer.
>
> Martin
>
> Dne 16.11.2015 v 23:15 Emily Jiang napsal(a):
>  > I'm trying to deploy the attached war but got Weld alidation error. On
>  > Glassfish 4.1, I got this error:
>  > Error occurred during deployment: Exception while loading the app : CDI
>  > deployment failure:WELD-001408: Unsatisfied dependencies for type String
>  > with qualifiers @DiffBDACounterQualifier at injection point
>  > [BackedAnnotatedField] @Inject @DiffBDACounterQualifier
>  >
> com.ibm.jcdi.test.beansxml.CounterProducerConsumerModified.diffBDAProducer
>  > at
>  >
> com.ibm.jcdi.test.beansxml.CounterProducerConsumerModified.diffBDAProducer(CounterProducerConsumerModified.java:0)
>  > WELD-001475: The following beans match by type, but none have matching
>  > qualifiers: - Producer Method [String] with qualifiers
>  > [@CounterUnmodifiedQualifier @Any] declared as [[BackedAnnotatedMethod]
>  > @ExcludeClassInterceptors @Produces @CounterUnmodifiedQualifier
>  >
> com.ibm.jcdi.test.beansxml.CounterProducerNoModifiers.getCounterBeanProducer()],
>  > - Producer Method [String] with qualifiers [@BatchProperty @Any]
>  > declared as [[UnbackedAnnotatedMethod] @Produces @Dependent
>  > @BatchProperty public com.ibm.jbatch.container.cdi.BatchProducerBean.p
>  > .... msg.seeServerLog
>  >
>  >
>  >
>  >
>  >
>  > The app works fine on OpenWebBeans. Any ideas on what was wrong?
>  >
>  > Many thanks,
>  > Emily
>  > ===========================
>  > Emily Jiang
>  > WebSphere Application Server, CDI Development Lead
>  >
>  > MP 211, DE3A20, Winchester, Hampshire, England, SO21 2JN
>  > Phone:  +44 (0)1962 816278  Internal: 246278
>  >
>  > Email: emijiang at uk.ibm.com
>  > Lotus Notes: Emily Jiang/UK/IBM at IBMGB
>  >
>
> --
> Martin Kouba
> Software Engineer
> Red Hat, Czech Republic
>
>
>

-- 
Martin Kouba
Software Engineer
Red Hat, Czech Republic


More information about the weld-dev mailing list