JAVA

configuration Apache, Zend et PHP , Web services
Répondre
davbail
Messages : 5
Enregistré le : jeu. 22 mars 2007, 14:43:06

JAVA

Message par davbail »

Bonjour,

Depuis notre site web (développé à l'aide de phlWeb), je dois faire appel à une application développée en JAVA.

J'ai donc créé un programme RPG qui fait référence à mes classes java situées dans un fichier .jar dans un dossier JAVA à la racine de mon IFS. (j'ai donc renseigné la variable environnement CLASSPATH). Lorsque j'appel mon programme depuis l'as400, je n'ai pas de problème ; le programme reconnait mes classes java et il s'éxecute normalement.

Maintenant, je souhaite appeler ce programme depuis une interface phlWEB. Depuis phlweb il existe une fonction "CallPgm400" qui permet l'exécution d'un programme RPG. Lorsque mon programme se lance il se plante... en fait il n'arrive pas à trouver mes classes.

Dans l'historique de mon travail, j'ai le message suivant :

ID message . . . . . . : JVAB529 Gravité . . . . . . . : 40
Type de message . . . : Diagnostic
Date d'envoi . . . . . : 22/03/07 Heure d'envoi . . . . : 11:17:23

Message . . . . : Droit public en écriture sur ".".
Cause . . . . . : Le répertoire "." du chemin de classe possède le droit
public en écriture. Si dans un répertoire, plusieurs fichiers de classe
possèdent le même nom, le premier fichier trouvé est exécuté.
Que faire . . . : Si CHKPATH(*SECURE) est indiqué, l'exécution de la
commande ne peut pas aboutir si un répertoire du chemin de classe possède le
droit public en écriture. Demandez à l'administrateur qu'il retire ce droit
sur le répertoire "." ou modifiez CHKPATH et relancez la commande.
Si le répertoire "." conserve le droit public en écriture et que
CHKPATH(*SECURE) n'est pas indiqué, vérifiez les classes qui sont exécutées
lorsque le paramètre OPTION est défini par la valeur *VERBOSE, puis relancez
la commande.

puis ensuite celui-ci :

ID message . . . . . . : RNX0301 Gravité . . . . . . . : 50
Type de message . . . : Arrêt programme
Date d'envoi . . . . . : 22/03/07 Heure d'envoi . . . . : 11:17:24

Message . . . . : Erreur Java reçue à l'appel de la méthode Java.
Cause . . . . . : La procédure RPG IPGEQUA1 du programme PHLDEV/IPGEQUA1 a
reçu une erreur Java "java.lang.NoClassDefFoundError:
fr/arsoebr/routeurequarrissage/client/PreparateurDonnees" en appelant la méthode "<init>" avec la signature "(Ljava.lang.String;Ljava.lang.String;)V" dans la classe "fr.arsoebr.routeurequarrissage.client.PreparateurDonnees".
Que faire . . . : Prenez contact avec le responsable de la maintenance
logicielle afin d'identifier la cause de l'incident.
Technical description . . . . . . . . : If the exception indicates that the
Java class was not found, ensure the class for the method is in the class
path. If the exception indicates that the Java method was not found, check the method name and signature. If the signature is not correct, change the RPG prototype for the method, or change the Java method, so that the return type and parameter types match. You can determine the signatures for all the methods in class XYZ using command QSH CMD('javap -s XYZ').

Je n'arrive pas à comprendre pourquoi mon programme se plante (concrètement il ne trouve pas mes classes ou il n'a pas le droit d'y accéder) depuis phlWEB alors que depuis l'AS, l'exécution du programme se fait correctement. J'utilise le même profil, donc les mêmes droits, dans les deux cas.

Est ce que quelqu'un à une idée sur les causes de mon problème.

Merci d'avance pour vos réponses.

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

CLASSPATH limité à un travail.

Message par cmasse »

qu'en est-il du CLASSPATH ?

la variable d'environnement est valable pour UNE session uniquement et n'a donc pas de répercussion sur l'environnement de PHLWEB (j'imagine).

il est préférable de regarder dans ce cas systemDefault.properties


http://publib.boulder.ibm.com/infocente ... dpropf.htm
Christian Massé (Volubis.fr)

davbail
Messages : 5
Enregistré le : jeu. 22 mars 2007, 14:43:06

(sans texte)

Message par davbail »

Bonjour,

Comment se fait-il que je ne dispose pas du fichier SystemDefault.properties dans mon IFS (à cet emplacement : /QIBM/UserData/Java400) ?

davbail
Messages : 5
Enregistré le : jeu. 22 mars 2007, 14:43:06

(sans texte)

Message par davbail »

Je viens de créer un fichier /QIBM/UserData/Java400/SystemDefault.properties contenant la ligne suivante :
java.class.path=.:/java:/java/ModuleJava1.0.0.jar

et cela fonctionne, mes classes sont reconnues depuis mon appli phl.

Répondre