Разве вы не можете внедрить экземпляр loader
вместо того, чтобы найти его с помощью этого статического вызова? Я не совсем знаком с Seam, но, возможно (в теле класса):
@In private MyInterface loader;
, а затем, в вашем методе, просто используйте loader
.
Как кажется, у Seam есть области применения / без сохранения состояния, которые в вашем случае кажутся подходящими:
@Scope(ScopeType.APPLICATION)
или
@Scope(ScopeType.STATELESS)
Попробуйте один из них - поскольку вашему классу не требуется никакой информации из сеанса / запроса, более целесообразно не использовать область действия, связанную с сетью.
Итак, определите MyService
и MyInterface
в одной из вышеперечисленных областей и попробуйте и инъекцию, и свой метод поиска.
Ознакомьтесь с учебником Seam по контекстам и параллелизму
Эта тема кажется полезной.
И из этой темы кажется, что есть аннотация @Asynchronous
, которую вы можете использовать.