Oracle ORDS Java插件-通信日志

时间:2019-02-28 19:31:02

标签: java oracle rest plugins

我制作了一个简单的ORDS插件,该插件具有一个简单的servlet过滤器:

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连接对象的句柄,因此我可以将请求和响应数据记录到db表中。我尝试使用Inject注释将连接注入到过滤器中,但是现在不会调用过滤器。

我认为问题是ORDS当时不知道它将使用哪个数据库连接来处理该请求,因此过滤器无法获取该数据库连接的句柄?

另一方面,我认为我不能使用servlet来实现此目的,因为servlet绑定到了具体的URL,对吧?

有什么建议吗?

0 个答案:

没有答案