My Oracle Support Banner

java.lang.ClassNotFoundException at runtime when trying to run an MFT Custom Callout (Doc ID 2270836.1)

Last updated on SEPTEMBER 07, 2018

Applies to:

Oracle Managed File Transfer - Version 12.1.3.0.0 and later
Information in this document applies to any platform.

Symptoms

When MFT tries to invoke a Custom Callout for file preprocessing, it fails with a ClassNotFoundException.

This happens even though the necessary jar file, and config XML file, are correctly located in the configured MFT Server Properties -> Callout Directory :-

bash-4.1$ pwd
/u01/path/to/my/callouts
bash-4.1$ ls -l
total 8
-rw-r--r-- 1 oracle oracle 2261 May 25 22:48 PeterwTestMFTcallout.jar
-rw-r--r-- 1 oracle oracle 1303 May 25 22:48 PeterwTestMFTcallout.xml
bash-4.1$

At runtime there is a java.lang.ClassNotFoundException :-

[2017-05-26T12:04:19.327+00:00] [mftserver_1] [ERROR] [] [oracle.mft.ENGINE] [tid: JCA-work-instance:JMSAdapter38] [userId: <anonymous>] [ecid: 5986b6e4-2bce-6303-70ca-e923985713e4-000012b4,0:9:51] [APP: mft-app] [FlowId: 0000Lk_jOxQ5mZz5x3p2iW1P82zX000001] Eror while target message processing[[
MFTException [threadName=JCA-work-instance:JMSAdapter-1, errorID=cbe421c7-fc47-407f-86df-e4fd36cfff8f, errorDesc=MFT-4401_Exception encountered during execution of callout PeterwTestMFTcallout., cause=com.oracle.callout.sample.PeterwTestMFTcallout]
at oracle.tip.mft.engine.processsor.plugin.PluginExecutor.executePreProcessingFunction(PluginExecutor.java:1332)
at oracle.tip.mft.engine.processsor.plugin.PluginExecutor.executePreProcessingFunctions(PluginExecutor.java:686)
at oracle.tip.mft.engine.processsor.plugin.PluginExecutor.executePreProcessingFunctions(PluginExecutor.java:510)
.
.
.
Caused by: java.lang.ClassNotFoundException: com.oracle.callout.sample.PeterwTestMFTcallout
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at oracle.tip.mft.engine.processsor.plugin.PluginExecutor.getCalloutClass(PluginExecutor.java:264)
at oracle.tip.mft.engine.processsor.plugin.PluginExecutor.executePreProcessingFunction(PluginExecutor.java:1318)


If the same files are copied to a different directory, eg. /tmp (and the MFT Server Properties -> Callout Directory configured appropriately) then the custom callout can be called by MFT successfully.

Cause

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


In this Document
Symptoms
Cause
Solution
References


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.