If there is no proxy for the instance this should work, did you ensure
it is not a cdi bean somehow or a @Dependent cdi bean?

Romain Manni-Bucau
@rmannibucau |  Blog | Old Blog | Github | LinkedIn


2017-11-27 11:00 GMT+01:00 COURTAULT Francois <francois.courta...@gemalto.com>:
> Hello Romain,
>
> Sorry to come back to you about this topic.
> But I think there is a real issue with CDI interceptor in TomEE 7.0.4.
>
> Let me explain, I have removed in the LoggingInterceptor annotated with 
> @Logged @Interceptor, the code below
>   @Inject
>   @Intercepted
>   private Bean<?> intercepted;
>
> And replace it by
> private Class<?> intercepted;
>
> Then, I revert back the update I have done (eg make the WS endpoint also an 
> EJB), that is to say that my WS endpoint is now a pure POJO.
> And, in this one,  I get the WebServiceContext with this code:
> @Resource
> private WebServiceContext wsc;
>
> I tested this on Wildfly 10.0.1/11.0.0, Glassfish 4.1.2/5.0 and Weblogic 
> 12.2.1.3 (eg 3 different app servers with also different versions for some of 
> them), and every time, wsc is not null
> This is not the case with TomEE 7.0.4.
>
> Best Regards.
>
> -----Original Message-----
> From: COURTAULT Francois
> Sent: vendredi 24 novembre 2017 15:43
> To: users@tomee.apache.org
> Subject: RE: : Re: : Re: : Re: Injecting WebserviceContext returns null
>
> Hello Romain,
>
> Answering to your question: no just un-deploy the previous version (only 
> pojo) update the code in order, for the WS endpoint, to become a stateless 
> EJB (just add @Stateless) and redeploy this new version and test it against 
> TomEE, Glassfish 4.1.2 and Wildfly 10.1.0.
>
> That's it.
>
> Best Regards.
>
> -----Original Message-----
> From: Romain Manni-Bucau [mailto:rmannibu...@gmail.com]
> Sent: vendredi 24 novembre 2017 15:34
> To: users@tomee.apache.org
> Subject: [++SPAM++]: Re: : Re: : Re: Injecting WebserviceContext returns null
>
> 2017-11-24 15:26 GMT+01:00 COURTAULT Francois 
> <francois.courta...@gemalto.com>:
>> Hello Romain,
>>
>> I have found another workaround which seems to be more portable as it works 
>> for TomEE and Wildfly as expected.
>> I updated the Webservice POJO to become also a stateless EJB.
>
> also? so you deploy it twice potentially with different settings? EJB 
> integration should be more reliable yes since more mainstream and spec are 
> more up to date with CDI.
>
>>
>> Having performed this update and deploy it in Glassfish 4.1.2, I had a 
>> runtime issue:
>> org.jboss.weld.exceptions.IllegalArgumentException: WELD-001405:
>> Cannot inject [BackedAnnotatedField] @Inject @Intercepted private 
>> com.gemalto.jaxws.LoggingInterceptor.intercepted in a class which isnt a 
>> bean Strange because Wildfly is using WELD as well and it works.
>>
>
> yes but versions are likely different and the integration is not the same for 
> sure.
>
>> BTW, I have subscribed to me...@javaee.groups.io but when I tried to send an 
>> email I got:
>> A communication failure occurred during the delivery of this message. Please 
>> try to resend the message later. If the problem continues, contact your 
>> helpdesk.
>> The following organization rejected your message: lb01.groups.io.
>>
>> Anything I can do to make the sending to this mailing-list work ? Have you 
>> any advice or tricks ?
>
> Not sure to be honest, JAX-WS is not the highest priority specs so not really 
> sure what is the current state :s
>
>>
>> Best Regards.
>>
>> -----Original Message-----
>> From: Romain Manni-Bucau [mailto:rmannibu...@gmail.com]
>> Sent: vendredi 24 novembre 2017 10:46
>> To: users@tomee.apache.org
>> Subject: [++SPAM++]: Re: : Re: Injecting WebserviceContext returns
>> null
>>
>> 2017-11-24 10:36 GMT+01:00 COURTAULT Francois 
>> <francois.courta...@gemalto.com>:
>>> Hello Romain,
>>>
>>> I have tested my sample application on Glassfish 4.1.2 and on Wildfly 
>>> 10.1.0 and I get the same behavior.
>>>
>>> But, I have found a workaround on TomEE 7.0.4.
>>>
>>> Using the @Logged annotation, instead of having:
>>> @Resource
>>> private WebServiceContext wsc;
>>>
>>> I updated with this:
>>> private WebServiceContext wsc;
>>>
>>> @Resource
>>> public void setServiceContext(WebServiceContext wsc) {
>>>    this.wsc = wsc;
>>> }
>>>
>>> This workaround works for TomEE 7.0.4 but if I tried this solution on 
>>> Glassfish 4.1.2, I can't deploy my application. The error message I get is:
>>> Caused by: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1
>>> counts of IllegalAnnotationExceptions javax.xml.ws.WebServiceContext is an 
>>> interface, and JAXB can't handle interfaces.
>>
>> This is funny it takes it as a jaxb class but setting the jaxb access
>> to NONE on the class should be a workaround
>>
>>>
>>> Using Wildfly 10.1.0, I was able to deploy my application but at runtime I 
>>> got the following exception:
>>> Caused by: java.lang.IllegalStateException: WFLYEE0042: Failed to
>>> construct component instance ...
>>> Caused by: java.lang.reflect.InvocationTargetException
>>> ...
>>> Caused by: java.lang.NullPointerException
>>>         at
>>> com.mycompany.jaxws.LoggingInterceptor.logMethod(LoggingInterceptor.j
>>> a
>>> va:32)
>>>
>>> The LoggingInterceptor looks like this:
>>> @Inject
>>> @Intercepted
>>> private Bean<?> intercepted;
>>> ....
>>> line 32 Logged loggedAnnotation =
>>> intercepted.getBeanClass().getAnnotation(Logged.class);
>>>
>>> So definitively, there is an issue with resource injection and CDI 
>>> interceptor because I can't find a portable solution except if I use 
>>> standard interceptor instead of CDI interceptor but, with this solution, we 
>>> lose the facility to use annotation for interceptor.
>>
>> Did you try the lookup? I don't fully recall the jndi name but the resource 
>> should be accessible through a jndi lookup in the invocation context.
>>
>>>
>>> How can I provide some feedback to Java EE spec members about this issue ?
>>
>>
>> fear we are in a migration state but entry point would be
>> https://javaee.github.io/metro-jax-ws/
>>
>>>
>>> Best Regards.
>>>
>>> -----Original Message-----
>>> From: Romain Manni-Bucau [mailto:rmannibu...@gmail.com]
>>> Sent: jeudi 23 novembre 2017 16:30
>>> To: users@tomee.apache.org
>>> Subject: [++SPAM++]: Re: Injecting WebserviceContext returns null
>>>
>>> 2017-11-23 16:25 GMT+01:00 COURTAULT Francois 
>>> <francois.courta...@gemalto.com>:
>>>> Romain,
>>>>
>>>> My interceptor is linked to an annotation and is declared in the beans.xml 
>>>>  in order to work so I guess it is a cdi interceptor and, according to 
>>>> what you have said, a new proxy is created and so the injection is not 
>>>> done on the right proxy, right ?
>>>> But, in this case,  is it a bug ?
>>>
>>> Hmm, point is the jaxws runtime has no real other good way to do the 
>>> interception. A workaround can be to have a jaws @vetoed pojo webservice 
>>> and inject your cdi bean to delegate the processing to it.
>>>
>>>>
>>>> The other solution is to use @Interceptor or @Interceptors annotations but 
>>>> we lose the beauty of using an annotation for interceptor, right ?
>>>
>>> Would do the same I think.
>>>
>>>>
>>>> Best Regards.
>>>>
>>>> -----Original Message-----
>>>> From: Romain Manni-Bucau [mailto:rmannibu...@gmail.com]
>>>> Sent: jeudi 23 novembre 2017 15:57
>>>> To: users@tomee.apache.org
>>>> Subject: Re: Injecting WebserviceContext returns null
>>>>
>>>> annotation = cdi interceptor? if so it leads to a proxy and the
>>>> injection happens on the wrong instance I think
>>>>
>>>> Romain Manni-Bucau
>>>> @rmannibucau |  Blog | Old Blog | Github | LinkedIn
>>>>
>>>>
>>>> 2017-11-23 15:50 GMT+01:00 COURTAULT Francois 
>>>> <francois.courta...@gemalto.com>:
>>>>> Hello Romain,
>>>>>
>>>>> I think I have found the issue.
>>>>> In fact, we used a custom annotation for a logging interceptor which 
>>>>> targets METHOD and TYPE.
>>>>>
>>>>> If we remove this annotation  on our WS endpoint (eg TYPE target) , then 
>>>>> the injection is resolved.
>>>>>
>>>>> Do you know why we have this side effect  ? Is it a bug ?
>>>>> I have a  test case if you want.
>>>>>
>>>>> Best Regards.
>>>>>
>>>>> -----Original Message-----
>>>>> From: Romain Manni-Bucau [mailto:rmannibu...@gmail.com]
>>>>> Sent: jeudi 23 novembre 2017 14:25
>>>>> To: users@tomee.apache.org
>>>>> Subject: Re: Injecting WebserviceContext returns null
>>>>>
>>>>> Looks close to
>>>>> https://github.com/apache/tomee/blob/master/server/openejb-cxf/src/
>>>>> t
>>>>> e s
>>>>> t/java/org/apache/openejb/server/cxf/PojoWebServiceContextTest.java
>>>>> , what can be the difference?
>>>>>
>>>>> Romain Manni-Bucau
>>>>> @rmannibucau |  Blog | Old Blog | Github | LinkedIn
>>>>>
>>>>>
>>>>> 2017-11-23 13:49 GMT+01:00 COURTAULT Francois 
>>>>> <francois.courta...@gemalto.com>:
>>>>>> Hello,
>>>>>>
>>>>>> No it's not an EJB webservice, just a POJO webservice annotated with 
>>>>>> @WebService(name = "MyManager", targetNamespace = 
>>>>>> "http://xxx.yyy.test..com/";, serviceName = "MyManager", wsdlLocation =  
>>>>>> "wsdl/MyManager.wsdl") like in the sample of my first email.
>>>>>> It looks quite similar to the sample provided in the JAX-WS 2.3 
>>>>>> specification (maintenance release 5), page 82, §5.3 
>>>>>> (javax.xml.ws.WebServiceContext)  except that the annotation, in our 
>>>>>> development,  uses  attributes like name, ...
>>>>>>
>>>>>> Best Regards.
>>>>>>
>>>>>> -----Original Message-----
>>>>>> From: Romain Manni-Bucau [mailto:rmannibu...@gmail.com]
>>>>>> Sent: jeudi 23 novembre 2017 13:34
>>>>>> To: users@tomee.apache.org
>>>>>> Subject: Re: Injecting WebserviceContext returns null
>>>>>>
>>>>>> Hi François,
>>>>>>
>>>>>> did you test with an EJB webservice?
>>>>>>
>>>>>> Romain Manni-Bucau
>>>>>> @rmannibucau |  Blog | Old Blog | Github | LinkedIn
>>>>>>
>>>>>>
>>>>>> 2017-11-23 12:11 GMT+01:00 COURTAULT Francois 
>>>>>> <francois.courta...@gemalto.com>:
>>>>>>> Hello,
>>>>>>>
>>>>>>> I have the following :
>>>>>>>
>>>>>>> @WebService(name = "MyManager", targetNamespace =
>>>>>>> "http://xxx.yyy.test..com/";, serviceName = "MyManager",
>>>>>>> wsdlLocation =
>>>>>>> "wsdl/MyManager.wsdl") public class MyManagerService implements
>>>>>>> MyManager {
>>>>>>>
>>>>>>>     @Resource
>>>>>>>     WebServiceContext webServiceContext; ....
>>>>>>> }
>>>>>>>
>>>>>>> And the webServiceContet is always null ! Any clue ?
>>>>>>>
>>>>>>> Best Regards.
>>>>>>> ________________________________
>>>>>>> This message and any attachments are intended solely for the addressees 
>>>>>>> and may contain confidential information. Any unauthorized use or 
>>>>>>> disclosure, either whole or partial, is prohibited.
>>>>>>> E-mails are susceptible to alteration. Our company shall not be liable 
>>>>>>> for the message if altered, changed or falsified. If you are not the 
>>>>>>> intended recipient of this message, please delete it and notify the 
>>>>>>> sender.
>>>>>>> Although all reasonable efforts have been made to keep this 
>>>>>>> transmission free from viruses, the sender will not be liable for 
>>>>>>> damages caused by a transmitted virus.
>>>>>> ________________________________
>>>>>>  This message and any attachments are intended solely for the addressees 
>>>>>> and may contain confidential information. Any unauthorized use or 
>>>>>> disclosure, either whole or partial, is prohibited.
>>>>>> E-mails are susceptible to alteration. Our company shall not be liable 
>>>>>> for the message if altered, changed or falsified. If you are not the 
>>>>>> intended recipient of this message, please delete it and notify the 
>>>>>> sender.
>>>>>> Although all reasonable efforts have been made to keep this transmission 
>>>>>> free from viruses, the sender will not be liable for damages caused by a 
>>>>>> transmitted virus.
>>>>> ________________________________
>>>>>  This message and any attachments are intended solely for the addressees 
>>>>> and may contain confidential information. Any unauthorized use or 
>>>>> disclosure, either whole or partial, is prohibited.
>>>>> E-mails are susceptible to alteration. Our company shall not be liable 
>>>>> for the message if altered, changed or falsified. If you are not the 
>>>>> intended recipient of this message, please delete it and notify the 
>>>>> sender.
>>>>> Although all reasonable efforts have been made to keep this transmission 
>>>>> free from viruses, the sender will not be liable for damages caused by a 
>>>>> transmitted virus.
>>>> ________________________________
>>>>  This message and any attachments are intended solely for the addressees 
>>>> and may contain confidential information. Any unauthorized use or 
>>>> disclosure, either whole or partial, is prohibited.
>>>> E-mails are susceptible to alteration. Our company shall not be liable for 
>>>> the message if altered, changed or falsified. If you are not the intended 
>>>> recipient of this message, please delete it and notify the sender.
>>>> Although all reasonable efforts have been made to keep this transmission 
>>>> free from viruses, the sender will not be liable for damages caused by a 
>>>> transmitted virus.
>>> ________________________________
>>>  This message and any attachments are intended solely for the addressees 
>>> and may contain confidential information. Any unauthorized use or 
>>> disclosure, either whole or partial, is prohibited.
>>> E-mails are susceptible to alteration. Our company shall not be liable for 
>>> the message if altered, changed or falsified. If you are not the intended 
>>> recipient of this message, please delete it and notify the sender.
>>> Although all reasonable efforts have been made to keep this transmission 
>>> free from viruses, the sender will not be liable for damages caused by a 
>>> transmitted virus.
>> ________________________________
>>  This message and any attachments are intended solely for the addressees and 
>> may contain confidential information. Any unauthorized use or disclosure, 
>> either whole or partial, is prohibited.
>> E-mails are susceptible to alteration. Our company shall not be liable for 
>> the message if altered, changed or falsified. If you are not the intended 
>> recipient of this message, please delete it and notify the sender.
>> Although all reasonable efforts have been made to keep this transmission 
>> free from viruses, the sender will not be liable for damages caused by a 
>> transmitted virus.
> ________________________________
>  This message and any attachments are intended solely for the addressees and 
> may contain confidential information. Any unauthorized use or disclosure, 
> either whole or partial, is prohibited.
> E-mails are susceptible to alteration. Our company shall not be liable for 
> the message if altered, changed or falsified. If you are not the intended 
> recipient of this message, please delete it and notify the sender.
> Although all reasonable efforts have been made to keep this transmission free 
> from viruses, the sender will not be liable for damages caused by a 
> transmitted virus.

Reply via email to