Плагин Oracle ORDS Java - регистрация сообщений - PullRequest
0 голосов
/ 28 февраля 2019

Я сделал простой плагин ORDS, который имеет простой фильтр сервлетов:

import oracle.dbtools.plugin.api.di.annotations.Priority;
import oracle.dbtools.plugin.api.di.annotations.Provides;

@Priority
@Provides
public class OrdsFilter implements Filter {

    @Override
    public void init(FilterConfig fc) throws ServletException {
        System.out.println(getClass().getName() + " init, " + fc);
    }

    @Override
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain fc) throws IOException, ServletException {
        System.out.println(getClass().getName() + " doFilter");
        fc.doFilter(req, resp);
    }

    @Override
    public void destroy() {
        System.out.println(getClass().getName() + " destroy");
    }

}

, скомпилировал его и поместил в ords.war как плагин.Он вызывается, как и ожидалось.

Следующее, что мне нужно сделать, это каким-то образом получить дескриптор объекта соединения JDBC, чтобы я мог записать данные запроса и ответа в таблицу базы данных.Я пытался с аннотацией Inject ввести соединение в фильтре, но теперь фильтр не вызывается.

Я предполагаю, что проблема в том, что ORDS не знает в тот момент, какое соединение дБ будет использоваться дляобрабатываете этот запрос, поэтому фильтр не может получить дескриптор соединения с БД?

С другой стороны, я думаю, что не могу использовать сервлет для этой цели, потому что сервлет привязан кконкретный URL, верно?

Есть предложения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...