事件前处理程序 - IBM Connections

时间:2016-07-20 04:12:02

标签: ibm-connections

我想在IBM Connections中捕获文件上载事件,并采取一些措施。如果满足特定条件,则该文件应存储在系统中,否则应通过消息拒绝。

为此,我正在探索IBM Connections SPI(事件前处理程序挂钩)。我按照文档的要求执行了必要的步骤来创建jar,部署和更改配置,但是当文件上传到Connections时,我的代码似乎没有被调用。

不确定问题在哪里,因为我也没有收到任何错误。

PS:我尝试了Post Event处理程序钩子,它运行成功。

以下是摘录

public class PreHandlerEvents implements PreEventHandler{
    @Override
    public void destroy() {
        // TODO Auto-generated method stub

    }

    @Override
    public void handleEvent(MutableEvent arg0) throws EventHandlerException {

        String content = "This is the content to write into file";
        File file = new File("filenamePre.txt");

        // if file doesnt exists, then create it
        if (!file.exists()) {
            try {
                file.createNewFile();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

        FileWriter fw;
        try {
            fw = new FileWriter(file.getAbsoluteFile());
            BufferedWriter bw = new BufferedWriter(fw);
            bw.write(content);
            bw.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

事件-config.xml中

<preHandler enabled="true" name="PreHandlerEvents" class="com.connections.PreHandlerEvents">
        <subscriptions>
            <subscription source="*" type="*" eventName="*"/>
        </subscriptions>
    </preHandler>
</preHandlers>

1 个答案:

答案 0 :(得分:0)

也许而不是PreEventHandler,您可以在EventHandler中使用<preHandler .../>

示例代码:

public class CustomEventHandler implements EventHandler {

    public void init() throws EventHandlerInitException {}

    public void destroy() {}

    @Override
    public void handleEvent(Event event) throws EventHandlerException {
        System.out.println(" +++ Event: " + event.getName());
    }
}