I OpenEJB als Anwendungsserver bin mit und ich mag eine JAX-RS-Ressource implementieren, die einigen benannte Dienst erfordert in seinem Konstruktor injiziert werden.Injizieren von Konstruktor mit OpenEJB Service in JAX-RS-Ressource namens
Meine Ressource wie folgt aussieht:
@Singleton
@Path("/")
public class Resource {
private Service service;
@Inject
public Resource(@Named("service") Service service) {
this.service = service;
}
}
Leider klagt OpenEJB weil es nicht mein Konstruktor nicht für gültig sein, weil der @Named Anmerkung des Service Argument zu dekorieren.
java.lang.RuntimeException: Resource class class test.Resource has no valid constructor
at org.apache.openejb.server.cxf.rs.CdiResourceProvider.validateConstructorExists(CdiResourceProvider.java:138)
at org.apache.openejb.server.cxf.rs.CdiResourceProvider.<init>(CdiResourceProvider.java:100)
at org.apache.openejb.server.cxf.rs.OpenEJBPerRequestPojoResourceProvider.<init>(OpenEJBPerRequestPojoResourceProvider.java:28)
at org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication(CxfRsHttpListener.java:522)
Die Umsetzung des OpenEJB CdiResourceProvider eindeutig nicht etwas anderes als die für Konstruktorargumente Jax-RS @Context Anmerkung wollen ... Ist es von OpenEJB unterstützt?