[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [jaxrs-dev] CDI resource classes and lifecycle
|
Hi,
Are you using WildFly for a chance?
The general interpretation is that resources might be used as CDI beans, but the user has to explictly make them beans, i.e.: the behavior you are seeing is not standard.
WildFly has some useful propietary code that converts the @Path annotation into a bean annotation so that a CDI extension on Resteasy can detect them and automatically make beans from them (although @RequestScoped IIRC).
Another possibility is that you are using bean discovery mode all, but with bean annotated mode e.g. Payara doesn't detect them.
Hi all,
I've a question regarding CDI and the lifecycle of resource classes.
The JAX-RS spec states:
- 3.1.1 Lifecycle and Environment:
- "By default a new resource class instance is created for each request to that resource."
- 11.2.3 Context and Dependency Injection (CDI):
- "In a product that supports CDI, implementations MUST support the use of CDI-style Beans as root resource classes"
The example CDI resource in section 11.2.3 looks like this:
@Path("/cdibean")
public class CdiBeanResource {
@Inject MyOtherCdiBean bean; // CDI injected bean
// ...
}
Please note that the resources doesn't have a scope annotation. In this case CDI will assume @Dependent scope.
Isn't this weird? Shouldn't be the default scope for CDI resources be @RequestScoped? Is it up to the user to set the "correct" scope? It is somehow surprising that @Dependent scoped beans work at all because of the way @Dependent is defined.
Any thoughts? Or is it just me having doubts about this? :-)
Christian
--
_______________________________________________
jaxrs-dev mailing list
jaxrs-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/jaxrs-dev