Я использую OpenEJB в качестве сервера приложений и хочу развернуть ресурс Jax-RS, который требует, чтобы некоторая именованная служба была внедрена в его конструктор.
Мой ресурс выглядит так:
@Singleton
@Path("/")
public class Resource {
private Service service;
@Inject
public Resource(@Named("service") Service service) {
this.service = service;
}
}
К сожалению, OpenEJB жалуется, потому что не считает мой конструктор допустимым из-за аннотации @Named, украшающей аргумент службы.
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)
Реализации OpenEJB CdiResourceProvider явно не нужно ничего, кроме аннотации Jax-RS @Context для аргументов конструктора... Поддерживается ли она OpenEJB?