NoClassDefFoundError in calling a java class from a nodejs service
Je travaille actuellement sur l'intégration d'un moteur d'OCR ABBYY dans une application JavaScript et je rencontre un problème que je n'arrive pas à le résoudre.
Si vous pouvez m'aider ça sera très gentil.
Le script qui fait appel au moteur est écrit en JAVA dans un fichier Hello.java,
J'ai écrit un fichier de script cmd que je l'exécute depuis un code javascript.
Cmd file
Code:
1 2 3 4
|
@echo off
call SetEnv.cmd
"%JDK%\bin\java" -classpath ".;..\..\ABBYY\inc\Java\com.abbyy.FCEngine.jar" Hello |
Javascript file
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| module.exports.getFicheImpotDataFromOcr = function (req, res) {
//run a cmd file
var spawn = require('child_process').spawn
, ls = spawn('cmd.exe', ['/c', 'Run.cmd']);
ls.stdout.on('data', function (data) {
console.log('stdout: ' + data);
// if (data == 'Done') console.log('OKKKKKKKK');
});
ls.stderr.on('data', function (data) {
console.log('stderr: ' + data);
});
ls.on('exit', function (code) {
console.log('child process exited with code ' + code);
});
res.send("obj");
} |
La solution s'exécute normalement, mais une fois l'intégré dans un service javascript REST, au moment de la consommation du service une exception JAVA se manifeste.
Ci-dessous l'imprime écran de l'exception
Citation:
stderr: Exception in thread "main"
stderr: java.lang.NoClassDefFoundError: com/abbyy/FCEngine/Engine
stderr: at Hello.main(Hello.java:15)
stderr: Caused by: java.lang.ClassNotFoundException:
com.abbyy.FCEngine.Engine
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
stderr: at
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more