Thanks Romain, tried it but no luck :( What's the best way to share a sample so I know? I'm guessing some pre setup maven project on github or something in which you can git clone and mvn install?
On 10 May 2013, at 20:42, Romain Manni-Bucau <[email protected]> wrote: > Maybe try adding ejb in @classes > > Sharing a sample for next week.can help too ;) > Le 10 mai 2013 20:41, "Chris.Christo" <[email protected]> a écrit : > >> 4.6.0-SNAPSHOT of the standalone >> >> >> On 10 May 2013, at 19:39, Romain Manni-Bucau <[email protected]> >> wrote: >> >>> Which version do you use? >>> Le 10 mai 2013 20:33, "Chris.Christo" <[email protected]> a écrit : >>> >>>> sorry, where on trunk? >>>> >>>> Regardless, I played around with this and managed to get it working. >>>> >>>> However I have stumbled on something a little strange. >>>> >>>> Basically when the exception mappers are defined at the @Config level, >> any >>>> @EJB's within the rest class, that is being tested, do not get injected. >>>> >>>> To explain a little better, here (on pastebin) we have to classes. They >>>> are practically identical except for where the ExceptionMapper classes >> are >>>> loaded, one at the @Config level and one within the @Module level >> defined >>>> on the EjbDeployment of the OpenejbJar. >>>> >>>> They both pass the test, which basically means that that the exception >>>> mapping was setup correctly. However the second class >>>> (ExceptionMapperAtConfigTest) passes on the basis that the service >> marked >>>> @EJB is not injected i.e null. So basically we want this test to fail. >>>> >>>> ExceptionMapperAtDeploymentTest: http://pastebin.com/aWQjjePD >>>> >>>> ExceptionMapperAtConfigTest: http://pastebin.com/GFcKYWzs >>>> >>>> >>>> On a side note, to have the exception mappers picked up at the @Config >>>> level, you have to have the '@Classes({ GoodExceptionMapper.class, >>>> BadExceptionMapper.class })' annotation defined on the method. I have no >>>> idea why?? >>>> >>>> >>>> >>>> On 10 May 2013, at 17:35, Romain Manni-Bucau <[email protected]> >>>> wrote: >>>> >>>>> Hi >>>>> >>>>> on trunk it is set once by jaxrs application only which is far ore >> easier >>>>> to handle >>>>> >>>>> *Romain Manni-Bucau* >>>>> *Twitter: @rmannibucau <https://twitter.com/rmannibucau>* >>>>> *Blog: **http://rmannibucau.wordpress.com/*< >>>> http://rmannibucau.wordpress.com/> >>>>> *LinkedIn: **http://fr.linkedin.com/in/rmannibucau* >>>>> *Github: https://github.com/rmannibucau* >>>>> >>>>> >>>>> >>>>> 2013/5/10 Chris.Christo <[email protected]> >>>>> >>>>>> Hi >>>>>> >>>>>> Hey I was just wondering if I can set my exception mappers in the >>>>>> properties part of my test under the @Configuration, rather than >> having >>>> to >>>>>> apply an exception mapper to each EjbDeployment of the OpenejbJar. >>>>>> >>>>>> So right now I have something like this link: >>>>>> >>>>>> >>>>>> >>>> >> https://svn.apache.org/repos/asf/tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CheckedExceptionMapperTest.java >>>>>> >>>>>> To pick out the specific point in the link: >>>>>> >>>>>> @Module >>>>>> @Classes({ ExampleExceptionMapper.class }) >>>>>> public EjbModule module() { >>>>>> final SingletonBean bean = new SingletonBean(ExampleRest.class); >>>>>> bean.setRestService(true); >>>>>> >>>>>> final EjbJar ejbJar = new EjbJar("beans"); >>>>>> ejbJar.addEnterpriseBean(bean); >>>>>> >>>>>> final OpenejbJar openejbJar = new OpenejbJar(); >>>>>> openejbJar.addEjbDeployment(new EjbDeployment(bean)); >>>>>> >>>>>> final Properties properties = >>>>>> openejbJar.getEjbDeployment().iterator().next().getProperties(); >>>>>> properties.setProperty("cxf.jaxrs.providers", >>>>>> >>>> >> "org.apache.openejb.server.cxf.rs.CheckedExceptionMapperTest$ExampleExceptionMapper"); >>>>>> >>>>>> final EjbModule module = new EjbModule(ejbJar); >>>>>> module.setOpenejbJar(openejbJar); >>>>>> >>>>>> return module; >>>>>> } >>>>>> >>>>>> So here I define the exception mapper (ExampleExceptionMapper) on the >>>>>> properties of the specific EjbDeployment of the ExampleRest class in >> the >>>>>> OpenejbJar. >>>>>> >>>>>> Is there a way to just define it in the global properties with >>>>>> @Configuration? I've tried something like this to no avail: >>>>>> >>>>>> @Configuration >>>>>> public Properties config() { >>>>>> final Properties props = new Properties(); >>>>>> ... >>>>>> props.setProperty("openejb.cxf.jax-rs.providers", >>>>>> ExampleExceptionMapper.class.getName()); >>>>>> props.setProperty("openejb.jaxrs.providers.auto", "true"); >>>>>> ... >>>>>> return props; >>>>>> } >>>>>> >>>>>> >>>>>> >>>>>> Thanks, >>>>>> >>>>>> Chris >>>>>> >>>>>> >>>> >>>> >> >>
