I have to confess I think it is not specified at all (JAX-WS not being
updated for this case) but feel free to propose a fix on github. No
blocker to enrich it.

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


2017-11-27 11:56 GMT+01:00 COURTAULT Francois <francois.courta...@gemalto.com>:
> Hello Romain,
>
> OK but this didn't happen with the other App Servers. The only I haven't 
> tried is Liberty but I can if you want.
> So for me it's a bug, right ?
>
> Best Regards.
>
> -----Original Message-----
> From: Romain Manni-Bucau [mailto:rmannibu...@gmail.com]
> Sent: lundi 27 novembre 2017 11:47
> To: users@tomee.apache.org
> Subject: [++SPAM++]: Re: [++SPAM++]: Re: : Re: : Re: : Re: Injecting 
> WebserviceContext returns null
>
> Back to the first post I think: you get a proxy and the proxy gets the 
> injections properly but this is not your business instance.
>
> Romain Manni-Bucau
> @rmannibucau |  Blog | Old Blog | Github | LinkedIn
>
>
> 2017-11-27 11:32 GMT+01:00 COURTAULT Francois 
> <francois.courta...@gemalto.com>:
>> Hello Romain,
>>
>> I have defined an annotation like below:
>> @Inherited
>> @InterceptorBinding
>> @Target({ElementType.METHOD, ElementType.TYPE})
>> @Retention(RetentionPolicy.RUNTIME)
>> public @interface Logged {
>>
>>   @Nonbinding
>>   String logLevel() default "INFO";
>> }
>>
>> Then, I have written a class like this:
>> @Logged
>> @Interceptor
>> public class LoggingInterceptor {
>>  private Class<?> intercepted;
>>
>> @AroundInvoke
>>   public Object logMethod(final InvocationContext ctx) throws
>> Exception { .....
>>  }
>> }
>>
>> In my POJO, webservice endpoint, I have:
>> @WebService(name = "MyManager", targetNamespace
>> ="http://com.test/wsdl";, serviceName = "MyManagerService") @Logged
>> public class MyManager implements IMyManager {
>>   @Resource
>>   private WebServiceContext wsc;       //=>=> ALWAYS null on TomEE 7.0.4!!!
>> ....
>> }
>>
>> That's the test case I built which doesn't work on TomEE 7.0.4 but works, as 
>> I have already mentioned,  on Glassfish 4.1.2/5.0, Weblogic Server 12.2.1.3 
>> and Wildfly 10.0.1/11.0.0.
>>
>> Best Regards.
>>
>> -----Original Message-----
>> From: Romain Manni-Bucau [mailto:rmannibu...@gmail.com]
>> Sent: lundi 27 novembre 2017 11:08
>> To: users@tomee.apache.org
>> Subject: [++SPAM++]: Re: : Re: : Re: : Re: Injecting WebserviceContext
>> returns null
>>
>> 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/sr
>>>>>>> c
>>>>>>> /
>>>>>>> t
>>>>>>> e s
>>>>>>> t/java/org/apache/openejb/server/cxf/PojoWebServiceContextTest.ja
>>>>>>> v
>>>>>>> a
>>>>>>> , 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.
>> ________________________________
>>  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