Invocation of @Oneway service breaks Weld injection
---------------------------------------------------
Key: JBAS-8917
URL:
https://issues.jboss.org/browse/JBAS-8917
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public (Everyone can see)
Affects Versions: 6.0.0.Final
Reporter: gressho
Calling a webservice operation which is annotated as @Oneway results in the following
exception:
2011-03-02 16:15:46,134 ERROR
[org.jboss.webservices.integration.weld.WeldInvocationHandler] (default-workqueue-1)
Method invocation failed with exception: Unable to locate BeanManager:
java.lang.IllegalStateException: Unable to locate BeanManager
at
org.jboss.webservices.integration.weld.WeldInvocationHandler.handleWeldInjection(WeldInvocationHandler.java:84)
[:6.0.0.Final]
at
org.jboss.webservices.integration.weld.WeldInvocationHandler.onEndpointInstantiated(WeldInvocationHandler.java:56)
[:6.0.0.Final]
at
org.jboss.wsf.common.invocation.AbstractInvocationHandlerJSE.init(AbstractInvocationHandlerJSE.java:59)
[:1.4.1.GA]
at
org.jboss.wsf.common.invocation.AbstractInvocationHandlerJSE.invoke(AbstractInvocationHandlerJSE.java:91)
[:1.4.1.GA]
at
org.jboss.wsf.stack.cxf.AbstractInvoker._invokeInternal(AbstractInvoker.java:164)
[:3.4.1.GA]
at org.jboss.wsf.stack.cxf.AbstractInvoker.invoke(AbstractInvoker.java:112)
[:3.4.1.GA]
at
org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)
[:2.3.1]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
[:1.6.0_15]
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) [:1.6.0_15]
at java.util.concurrent.FutureTask.run(FutureTask.java:138) [:1.6.0_15]
at
org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
[:2.3.1]
at
org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106)
[:2.3.1]
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255)
[:2.3.1]
at
org.apache.cxf.phase.PhaseInterceptorChain.resume(PhaseInterceptorChain.java:224)
[:2.3.1]
at
org.apache.cxf.interceptor.OneWayProcessorInterceptor$1.run(OneWayProcessorInterceptor.java:105)
[:2.3.1]
at
org.apache.cxf.workqueue.AutomaticWorkQueueImpl$2.run(AutomaticWorkQueueImpl.java:253)
[:2.3.1]
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
[:1.6.0_15]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
[:1.6.0_15]
at java.lang.Thread.run(Thread.java:619) [:1.6.0_15]
2011-03-02 16:15:46,167 WARN [org.apache.cxf.phase.PhaseInterceptorChain]
(default-workqueue-1) Application
{http://vocabulary.maws2.ulb.wwu.de/}VocabulariesService#{http://vocabulary.maws2.ulb.wwu.de/}Initialise
has thrown exception, unwinding now: org.apache.cxf.interceptor.Fault: Unable to locate
BeanManager
at org.jboss.wsf.stack.cxf.AbstractInvoker.createFault(AbstractInvoker.java:229)
[:3.4.1.GA]
at
org.jboss.wsf.stack.cxf.AbstractInvoker._invokeInternal(AbstractInvoker.java:190)
[:3.4.1.GA]
at org.jboss.wsf.stack.cxf.AbstractInvoker.invoke(AbstractInvoker.java:112)
[:3.4.1.GA]
at
org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)
[:2.3.1]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
[:1.6.0_15]
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) [:1.6.0_15]
at java.util.concurrent.FutureTask.run(FutureTask.java:138) [:1.6.0_15]
at
org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
[:2.3.1]
at
org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106)
[:2.3.1]
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255)
[:2.3.1]
at
org.apache.cxf.phase.PhaseInterceptorChain.resume(PhaseInterceptorChain.java:224)
[:2.3.1]
at
org.apache.cxf.interceptor.OneWayProcessorInterceptor$1.run(OneWayProcessorInterceptor.java:105)
[:2.3.1]
at
org.apache.cxf.workqueue.AutomaticWorkQueueImpl$2.run(AutomaticWorkQueueImpl.java:253)
[:2.3.1]
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
[:1.6.0_15]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
[:1.6.0_15]
at java.lang.Thread.run(Thread.java:619) [:1.6.0_15]
Caused by: java.lang.IllegalStateException: Unable to locate BeanManager
at
org.jboss.webservices.integration.weld.WeldInvocationHandler.handleWeldInjection(WeldInvocationHandler.java:84)
[:6.0.0.Final]
at
org.jboss.webservices.integration.weld.WeldInvocationHandler.onEndpointInstantiated(WeldInvocationHandler.java:56)
[:6.0.0.Final]
at
org.jboss.wsf.common.invocation.AbstractInvocationHandlerJSE.init(AbstractInvocationHandlerJSE.java:59)
[:1.4.1.GA]
at
org.jboss.wsf.common.invocation.AbstractInvocationHandlerJSE.invoke(AbstractInvocationHandlerJSE.java:91)
[:1.4.1.GA]
at
org.jboss.wsf.stack.cxf.AbstractInvoker._invokeInternal(AbstractInvoker.java:164)
[:3.4.1.GA]
... 14 more
Source code is here, where Folders and VocabularyService are @ApplicationScoped (one
@ApplicationScoped injection doesn't seem to matter!):
@WebService(name = "VocabularyService")
public class Vocabularies {
@Inject
private VocabularyService vocabularyService;
@Inject
private Folders folders;
@Inject @VocabulariesHome
private String vocabulariesHome;
@Inject @LanguagesHome
private String languagesHome;
@Inject @DCMITypesHome
private String dcmiTypesHome;
@Inject @StatusTypesHome
private String statusTypesHome;
@Inject @DRIVERTypesHome
private String driverTypesHome;
@Inject @DNBTypesHome
private String dnbTypesHome;
@Inject @MediaTypesHome
private String mimeTypesHome;
@Inject @DDCHome
private String ddcHome;
@WebMethod(operationName = "FindAll")
@WebResult(name = "VocabularyIds")
public List<String> getAvailable() {
return vocabularyService.getAvailable();
}
@WebMethod(operationName = "Get")
@WebResult(name = "Vocabulary")
public Vocabulary getVocabulary(@WebParam(name = "Id") String id) {
Vocabulary vocabulary = new Vocabulary();
vocabulary.setId(id);
if (id.equals(Folders.LANGUAGES_HOME)) {
vocabulary.setVocabularyParts(vocabularyService.getVocabulary(languagesHome,
new LanguageParser()));
} else if (id.equals(Folders.DCMITYPES_HOME)) {
vocabulary.setVocabularyParts(vocabularyService.getVocabulary(dcmiTypesHome,
new RdfsParser()));
} else if (id.equals(Folders.STATUSTYPES_HOME)) {
vocabulary.setVocabularyParts(vocabularyService.getVocabulary(statusTypesHome,
new RdfsParser()));
} else if (id.equals(Folders.DRIVERTYPES_HOME)) {
vocabulary.setVocabularyParts(vocabularyService.getVocabulary(driverTypesHome,
new DriverParser()));
} else if (id.equals(Folders.DNBTYPES_HOME)) {
vocabulary.setVocabularyParts(vocabularyService.getVocabulary(dnbTypesHome,
new RdfsParser()));
} else if (id.equals(Folders.MEDIATYPES_HOME)) {
vocabulary.setVocabularyParts(vocabularyService.getVocabulary(mimeTypesHome,
new RdfsParser()));
} else if (id.equals(Folders.DDC_HOME)) {
vocabulary.setVocabularyParts(vocabularyService.getVocabulary(ddcHome, new
DDCParser()));
} else {
//Bestimme Home aus der ID
// vocabulary.setVocabularyParts(vocabularyService.getVocabulary(mimeTypesHome,
new RdfsParser()));
}
return vocabulary;
}
@WebMethod(operationName = "Initialise")
@Oneway
public void initialise() {
// folders.importLanguages();
// folders.importDCMITypes();
// folders.importStatusTypes();
// folders.importDriverTypes();
// folders.importDnbTypes();
// folders.importMediaTypes();
// folders.importDDC();
}
}
--
This message is automatically generated by JIRA.
For more information on JIRA, see:
http://www.atlassian.com/software/jira