我想在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>
答案 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());
}
}