base branch = master compare = your branch no?
Romain Manni-Bucau @rmannibucau | Blog | Old Blog | Github | LinkedIn 2017-11-27 15:36 GMT+01:00 COURTAULT Francois <[email protected]>: > Hello Romain, > > Done. > #114 Tomee 7.0.4 issue with CDI interceptor and WebServiceContext resource > injection > > I have still a question, in order to create a pull request, I have to have a > base branch and a compare branch, right ? > So I have set the base branch to Master and the compare branch to > tome-7.0.4-prepare: is it correct ? > > Best Regards. > > -----Original Message----- > From: Romain Manni-Bucau [mailto:[email protected]] > Sent: lundi 27 novembre 2017 14:09 > To: [email protected] > Subject: [+SPAM+]: Re: Re: : Re: Re: : Re: : Re: : Re: Injecting > WebserviceContext returns null > > PR on master on github yes or patch attached to a jira (but review will be a > bit longer) > > Romain Manni-Bucau > @rmannibucau | Blog | Old Blog | Github | LinkedIn > > > 2017-11-27 12:36 GMT+01:00 COURTAULT Francois > <[email protected]>: >> Hello Romain, >> >> How can I do that ? Pull-request on master branch ? Go directly to JIRA ? >> >> Best Regards. >> >> -----Original Message----- >> From: Romain Manni-Bucau [mailto:[email protected]] >> Sent: lundi 27 novembre 2017 12:05 >> To: [email protected] >> Subject: [++SPAM++]: Re: : Re: Re: : Re: : Re: : Re: Injecting >> WebserviceContext returns null >> >> 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 >> <[email protected]>: >>> 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:[email protected]] >>> Sent: lundi 27 novembre 2017 11:47 >>> To: [email protected] >>> 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 >>> <[email protected]>: >>>> 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:[email protected]] >>>> Sent: lundi 27 novembre 2017 11:08 >>>> To: [email protected] >>>> 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 >>>> <[email protected]>: >>>>> 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: [email protected] >>>>> 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:[email protected]] >>>>> Sent: vendredi 24 novembre 2017 15:34 >>>>> To: [email protected] >>>>> Subject: [++SPAM++]: Re: : Re: : Re: Injecting WebserviceContext >>>>> returns null >>>>> >>>>> 2017-11-24 15:26 GMT+01:00 COURTAULT Francois >>>>> <[email protected]>: >>>>>> 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 [email protected] 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:[email protected]] >>>>>> Sent: vendredi 24 novembre 2017 10:46 >>>>>> To: [email protected] >>>>>> Subject: [++SPAM++]: Re: : Re: Injecting WebserviceContext returns >>>>>> null >>>>>> >>>>>> 2017-11-24 10:36 GMT+01:00 COURTAULT Francois >>>>>> <[email protected]>: >>>>>>> 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:[email protected]] >>>>>>> Sent: jeudi 23 novembre 2017 16:30 >>>>>>> To: [email protected] >>>>>>> Subject: [++SPAM++]: Re: Injecting WebserviceContext returns null >>>>>>> >>>>>>> 2017-11-23 16:25 GMT+01:00 COURTAULT Francois >>>>>>> <[email protected]>: >>>>>>>> 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:[email protected]] >>>>>>>> Sent: jeudi 23 novembre 2017 15:57 >>>>>>>> To: [email protected] >>>>>>>> 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 >>>>>>>> <[email protected]>: >>>>>>>>> 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:[email protected]] >>>>>>>>> Sent: jeudi 23 novembre 2017 14:25 >>>>>>>>> To: [email protected] >>>>>>>>> Subject: Re: Injecting WebserviceContext returns null >>>>>>>>> >>>>>>>>> Looks close to >>>>>>>>> https://github.com/apache/tomee/blob/master/server/openejb-cxf/ >>>>>>>>> s >>>>>>>>> r >>>>>>>>> c >>>>>>>>> / >>>>>>>>> t >>>>>>>>> e s >>>>>>>>> t/java/org/apache/openejb/server/cxf/PojoWebServiceContextTest. >>>>>>>>> j >>>>>>>>> a >>>>>>>>> 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 >>>>>>>>> <[email protected]>: >>>>>>>>>> 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:[email protected]] >>>>>>>>>> Sent: jeudi 23 novembre 2017 13:34 >>>>>>>>>> To: [email protected] >>>>>>>>>> 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 >>>>>>>>>> <[email protected]>: >>>>>>>>>>> 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. >> ________________________________ >> 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.
