Class IbisJavaSender
- All Implemented Interfaces:
FrankElement,HasApplicationContext,HasName,HasPhysicalDestination,IConfigurable,IScopeProvider,ISender,ISenderWithParameters,IWithParameters,NameAware,org.springframework.beans.factory.Aware,org.springframework.context.ApplicationContextAware,org.springframework.context.Lifecycle
An IbisJavaSender makes a call to a Receiver with a JavaListener
or any other application in the same JVM that has registered a RequestProcessor with the IbisServiceDispatcher.
FrankSender.
configuring IbisJavaSender and JavaListener
- NB: Using IbisJavaSender to call another adapter is inefficient and therefore not recommended. It is much more efficient to use for this a
FrankSenderorIbisLocalSender. - Define a
SenderPipewith an IbisJavaSender - Set the attribute
serviceNameto yourExternalServiceName
- Define a Receiver with a JavaListener
- Set the attribute
serviceNameto yourExternalServiceName
- Since:
- 4.4.5
- Author:
- Gerrit van Brakel
- Parameters
- All parameters are copied to the PipeLineSession of the service called.
-
Field Summary
Fields inherited from class org.frankframework.senders.AbstractSenderWithParameters
parameterNamesMustBeUnique, paramListFields inherited from class org.frankframework.senders.AbstractSender
log -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidConfigure this component.booleanWhentrue, the result of sendMessage is the reply of the request.sendMessage(Message message, PipeLineSession session) Send a message to some destination (as configured in the Sender object).voidsetDispatchType(String type) Set to 'DLL' to make the dispatcher communicate with a DLL set on the classpathvoidsetReturnedSessionKeys(String string) Comma separated list of keys of session variables that will be returned to caller, for correct results as well as for erroneous results.voidsetServiceName(String string) ServiceName of theJavaListenerthat should be called.voidsetServiceNameSessionKey(String string) Key of session variable to specify ServiceName of the JavaListener that should be called.Methods inherited from class org.frankframework.senders.AbstractSenderWithParameters
addParameter, checkStringAttributeOrParameter, consumesSessionVariable, getParameterList, getParameterOverriddenAttributeValue, getParameterOverriddenAttributeValue, getParameterValueListMethods inherited from class org.frankframework.senders.AbstractSender
createBean, getLogPrefix, getName, isRunning, setApplicationContext, setName, start, stopMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.context.ApplicationContextAware
setApplicationContextMethods inherited from interface org.frankframework.core.FrankElement
addConfigWarningMethods inherited from interface org.frankframework.core.HasApplicationContext
getApplicationContext, getConfigurationClassLoaderMethods inherited from interface org.frankframework.core.ISender
sendMessageOrThrow, start, stop
-
Constructor Details
-
IbisJavaSender
public IbisJavaSender()
-
-
Method Details
-
configure
Description copied from interface:IConfigurableConfigure this component.configure()is called once at startup of the framework in the configure method of the owner of thisIConfigurable. Purpose of this method is to check whether the static configuration of the object is correct. As much as possible class-instantiating should take place in theconfigure(), to improve performance.In the case of a container, this will propagate the configure signal to all components that apply.
- Specified by:
configurein interfaceIConfigurable- Overrides:
configurein classAbstractSenderWithParameters- Throws:
ConfigurationException- in case it was not able to configure the component.
-
getPhysicalDestinationName
- Specified by:
getPhysicalDestinationNamein interfaceHasPhysicalDestination
-
isSynchronous
public boolean isSynchronous()Description copied from interface:ISenderWhentrue, the result of sendMessage is the reply of the request.- Specified by:
isSynchronousin interfaceISender
-
sendMessage
@Nonnull public SenderResult sendMessage(@Nonnull Message message, @Nonnull PipeLineSession session) throws SenderException, TimeoutException Description copied from interface:ISenderSend a message to some destination (as configured in the Sender object). This method may only be called after theconfigure()method is called.The following table shows the difference between synchronous and a-synchronous senders:
synchronous a-synchronous ISender.isSynchronous()returnstruefalsereturn value of sendMessage()isthe reply-message the messageId of the message sent the correlationID specified with sendMessage()may be ignored is sent with the message a {link TimeOutException} may be thrown if a timeout occurs waiting for a reply should not be expected Multiple objects may try to call this method at the same time, from different threads. Implementations of this method should therefore be thread-safe, or
synchronized.- Specified by:
sendMessagein interfaceISender- Throws:
SenderExceptionTimeoutException
-
setServiceName
ServiceName of theJavaListenerthat should be called. -
setServiceNameSessionKey
Key of session variable to specify ServiceName of the JavaListener that should be called. -
setReturnedSessionKeys
Comma separated list of keys of session variables that will be returned to caller, for correct results as well as for erroneous results. The set of available sessionKeys to be returned might be limited by the returnedSessionKeys attribute of the corresponding JavaListener. -
setDispatchType
Set to 'DLL' to make the dispatcher communicate with a DLL set on the classpath- Throws:
ConfigurationException
-