I have an existing Java EE 7 webprofile web application working on TomEE and Glassfish. I have now tried to deploy it on Resin 4.0.55 Open Source edition. My mechanism to have CDI inject configuration strings using @Named("key") String fails with:
/home/tra/Hentet/resin-4.0.55/conf/app-default.xml:55: @Named('dpa') is
a duplicate name for
ProducesMethodBean[String, IngesterModule.provideDestinationPath(), {@javax.inject.Named(value=dpa.putfile.destinationpath), @Default(), @Any()}, name=dpa.putfile.destinationpath]
ProducesMethodBean[String, IngesterModule.provideDeliveriesFolder(), {@javax.inject.Named(value=dpa.deliveries.folder), @Default(), @Any()}, name=dpa.deliveries.folder]
There is no @Named("dpa") in my source, but the names listed in the error message have keys starting with dpa.
What does this mean? What is the cause? and how do I fix it?
The message "
@Named('{0}') is a duplicate name for\n {1}\n {2}" is found inside theInjectManager.javaclass file.Relevant source code:
The given name is splitted using the period character (
'.') as separator, and the given bean is added to the context for each part recursively. This behaviour must be described in the CDI 1.0 (JSR-299) or maybe the implementation is buggy.The
ioc/0g31comment looks like a reference to an issue, but I couldn't find it in the bug tracking system.