@Resource WebserviceContext context

Wiplash4

Aktives Mitglied
Ich versuche via WebserviceContext in eine Webservice Klasse einzubinden.

Java:
@Resource
protected WebserviceContext context;

Unter IBM Websphere funktionierte es einwandfrei. Nun aber migriere ich meine Anwendung nach Wildfly 8.
XML:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"/>
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>java.lang.IllegalStateException: JBAS011048: Failed to construct component instance</faultstring>
</soap:Fault>
</soap:Body>
</soap:Envelope>
Was muss ich nun machen, damit es auch da funktioniert?
Oder funktioniert WebserviceContext generell nicht unter Wildfly und ich sollte ne andere Methode benutzen.

Letztendlich geht es darum, eine die HTTP Request Header aus einer Nachricht zu holen.
 
Code:
Caused by: javax.ejb.EJBException: java.lang.IllegalStateException: JBAS011048: Failed to construct component instance
       at org.jboss.as.ejb3.tx.CMTTxInterceptor.handleExceptionInOurTx(CMTTxInterceptor.java:190) [wildfly-ejb3-8.0.0.Final.jar:8.0.0.Final]
       at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:275) [wildfly-ejb3-8.0.0.Final.jar:8.0.0.Final]
       at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:340) [wildfly-ejb3-8.0.0.Final.jar:8.0.0.Final]
       at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:239) [wildfly-ejb3-8.0.0.Final.jar:8.0.0.Final]
       at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
       at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41) [wildfly-ejb3-8.0.0.Final.jar:8.0.0.Final]
       at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
       at org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:43) [wildfly-ejb3-8.0.0.Final.jar:8.0.0.Final]
       at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
       at org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:95) [wildfly-ejb3-8.0.0.Final.jar:8.0.0.Final]
       at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
       at org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64) [wildfly-ejb3-8.0.0.Final.jar:8.0.0.Final]
       at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
       at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59) [wildfly-ejb3-8.0.0.Final.jar:8.0.0.Final]
       at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
       at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
       at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
       at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:55) [wildfly-ejb3-8.0.0.Final.jar:8.0.0.Final]
       at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
       at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64)
       at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
       at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:326)
       at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:448)
       at org.jboss.invocation.AccessCheckingInterceptor.processInvocation(AccessCheckingInterceptor.java:61)
       at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
       at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:326)
       at org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80)
       at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
       at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
       at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:185)
       at org.jboss.as.webservices.invocation.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:112)
       at org.jboss.wsf.stack.cxf.JBossWSInvoker.performInvocation(JBossWSInvoker.java:149)
       at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96) [cxf-api-2.7.7.jar:2.7.7]
       ... 44 more
Caused by: java.lang.IllegalStateException: JBAS011048: Failed to construct component instance
       at org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:162)
       at org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:133)
       at org.jboss.as.ee.component.BasicComponent.createInstance(BasicComponent.java:89)
       at org.jboss.as.ejb3.component.interceptors.NonPooledEJBComponentInstanceAssociatingInterceptor.processInvocation(NonPooledEJBComponentInstanceAssociatingInterceptor.java:53) [wildfly-ejb3-8.0.0.Final.jar:8.0.0.Final]
       at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
       at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:273) [wildfly-ejb3-8.0.0.Final.jar:8.0.0.Final]
       ... 75 more
Caused by: javax.ejb.EJBException: javax.enterprise.inject.CreationException
       at org.jboss.as.ejb3.tx.CMTTxInterceptor.handleExceptionInOurTx(CMTTxInterceptor.java:190) [wildfly-ejb3-8.0.0.Final.jar:8.0.0.Final]
       at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:275) [wildfly-ejb3-8.0.0.Final.jar:8.0.0.Final]
       at org.jboss.as.ejb3.tx.CMTTxInterceptor.requiresNew(CMTTxInterceptor.java:364) [wildfly-ejb3-8.0.0.Final.jar:8.0.0.Final]
       at org.jboss.as.ejb3.tx.LifecycleCMTTxInterceptor.processInvocation(LifecycleCMTTxInterceptor.java:66) [wildfly-ejb3-8.0.0.Final.jar:8.0.0.Final]
       at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
       at org.jboss.as.weld.injection.WeldInjectionContextInterceptor.processInvocation(WeldInjectionContextInterceptor.java:43) [wildfly-weld-8.0.0.Final.jar:8.0.0.Final]
       at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
       at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41) [wildfly-ejb3-8.0.0.Final.jar:8.0.0.Final]
       at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
       at org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45) [wildfly-ee-8.0.0.Final.jar:8.0.0.Final]
       at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
       at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64)
       at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
       at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:326)
       at org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80)
       at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
       at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
       at org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:160)
       ... 80 more
Caused by: javax.enterprise.inject.CreationException
       at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [rt.jar:1.8.0_222]
       at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) [rt.jar:1.8.0_222]
       at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [rt.jar:1.8.0_222]
       at java.lang.reflect.Constructor.newInstance(Constructor.java:423) [rt.jar:1.8.0_222]
       at java.lang.Class.newInstance(Class.java:442) [rt.jar:1.8.0_222]
       at org.jboss.weld.security.NewInstanceAction.run(NewInstanceAction.java:33) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at java.security.AccessController.doPrivileged(Native Method) [rt.jar:1.8.0_222]
       at org.jboss.weld.injection.Exceptions.rethrowException(Exceptions.java:40) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.injection.Exceptions.rethrowException(Exceptions.java:50) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.injection.Exceptions.rethrowException(Exceptions.java:54) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.injection.FieldInjectionPoint.inject(FieldInjectionPoint.java:96) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.util.Beans.injectBoundFields(Beans.java:358) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.util.Beans.injectFieldsAndInitializers(Beans.java:369) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.injection.producer.DefaultInjector.inject(DefaultInjector.java:72) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.injection.producer.ResourceInjector.inject(ResourceInjector.java:60) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.injection.producer.DefaultInjector$1.proceed(DefaultInjector.java:66) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.injection.InjectionContextImpl.run(InjectionContextImpl.java:48) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.injection.producer.DefaultInjector.inject(DefaultInjector.java:64) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.injection.producer.BasicInjectionTarget.inject(BasicInjectionTarget.java:90) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:150) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.context.unbound.DependentContextImpl.get(DependentContextImpl.java:69) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:733) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:789) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.injection.FieldInjectionPoint.inject(FieldInjectionPoint.java:92) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.util.Beans.injectBoundFields(Beans.java:358) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.util.Beans.injectFieldsAndInitializers(Beans.java:369) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.injection.producer.DefaultInjector.inject(DefaultInjector.java:72) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.injection.producer.StatelessSessionBeanInjector.inject(StatelessSessionBeanInjector.java:56) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.injection.producer.DefaultInjector$1.proceed(DefaultInjector.java:66) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.injection.InjectionContextImpl.run(InjectionContextImpl.java:48) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.injection.producer.DefaultInjector.inject(DefaultInjector.java:64) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.injection.producer.BasicInjectionTarget.inject(BasicInjectionTarget.java:90) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.as.weld.injection.WeldInjectionContext.inject(WeldInjectionContext.java:39) [wildfly-weld-8.0.0.Final.jar:8.0.0.Final]
       at org.jboss.as.weld.injection.WeldInjectionInterceptor.processInvocation(WeldInjectionInterceptor.java:51) [wildfly-weld-8.0.0.Final.jar:8.0.0.Final]
       at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
       at org.jboss.as.ee.component.AroundConstructInterceptorFactory$1.processInvocation(AroundConstructInterceptorFactory.java:28)
       at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
       at org.jboss.as.weld.injection.WeldInterceptorInjectionInterceptor.processInvocation(WeldInterceptorInjectionInterceptor.java:56) [wildfly-weld-8.0.0.Final.jar:8.0.0.Final]
       at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
       at org.jboss.as.weld.ejb.Jsr299BindingsCreateInterceptor.processInvocation(Jsr299BindingsCreateInterceptor.java:94) [wildfly-weld-8.0.0.Final.jar:8.0.0.Final]
       at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
       at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
       at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
       at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:273) [wildfly-ejb3-8.0.0.Final.jar:8.0.0.Final]
       ... 96 more
Caused by: javax.naming.NameNotFoundException: webServiceContext -- service jboss.naming.context.java.webServiceContext
       at org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:104)
       at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:202)
       at org.jboss.as.naming.InitialContext$DefaultInitialContext.lookup(InitialContext.java:233)
       at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:188)
       at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:184)
       at javax.naming.InitialContext.lookup(InitialContext.java:417) [rt.jar:1.8.0_222]
       at javax.naming.InitialContext.lookup(InitialContext.java:417) [rt.jar:1.8.0_222]
       at org.jboss.as.weld.services.bootstrap.WeldResourceInjectionServices.resolveResource(WeldResourceInjectionServices.java:185) [wildfly-weld-8.0.0.Final.jar:8.0.0.Final]
       at org.jboss.as.weld.services.bootstrap.WeldResourceInjectionServices$1.createResource(WeldResourceInjectionServices.java:135) [wildfly-weld-8.0.0.Final.jar:8.0.0.Final]
       at org.jboss.weld.injection.AbstractResourceInjection.getResourceReference(AbstractResourceInjection.java:44) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.injection.AbstractResourceInjection.injectResourceReference(AbstractResourceInjection.java:53) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.util.Beans.injectEEFields(Beans.java:331) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.injection.producer.ResourceInjector.inject(ResourceInjector.java:59) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.injection.producer.DefaultInjector$1.proceed(DefaultInjector.java:66) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.injection.InjectionContextImpl.run(InjectionContextImpl.java:48) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.injection.producer.DefaultInjector.inject(DefaultInjector.java:64) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.injection.producer.BasicInjectionTarget.inject(BasicInjectionTarget.java:90) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:150) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.context.unbound.DependentContextImpl.get(DependentContextImpl.java:69) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:733) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:789) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       at org.jboss.weld.injection.FieldInjectionPoint.inject(FieldInjectionPoint.java:92) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
       ... 129 more
 
Code:
Caused by: javax.naming.NameNotFoundException: webServiceContext -- service jboss.naming.context.java.webServiceContext

Was auch immer das bedeutet, das ist dein Problem. Vielleicht musst du noch irgendwas an der Konfiguration aendern? Oder vielleicht ist dass der falsche Import?
 
Ich habe eher den Verdacht, dass der Inhalt dieser Variable im standalone.xml nicht stimmt. Daher mal ne Frage: Was sollte da im standalone.xml eingetragen sein?
 
Ich kenne mich mit Application-Server nur bedingt aus, kann es sein dass du den Wert "jboss.naming.context.java.webServiceContext" in der XML hast, und dass dieser anders sein muss (vermutlich Grosz/Kleinschreibung falsch)?
 
Daran liegt es garantiert nicht. Die Frage an die Allgemeinheit: Das Problem hier ist, dass den Request und dessen Header haben will, der reinkommt. Wie bekomme ich den innerhalb einer Klasse?
 
Nun aber migriere ich meine Anwendung nach Wildfly 8.
Da würde ich gerne schon einhaken: Wildfly 8? Die 8.2.1 ist von 2015 - daher wundere ich mich, dass Du auf diese alter Version migrieren willst.

Oder machst Du Java EE 8 - und hast einen aktuelleren Wildfly?

Spätestens wenn man die Konfiguration zum Thema hat, wäre es wichtig, die Version zu kennen.
 
Mal ne andere Frage: Kann es sein, dass @Resource nur funktioniert, wenn es die einbindende Klasse eine @Webservice-Annotation enthält?
 
Du kannst den Context ja von deinem WebService aus "reinreichen". Ob das Sinnvoll ist, sei mal dahingestellt, dafür müsste man ein bisschen mehr drumherum wissen ....
 

Neue Themen


Zurück
Oben