Я хочу реализовать событие CDI для управляемого компонента с помощью @ViewScoped
.
это мой пример кода:
Управляемый компонент CDI для JSF:
@ViewScoped
@Named
public class SampleBean implements Serializable {
public void pushEvent(@Observes String str) {
System.out.println("Bean " + str);
}
// And other methods and properties .
}
Служба без гражданства:
@Stateless
@LocalBean
public class ExampleService {
@Inject
private Event<String> event;
public void execute(String str) {
event.fire(str);
}
}
JaxRs:
@Path("/test")
@RequestScoped
public class ExampleResources {
@EJB
private ExampleService service;
@GET
@Path("/execute")
@Produces("application/json")
public Response executeOperation(@QueryParam("str") String str) {
service.execute(str);
return Response.ok("String : " + str).build();
}
}
Я хочу отправить событие в JSF-бин из Rest или веб-сервисов мыла .
Я использовал веб-профиль JavaEE 8 на Liberty 18.0.0.x .
.
Что такое ошибка? Как можно исправить эту проблему?
Amd ypu не отправляет событие из jax-rs или soap, вы отправляете его из своего сервиса. Конечная точка Soap или jax-rs просто запускает вашу службу. Или вы можете заставить его работать, если вы запускаете из другого управляемого компонента cdi/jsf
Дублировать? stackoverflow.com/questions/37117457/…, как и в случае с асинхронным режимом, в текущем потоке нет bean-компонента с видимой областью.
@Kukeltje извините, я не могу понять! , можешь привести пример кода?
Как связаны jax-rs?