The predefined invocation implementation is implemented and specified in the XML file. You can use InvokerFactory to obtain an invoker instance that implements Invoker interface.
public interface Invoker { public Object execute(Object[] objs) throws Exception; public Object execute(Object[] objs, long timeout) throws Exception; public Object execute(Object[] objs, CallBackPoint cb, long timeout) throws Exception; }
public interface CallBackPoint { public void onCallBack(Object result); public void onTimeout(); public void onError(Exception e); }
<kColl id="invoker"> <kColl id="classTable"> <field id="POJO" value="com.ibm.btt.invoker.pojo.POJOInvoker" /> <field id="EJB" value="com.ibm.btt.invoker.ejb.EJBInvoker" /> <field id="WSProxy" value="com.ibm.btt.invoker.ws.WSProxyInvoker" /> <field id="WSDII" value="com.ibm.btt.invoker.ws.dynamic.WSDynamicInvoker" /> <field id="JMS" value="com.ibm.btt.invoker.jms.JMSInvoker" /> </kColl> <field id="initializer" value="com.ibm.btt.invoker.InvokerInitializer"/> <field id="extFile" value="invoker.xml"/> </kColl>
<?xml version="1.0" encoding="UTF-8"?> <invoker.xml> <props id="classTable"> <entry key="parameters" value="java.util.LinkedHashMap" /> <entry key="parameter" value="com.ibm.btt.invoker.Parameter" /> <entry key="invokerProcessor" value="com.ibm.btt.invoker.InvokerProcessor" /> </props> <list id="elementProcessors"> <invokerProcessor> <map Injection="defaults"> <entry key="POJO"> <ref Injection="value" refId="POJODefaults" /> </entry> <entry key="EJB"> <ref Injection="value" refId="EJBDefaults" /> </entry> <entry key="WSProxy"> <ref Injection="value" refId="WSProxyDefaults" /> </entry> <entry key="WSDII"> <ref Injection="value" refId="WSDII_Defaults" /></entry> </map> </invokerProcessor> </list> <props id="POJODefaults"> <entry key="method" value="execute" /> </props> <props id="EJBDefaults"> <entry key="method" value="execute" /> <entry key="eJBLocation" value="iiop://localhost:2809" /> </props> <props id="WSProxyDefaults"> <entry key="method" value="execute" /> </props> <POJO id="assert" beanName="com.ibm.btt.ut.Asset" method="getCount"> <parameters> <parameter id="input" type="java.lang.String" /> </parameters> </POJO> <WSDII id="testWS" wsdlURL=http://localhost:9083/WebServiceProviderWeb/wsdl/BTTtestWebServiceSOAPForAXIS.wsdl operation="NewOperation" /> <JMS id="packageSendAndRecv" connectionFactory="jms/TheConnectionFactory" sendDestination="PackageReceivedModule/JMSClientExport_RECEIVE_D" receiveDestination="PackageReceivedModule/MDBImport_SEND_D" />