AXOPEN

opx2.opx2 introuvable : erreur de chargement de l’applet java Planisware

class_not_found

Description de l’erreur « opx2.opx2 introuvable »

Cet article explique présente un problème classique de non chargement de l’applet java. En général, cela se manifeste dans la console Java par un message du type «  classe opx2.opx2 introuvable » ou « applet not inited ».

Exemple :

	Java Plug-in 1.6.0_26 
	Utilisation de la version JRE 1.6.0_26 Java HotSpot(TM) Client VM 
	Répertoire d'accueil de l'utilisateur = C:\Users\MY_USER 
	---------------------------------------------------- 
	c:   effacer la fenêtre de la console 
	f:   finaliser les objets de la file d'attente de finalisation 
	g:   libérer la mémoire 
	h:   afficher ce message d'aide 
	l:   vider la liste des chargeurs de classes 
	m:   imprimer le relevé d'utilisation de la mémoire 
	o:   déclencher la consignation 
	p:   recharger la configuration du proxy 
	q:   masquer la console 
	r:   recharger la configuration des politiques 
	s:   vider les propriétés système et déploiement 
	t:   vider la liste des threads 
	v:   vider la pile des threads 
	x:   effacer le cache de chargeurs de classes 
	0-5: fixer le niveau de traçage à <n> 
	---------------------------------------------------- 
	charger : classe opx2.opx2 introuvable. 
	java.lang.ClassNotFoundException: opx2.opx2 
	        at sun.applet.AppletClassLoader.findClass(Unknown Source) 
	        at java.lang.ClassLoader.loadClass(Unknown Source) 
	        at sun.applet.AppletClassLoader.loadClass(Unknown Source) 
	        at java.lang.ClassLoader.loadClass(Unknown Source) 
	        at sun.applet.AppletClassLoader.loadCode(Unknown Source) 
	        at sun.applet.AppletPanel.createApplet(Unknown Source) 
	        at sun.plugin.AppletViewer.createApplet(Unknown Source) 
	        at sun.applet.AppletPanel.runLoader(Unknown Source) 
	        at sun.applet.AppletPanel.run(Unknown Source) 
	        at java.lang.Thread.run(Unknown Source) 

Explications et pistes de résolution

En général il s’agit d’un problème d’accès aux ressources java sur le serveur d’application (ie. les fichiers du répertoire « ../OPX2HttpRoot/java/ ».

Les problèmes d’accès proviennent le plus souvent des 3 points suivants :

  • Les droits système sur le répertoire et ses fichiers. En effet ceux-ci doivent être lisibles par l’utilisateur lançant les services apache.
  • Les droits d’accès gérés dans la configuration apache. En effet si on est amené à tuner la configuration apache (exigences de sécurité d’entreprise par exemple) il faut bien veiller ce que les ressources du directory ../java soient bien accessibles.
  • Les déclarations des variables Java dans les fichiers .ini . En effet, celles-ci doivent être déclarées par exemple dans l’intranet.ini.

Dans les 2 premiers cas, on peut vérifier l’accessibilité des ressources Java en chargeant les URL du type suivant dans un navigateur (à adapter en fonction de votre installation Planisware) :

http://<server>:<port_apache>/<nom_instance_plw>/java/opx2.jar

http://<server>:<port_apache>/<nom_instance_plw>/java/opx2.class

http://<server>:<port_apache>/<nom_instance_plw>/java/version.txt

Avec :

<server> : ip ou dns de votre server

<port_apache> : port de l’instance apache

<nom_instance_plw> : nom de l’instance Planisware

On regarde ensuite dans les logs de l’instance Apache si on a des erreurs indiquant pourquoi on arrive pas à accéder à l’une ou l’autre des ressources java (configuration Apache ou droits sur les répertoires et fichiers).

Note : il peut aussi s’agir d’un cache corrompu sur le poste client. Dans ce cas il sera nécessaire de purger le cache du client lourd sur le poste bureautique.

Dans le dernier cas, on peut vérifier les déclarations des variables Java en éditant le fichier intranet.ini.

Les lignes suivantes doivent être présentes :

(setq REPORT-OBJECTS::*USE-HTTP-SERVER-FOR-JAVA-DOCS* nil)
(setq report-objects::*use-http-server-for-java-class* t)
(setq report-objects::*java-directory* « /logiciels/planisware/P5SP3/<nom_instance_plw>/OPX2HttpRoot/java »)
(setq report-objects::*java-url-address* « ../../java »)

Avec :

<nom_instance_plw> : nom de l’instance Planisware