IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Forms Oracle Discussion :

[Forms10G] JavaBean et dé-register


Sujet :

Forms Oracle

  1. #1
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 32
    Par défaut [Forms10G] JavaBean et dé-register
    Bonjour,

    Tout d'abord désolé pour ce titre qui est un peu vaseux, mais j'avoue ne pas trouver mieux.

    J'explique mon cas. Sous Forms 10G, je me sers du JavaBean fileupload trouvé sur le site d'Oracle pour transférer des fichiers txt depuis le poste utilisateur (windows) vers le serveur d'application (Unix).

    Ce JabaBean fonctionne correctement, mais j'ai un cas d'erreur que je n'arrive pas à résoudre. Voilà la cinématique qui fait planter l'appli :
    1- Je me connecte à mon appli, je passe sur l'écran A qui contient mon JavaBean. J'upload des fichiers, tout se passe bien.
    2- J'ouvre tout autre écran de mon appli, sans quitter le précédent.
    3- J'ouvre un nouvel écran A (le premier n'est toujours pas fermé) et tente d'appeler mon JavaBean d'upload de fichier -> Plantouille de mon applet et donc de IE.

    Je pense que ceci est du au fait que j'enregistre une deuxième fois le JavaBean alors qu'il est toujours "actif" dans le premier écran. Pouvez-vous confirmer ? Dans ce cas, comment faire pour que des multiples instances de mon JavaBean ne plantent pas ? Si ce n'est pas ça, quelle pourrait-être la cause de ce problème ?

    Pour info, je n'utilise pas FBEAN.REGISTER mais renseigne directement la classe dans les propriétés du Bean et appelle mes methodes via GET_CUSTOM_PROPERTY et SET_CUSTOM_PROPERTY.

    Merci d'avance à ceux qui pourront étudier mon cas.

  2. #2
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 32
    Par défaut
    Bonjour,

    Je me permet de remonter mon topic, j'ai toujours ce probleme de Javabean qui fait planter IE lorsque je le réinvoque à partir d'une autre fenêtre...

    Je n'ai pas vraiment trouvé de piste lors de mes recherches...

    Merci d'avance, tout idée / suggestion sera la bienvenue, là je coince...

  3. #3
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Utilisez la librairie Webutil et les fonctions de son paquetage : file_transfert

  4. #4
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 32
    Par défaut
    J'ai oublié de dire : je n'ai malheureusement pas le droit d'utiliser la si pratique librairie WebUtil... Ca se complique hein

  5. #5
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Et le plantage ressemble à quoi ? quelque chose dans la console Java ?

  6. #6
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 32
    Par défaut
    La console ne m'affiche rien puisque IE freeze et je dois le terminer à la rude dans le gestionnaire des taches.

    En gros, comme précisé dans le premier post, les utilisations du Bean lors du 1er affichage de l'écran fonctionnent. Par contre, après une navigation dans d'autres écrans, si je reviens sur mon écran (ou si j'en ouvre un 2ème similaire), l'appel à mon Bean fait "mouliner" forms puis IE ne répond plus.

  7. #7
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Vous avez essayer d'ouvir un SR du coté de Metalink?

  8. #8
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 32
    Par défaut
    Non, je voulais avoir déjà un peu de retour d'ici, des fois que mon cas évoque des souvenirs à quelqu'un...

    Je vais donc ouvrir ma SR, mais je me demandais quand même si ma piste énoncée dans mon premier post pouvait être plausible. Un JavaBean peut-il être instancié une seconde fois dans la même session forms alors que le premier "vit" toujours ? Est-ce possible dans ce cas, lors du pre-form ou when-new-form-instance, de détecter l'activité de ce JavaBean et de l'arrêter (peut-être du côté de la méthode destroy() du package VBean) ?

  9. #9
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Oui, un Java Bean peut être instancié plusieurs fois. Le problème que vous rencontrez se trouve dans le code Java de ce Bean en particulier.

  10. #10
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 32
    Par défaut
    Bonjour,

    J'ai un peu avancé sur le sujet. Effectivement, le souci vient de mon code Java et pas du comportement du Bean dans mon applet Forms.
    Et le morceau de code fautif est celui de la création d'une boîte de dialogue d'ouverture de fichier via la commande suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mFileSelection = new JFileChooser();
    Il semblerai que JFileChooser de Swing soit instable, résultant en un freeze de l'applet sans qu'aucune trace/exception ne soit exploitable...
    Je n'ai pas encore beaucoup de pistes pour contourner le problème, alors si quelqu'un a une solution, je suis preneur (autre que passer sur AWT). Au pire, j'exposerai mon cas sur le forum java.

    Merci

  11. #11
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Cela vient peut-être aussi de la version du JRE que vous utiliser.
    Perso, je n'ai jamais rencontré le moindre problème avec le JFileChooser, ni avec les différentes versions de JInitiator, ni avec les plugin de Sun.

  12. #12
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 32
    Par défaut
    JRE 1.5.0_09 pour le codage / génération de jar.
    JRE 1.5.0_10 sur IE pour l'applet Java.

    Ca me semble bizarre que si peu d'écart entre deux JRE provoquent l'erreur. Enquête toujours en cours

  13. #13
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Vous pouvez tester avec ce Bean pour voir si le problème vient vraiment du JFileChooser()

  14. #14
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 32
    Par défaut
    Re !

    J'ai trouvé d'où venait mon problème !
    Pour les explications :

    Ma classe est la suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class FileUploader extends VBean
    J'y déclare un JFileChooser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private JFileChooser mFileSelection = null;
    Je l'utilise dans la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    protected String openFile()
    {
    	Frame f = getFrame();
    	String fileName = "";
    	String fileDirectory = "";
     
    	// Create the filedialog if it does not exist
    	if (mFileSelection == null)
    	{	
    		mFileSelection = new JFileChooser();
    				mFileSelection.setFileSelectionMode(JFileChooser.FILES_ONLY);
    		mFileSelection.setMultiSelectionEnabled(false);
    		mFileSelection.setControlButtonsAreShown(true);
    		mFileSelection.setDialogTitle("Sélectionnez un fichier");
    	}
     
    	if (mFileFilter != null)
    	{
    		for (int i = 0; i < mFileFilter.length; i++)
    		{
    			mFileSelection.addChoosableFileFilter(mFileFilter[i]);
    			mFileSelection.setFileFilter(mFileFilter[i]);
    		}
    	}
     
    	mFileSelection.setCurrentDirectory(new File((String)mOpenDirectory));
     
    	// Display the filedialog.
    	int returnVal = mFileSelection.showOpenDialog(f);
    	if(returnVal == JFileChooser.APPROVE_OPTION)
    	{
    		fileName = mFileSelection.getSelectedFile().getName();
    		fileDirectory = mFileSelection.getSelectedFile().getParent() + File.separator;
    	}
    	if (fileName != null) {
    		dispatchFilename(fileDirectory, fileName);
    	}
    	System.out.println("Dir : " + fileDirectory + " - File : " + fileName);
    	return fileDirectory + fileName;
    }
    Méthode appelée depuis mon écran Form via le code PL/SQL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    :BLOCK1.TXT_FICHIER := GET_CUSTOM_PROPERTY('BLOCK1.FILE_UPLOAD_BEAN',1,'OPENFILE');
    Et bien c'est la déclaration du JFileChooser au niveau de la classe qui pose problème. Je l'ai déplacée en local dans la méthode openFile() et maintenant tout roule.

    Sujet résolu, merci de m'avoir indiqué la piste du code Java qui pouvait être en cause (code récupéré sur OTN, du coup je le pensais correct).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation Javabean dans forms10g
    Par fabrizio_r7 dans le forum Forms
    Réponses: 39
    Dernier message: 21/12/2007, 15h56
  2. [forms10G] Enregistrement d'un javabean avec FBEAN
    Par plaineR dans le forum Forms
    Réponses: 4
    Dernier message: 16/04/2007, 16h06
  3. Réponses: 13
    Dernier message: 20/03/2007, 17h04
  4. [forms10g]Javabean et événement
    Par plaineR dans le forum Forms
    Réponses: 16
    Dernier message: 16/03/2007, 11h15
  5. Register XMLC_LoginForm
    Par Sylvain James dans le forum XMLRAD
    Réponses: 2
    Dernier message: 22/04/2003, 19h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo