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 > >>>> > >>>> > >> > >> > >
