Right, Git clone X && mvn test -> error Le 10 mai 2013 22:04, "Chris.Christo" <[email protected]> a écrit :
> 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 > >>>>>> > >>>>>> > >>>> > >>>> > >> > >> > >
