tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Emmanuel Touzery <emmanuel.touz...@lecip-its.com>
Subject org.apache.webbeans.component.ProducerMethodBean is not applicable for the bean instance : String
Date Wed, 18 May 2016 11:42:45 GMT
Hello,

     I'm porting a Glassfish application to TomEE and I don't understand 
this error that I'm getting:

org.apache.openejb.core.transaction.EjbTransactionUtil handleSystemException
SEVERE: EjbTransactionUtil.handleSystemException: Given bean type : 
class org.apache.webbeans.component.ProducerMethodBean is not applicable 
for the bean instance : String, Name:loggedInAppUserUsername, WebBeans 
Type:PRODUCERMETHOD, API 
Types:[java.lang.Comparable<String>,java.lang.Object,java.lang.CharSequence,java.lang.String,java.io.Serializable],

Qualifiers:[javax.enterprise.inject.Default,javax.enterprise.inject.Any,javax.inject.Named]
java.lang.IllegalArgumentException: Given bean type : class 
org.apache.webbeans.component.ProducerMethodBean is not applicable for 
the bean instance : String, Name:loggedInAppUserUsername, WebBeans 
Type:PRODUCERMETHOD, API 
Types:[java.lang.Comparable<String>,java.lang.Object,java.lang.CharSequence,java.lang.String,java.io.Serializable],

Qualifiers:[javax.enterprise.inject.Default,javax.enterprise.inject.Any,javax.inject.Named]
     at 
org.apache.webbeans.container.BeanManagerImpl.getReference(BeanManagerImpl.java:703)
     at 
com.lecip.tms.tms_core.application.BeanHelper.getBeanByName(BeanHelper.java:40)

I'm having this pretty trivial bean:


public class AppUserUsernameProvider {

     public static final String LOGGED_IN_USERNAME = 
"loggedInAppUserUsername";
     @Inject
     CurrentAppUserContext mAppUserContext;

     @Produces
     //this bean will be looked up by this id
     @Named(LOGGED_IN_USERNAME)
     public String getUsername() {
         return mAppUserContext.getUsername();
     }
}

And then I'm trying to use it like that:

         String username = 
BeanHelper.getBeanByName(AppUserUsernameProvider.LOGGED_IN_USERNAME, 
String.class);

And it fails on the getBeanByName() call with the stack I pasted. Not 
sure what's going on?

Thank you!

Emmanuel


Mime
View raw message