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

Reply via email to