Для использования контекста Seam вы можете заключить методы doPost
или doGet
в ContextualHttpServletRequest
, что позволяет выполнять поиск компонентов.
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
final HttpServletRequest req = request;
new ContextualHttpServletRequest( req ) {
public void process() throws Exception {
wrappedPost( req );
}
}.run();
}
// you renamed original doPost method
private void wrappedPost(HttpServletRequest request) {
...
}
Приведенный выше пример кода позволяет получить доступ к компонентам по имени, которое объявлено с использованием аннотации имени:
@Name("MyCcomponent")
Регистратор обычно внедряется аннотацией @Logger
, я проверил, регистрирует ли исходный пакет, нет компонента с аннотацией @Name
, который можно было бы найти. Если вы вызываете компонент (с помощью @Logger) из обернутого контекста, будет добавлен регистратор (в вызываемый компонент).
Шов использует в своих компонентах:
private static final LogProvider log = Logging
.getLogProvider(MailSession.class);