Hi!
I'm currently migrating an application from glassfish to TomEE. During the
deployment however i get this error message and the deployment fails:
CDI Beans module deployment failed
org.apache.webbeans.exception.inject.DeploymentException:
org.apache.webbeans.exception.WebBeansConfigurationException: Producer
annotated method : Annotated Method 'produceBookingRequestBuilder', Base Type :
class de.itso.mdbp.service.BookingRequestBuilder,Type Closures :
null,Annotations : [@javax.inject.Inject(),
@de.itso.mdbp.web.qualifier.BookingRequestBuilderInConversation(),
@javax.enterprise.context.ConversationScoped(),
@javax.enterprise.inject.Produces()],Java Member Name :
produceBookingRequestBuilder,Annotated Parameters : [Annotated Parameter,Base
Type : interface javax.enterprise.context.Conversation,Type Closures :
null,Annotations : [],Position : 0] can not be annotated with
@Initializer/@Destructor annotation or has a parameter annotated with
@Disposes/@Observes
at org.apache.webbeans.config.BeansDeployer.deploy(BeansDeployer.java:226)
at
org.apache.openejb.cdi.OpenEJBLifecycle.startApplication(OpenEJBLifecycle.java:187)
at
org.apache.openejb.cdi.ThreadSingletonServiceImpl.initialize(ThreadSingletonServiceImpl.java:162)
at org.apache.openejb.cdi.CdiBuilder.build(CdiBuilder.java:43)
at
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:799)
at
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:612)
at
org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1205)
at
org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1051)
at
org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:127)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5322)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:983)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1660)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
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:744)
The producer looks like this:
@Produces
@ConversationScoped
@BookingRequestBuilderInConversation
@Inject
public static final BookingRequestBuilder
produceBookingRequestBuilder(Conversation conversation)
{
if (conversation.isTransient())
{
conversation.begin();
}
BookingRequestBuilder brb = null;
try
{
brb = (BookingRequestBuilder) LookupUtil.lookup("BookingRequestBuilder");
}
catch (NamingException e)
{
Logger.getLogger(UserDetailsProducer.class).error("Cannot obtain a handle to
the BookingRequestBuilder!", e);
return null;
}
return brb;
}
And the additional qualifier looks like this:
@Qualifier
@Target({ TYPE, METHOD, PARAMETER, FIELD })
@Retention(RUNTIME)
@Documented
public @interface BookingRequestBuilderInConversation
{
}
Now I can't find the issue here, what's wrong with that? It did deploy to
glassfish all right (i think glassfish uses weld?). Can anybody help me here?
Thanks in advance!
René