[Résolu] Passer ma classe à un programme externe

Pierro
[Résolu] Passer ma classe à un programme externe

Bonjour,

Je suis en train de dévelloper une appli et je me sert de iReports pour générer mes états.
Mon problème est que je voudrais qu'il se serve d'une collection de beans en source de donnée. Pour ça il me demande la classe générant la collection de beans. Et là je n'arrive pas à lui passer ma classe.

Il me renvoie toujours une exception comme quoi il ne trouve pas la classe. Ca doit être tout bête mais je ne trouve pas comment lui spécifier ma classe. J'ai essayé en lui donnant juste le nom de la classe ou avec le chemin absolu (entre guillemets).

J'ai pas réussi à trouver l'info sur le net probablement parce que je ne sais pas trop quoi chercher :). Donc si quelqu'un à une idée...

fredericmazue

Avant tout que veut dire programme *externe* ?
Le terme externe m'inquiète. Heu le terme programme aussi d'ailleurs

Quote:
Il me renvoie toujours une exception

Qui "il" :?:

Quote:
J'ai essayé en lui donnant juste le nom de la classe ou avec le chemin absolu (entre guillemets).

:?: :?: :?:
Bon va falloir que tu sois un peu plus explicite dans ta question ...
Parce que là ta question elle est comme l'iceberg qui a coulé le titanic. On en voit même pas la face émergée :lol:

Pierro

:D

Ok, bon par programme externe j'entens une application qui ne fait pas partie de l'application que je développe.
En fait iReport me permet de spécifier une source de donnée (un fichier xml, une base de donnée, une collection de beans,...) puis de faire un rapport avec une interface WYSIWYG. iReport va ensuite 'compiler' le rapport pour générer en sortie un fichier xml. iReport a également des librairies pouvant être importée dans un projet java permettant d'interpréter le fichier xml.
Le but est de générer le rapport depuis mon application avec juste quelques appels aux méthodes de ces librairies.

Mon soucis est que je ne parviens pas spécifier une source de donnée à partir d'une collection de beans. Lors de la création de cette source, iReport me demande de saisir ma classe qui va générée la collection de beans dans un champs de texte (ce que je fais, mais pas correctement apparament) ainsi que la méthode static permettant à iReport de récupérer cette collection. C'est au moment où je presse le boutton permettant de tester la source de donnée que iReport m'affiche une boîte de dialogue me disant qu'il ne trouve pas ma classe.

Par défaut le champ de saisie à une valeur (à titre d'exemple je suppose) qui ressemble à quelque chose comme :
projet.package.classe
(Je n'est pas iReport sous la main pour vérifier)

J'ai essayer de faire de même avec ma classe, mais ça n'a pas fonctionné. Peut-être est ce à cause de mon class path ? Je ne sais pas... D'ailleur je ne sais pas non plus comment le visualiser et éventuellement le modifier.
Config : Win xp et NetBeans.

Voilà, j'espère que l'iceberg à gagné en visibilité :wink:.

fredericmazue
ATH

Quote:
Report a également des librairies pouvant être importée dans un projet java permettant d'interpréter le fichier xml.

Bon mais ça, ça ne concerne pas directement ta question si je comprends bien.
Quote:
ainsi que la méthode static permettant à iReport de récupérer cette collection.

Pourquoi static, on se le demande. Mais bon peu importe dans le cas présent je pense. Enfin quoique...
Quote:
J'ai essayer de faire de même avec ma classe, mais ça n'a pas fonctionné. Peut-être est ce à cause de mon class path ?

C'est en effet dans cette direction qui faut chercher avant tout AMHA.

Quote:
Config : Win xp et NetBeans.

Seulement attention. Si je comprends bien, c'est le classpath tel qu'il est vu par IReport qu'il faut vérifier. Ce n'est pas nécessairement le même que le %CLASSPATH% de XP et encore moins le classpath de Netbeans.
N'y a-t-il pas quelque part un fichier de config pour dire à IReport comment constituer son classpath. (moyennant de le relancer aussi)
Et attention. Tu parles beaucoup de JavaBean. Peut être que le message d'erreur de IReport n'est pas très explicite. Peut être qu'il trouve la classe, trouve aussi que ce n'est pas un Javabeans bien formé (absence de constructeur par défaut par exemple) et peut être alors qu'il émet une erreur.
hmmm. Cette histoire de méthode static me parait un peu incongrue. Je me demande si ça ne cache pas quelque chose ça.
Pierro

fredericmazue wrote:
Bon mais ça, ça ne concerne pas directement ta question si je comprends bien.

Effectivement, c'était juste pour expliquer comment ça fonctionne.
fredericmazue wrote:
Seulement attention. Si je comprends bien, c'est le classpath tel qu'il est vu par IReport qu'il faut vérifier. Ce n'est pas nécessairement le même que le %CLASSPATH% de XP et encore moins le classpath de Netbeans.
N'y a-t-il pas quelque part un fichier de config pour dire à IReport comment constituer son classpath. (moyennant de le relancer aussi)

Ca je ne sais pas trop, j'y jetterai un oeil ce soir pour être plus précis à ce sujet.
fredericmazue wrote:
Et attention. Tu parles beaucoup de JavaBean. Peut être que le message d'erreur de IReport n'est pas très explicite. Peut être qu'il trouve la classe, trouve aussi que ce n'est pas un Javabeans bien formé (absence de constructeur par défaut par exemple) et peut être alors qu'il émet une erreur.

Bon je dois bien avouer que c'est la première fois que j'utilise iReport et que la notion de JavaBean est aussi une découverte ^^. Du coup je ne suis effectivement pas sûr que mon JavaBean soit bien formé. J'essairai de voir si le message d'erreur est bien ce qu'il prétend être, sinon j'irai voir ce qui peut ne pas coller dans mon JavaBean.
fredericmazue wrote:
hmmm. Cette histoire de méthode static me parait un peu incongrue. Je me demande si ça ne cache pas quelque chose ça.

Hum, je ne sais pas. De toute façon, iReport ne me laisse pas vraiment le choix...
Pierro

Salut, le problème est réglé.

fredericmazue wrote:
Seulement attention. Si je comprends bien, c'est le classpath tel qu'il est vu par IReport qu'il faut vérifier. Ce n'est pas nécessairement le même que le %CLASSPATH% de XP et encore moins le classpath de Netbeans.
N'y a-t-il pas quelque part un fichier de config pour dire à IReport comment constituer son classpath. (moyennant de le relancer aussi)

Ouais ben c'était bien ça. J'ai trouvé comment changer le class path de iReport. Bon c'était pas bien compliqué, suffisait d'aller dans 'Options-->Chemin de classes' dans le menu, mais j'étais passé à côté. Je cherchais 'Class Path' dans 'Options-->Paramètres', pis je devais pas être bien réveillé pour pas l'avoir vu. Bref, le message d'erreur était par contre bien explicite, et maintenant il trouve bien ma classe.

Merci en tout cas de t'être penché sur mon problème et d'avoir confirmé et précisé le chemin de la solution.

Pierro wrote:
Du coup je ne suis effectivement pas sûr que mon JavaBean soit bien formé.

Par contre je suis maintenant sûr qu'il n'est pas bien formé :D.
A moins que le problème vienne de la méthode (la static :wink:) qui génère et retourne la collection. Mais je vois pas vraiment pourquoi ça pourrait venir de là. Pour le coup, l'erreur n'est pas très parlante...
[Edit] J'ai oublié de préciser que l'erreur est également générée lors du test de la source de donnée lors de sa création dans iReport. [/Edit]
Quote:
UnexpectedException
MaClasse.MaMethode()

Bref je vais peut-être avoit besoin d'un petit coup de main... J'essairai de penser à prendre le code de mon Bean pour le poster demain. D'ici là je vais tâcher de voir ce qui cloche.

[Edit] En fait le bean était bon, il m'a juste fallu redémarrer iReport pour que ça fonctionne. Probablement que iReport n'avait pas pris en compte les dernières modifications dans mon jar que j'avais ajouté au class path. [/Edit]