Я объявил следующий интерфейс:
public interface IArea {
@GET
@Produces(MediaType.APPLICATION_JSON + ";charset=utf-8")
@Path("/")
Response get(
@QueryParam("param1") String param1,
@QueryParam("param2") String param2
);
}
Я реализую два bean-компонента без сохранения состояния, используя этот интерфейс:
@Stateless
@Path("/first")
public class FirstController implements IArea {
public Response get(String param1, String param2) {
return Response.status(200).build();
}
}
@Stateless
@Path("/second")
public class SecondController implements IArea {
public Response get(String param1, String param2) {
return Response.status(200).build();
}
}
В результате мы имеем неизвестную ошибку при вызове обеих конечных точек:
org.jboss.weld.exceptions.IllegalArgumentException: WELD-001456: Бин аргумента не должен быть нулевым
в org.jboss.weld.util.Preconditions.checkArgumentNotNull (Preconditions.java:40) в org.jboss.weld.manager.BeanManagerImpl.getReference (BeanManagerImpl.java:703) в org.jboss.weld.util.ForwardingBeanManager.) в org.jboss.weld.bean.builtin.BeanManagerProxy.getReference (BeanManagerProxy.java:86) в org.jboss.resteasy.cdi.CdiConstructorInjector.construct (CdiConstructorInjector.java:68) в org.jboss.resteasy.diCdiConstructorInjector.construct (CdiConstructorInjector.java:73) в org.jboss.resteasy.plugins.server.resourcefactory.POJOResourceFactory.createResource (POJOResourceFactory.java:53) в org.jboss.resteasy.core.ResourceMethodInvoker.invoke (ResourceMethodInvoker.java:312) в org.jboss.resteasy.core.SynchronousDispatcher.invoke (SynchronousDispatcher.java:441) ... еще 51
Если я реализую одиночный beanНапример, FirstController, сервер работает нормально.
В обоих случаях «методы-ресурса» на вкладке «Развертывание» верны.
Наша платформа - Wildfly 12.0.0.Final.Java EE 8.