Problème LinkageError loader
Bonjour,
Je travail actuellement sur un Serveur vocal interactif (SVI).
Le programme est en JAVA, et tourne sur un IPBX (commutateur téléphonique sur IP).
J'ai donc mon code source java (SVI.java) que j'ai compilé (SVI.class) sans erreurs :ccool:
Ensuite il faut se rendre sur l'IPBX est charger le programme (le fichier .class)
et c'est la que ça coince :roll:
Problème : Pour tester mon programme, je ne pouvais pas l'appeler SVI.java car il existe déjà un programme nommé SVI actuellement sur l'IPBX.
J'ai donc décidé de l'appeler autrement (SVIMax.java) et forcement j'ai renommé dans le code ma classe: public class SVI extends AutomataToolkit {......//programme
}
par : public class SVIMax extends AutomataToolkit {....
//programme
}
Je compile donc mon fichier SVIMax.java pour obtenir SVIMax.class toujours sans erreurs de compilation (avec javac)
Ensuite je charge mon programme SVIMax.class sur l'ipbx et là badaboom
Problème...
voici le log java de l'IPBX
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| 2010/05/03-17:06:51.111 >>>>>>>>>>>>>>>>>>>>> Specific path=false
2010/05/03-17:06:51.115 [IVR] path=/usr/ipbx/centile/domains/GroupAtribu/GroupCustomization/services
2010/05/03-17:06:51.115 [IVR] path=/usr/ipbx/IntraSwitch/services
2010/05/03-17:06:51.125 [IVR] Read prog : SVI
2010/05/03-17:06:51.140 [IVR] Read prog : SVI 240909
2010/05/03-17:06:51.141 Throwable error
java.lang.LinkageError: loader (instance of com/netergynet/ivr/ivrmotor/FileLoader): attempted duplicate class definition for name: "SVI"
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at com.netergynet.ivr.ivrmotor.FileLoader.findClass(FileLoader.java:261)
at com.netergynet.ivr.ivrmotor.FileLoader.readProg(FileLoader.java:75)
at com.netergynet.ivr.ivrmotor.FileLoader.readProg(FileLoader.java:48)
at com.netergynet.ivr.ivrmotor.IvrPhonelet.readJavaProg(IvrPhonelet.java:717)
at com.netergynet.ivr.ivrmotor.IvrPhonelet.reloadPath(IvrPhonelet.java:829)
at com.netergynet.ivr.ivrmotor.IvrPhonelet.startIvr(IvrPhonelet.java:472)
at com.netergynet.ivr.ivrmotor.IvrPhonelet.init(IvrPhonelet.java:363)
at com.odisei.server.servicemanager.ServiceManagerImpl.startPhonelet(ServiceManagerImpl.java:2289)
at com.odisei.server.servicemanager.ServiceManagerImpl.startPhonelets(ServiceManagerImpl.java:2186)
at com.odisei.server.servicemanager.ServiceManagerImpl.<init>(ServiceManagerImpl.java:484)
at com.odisei.server.servicemanager.ServiceManagerImpl.main(ServiceManagerImpl.java:1275) |
Alors je me pose la question de savoir d'où peut venir cette erreur :
Code:
java.lang.LinkageError: loader (instance of com/netergynet/ivr/ivrmotor/FileLoader): attempted duplicate class definition for name: "SVI"
Et je ne comprends pas trop cette erreur, j'ai bien importé ma librairie com/netergynet/ivr/ivrmotor lors de la compilation
Le problème vient-il d'une librairie manquante à la compilation de mon fichier SVIMax?
ou alors parce que j'ai renommé ma classe SVIMax ?
ou autre chose encore...
merci,