【发布时间】:2013-06-20 22:52:38
【问题描述】:
我制作了一个自定义中介,它只打印“Hello World”,我的自定义中介看起来像这样:
public class HelloWorld extends AbstractMediator implements ManagedLifecycle{
public static void helloWorld() {
System.out.println("Hello World");
}
public void init(SynapseEnvironment synapseEnvironment) {
// initializing surcharges map with some symbols
helloWorld();
}
public void destroy() {
// clearing the surcharges contents
}
@Override
public boolean mediate(MessageContext arg0) {
// TODO Auto-generated method stub
return false;
}
}
我将这个类依次称为“Hello”:
<sequence name="Hello">
<class name="com.exec.HelloWorld">
</class>
我在代理中使用这个序列:
<proxy xmlns="http://ws.apache.org/ns/synapse" name="FileProxy" transports="vfs" startOnLoad="true" trace="disable">
<target>
<inSequence>
<log level="full"/>
<target sequence="Hello"/>
</inSequence>
</target>
<parameter name="transport.vfs.ActionAfterProcess">MOVE</parameter>
<parameter name="transport.PollInterval">15</parameter>
<parameter name="transport.vfs.MoveAfterProcess">file:///Users/Source</parameter>
<parameter name="transport.vfs.FileURI">file:///Users/Target/</parameter>
<parameter name="transport.vfs.FileNamePattern">.*.txt</parameter>
<parameter name="transport.vfs.ContentType">text/plain</parameter>
我希望每次我在源文件夹中放置一个文件 (*.txt) 时都会调用我的序列。但问题是该序列只被调用一次(当 wso2 esb 启动时)。每次将文件放入源文件夹时,如何调用我的序列?
谢谢,
【问题讨论】: