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

NetBeans Java Discussion :

[NetBeans] fournir le contenu d'un dropdownBox avec le champ d'une Table


Sujet :

NetBeans Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 12
    Par défaut [NetBeans] fournir le contenu d'un dropdownBox avec le champ d'une Table
    Bonjour
    J'essaie de fournir un DropdownBox avec le contenu du champ d'une table et j'ai une erreur (java.lang.NullPointerException )que je ne comprends pas.

    voici mon fichier java
    package com.myapp.struts;

    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionForward;
    import javax.servlet.http.*;
    import org.apache.struts.action.*;
    import java.sql.*;
    import java.util.ArrayList;
    import javax.sql.*;
    import org.apache.struts.Globals;
    /**
    *
    * @author Administrateur
    * @version
    */

    public class InitCombo extends Action {
    private DataSource dataSource;

    public ArrayList agentList = new ArrayList();

    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response)
    throws Exception {
    login formulaire = (login) form;
    int taille = getagents().size();
    String[] chaine = (String[]) agentList.toArray(new String[taille]);
    formulaire.set("valeursnoms",chaine);
    return mapping.findForward("afficheComboLogin");


    }
    // liste des valeurs du combo récupéré depuis la base de données

    private ArrayList getagents(){
    Connection conn = null;
    Statement stmt = null;
    PreparedStatement prpStmt = null;
    ResultSet rs = null;
    StringBuffer resultString ;
    try{
    /** Ici, 'alize' est associé à la clef de la DataSource dans struts-config.xml: */


    dataSource = (DataSource)servlet.getServletContext().getAttribute("alize");
    // dataSource = getDataSource(request);
    conn = dataSource.getConnection();
    String sqlQuery = "SELECT * FROM OPERATEURS";
    prpStmt = conn.prepareStatement(sqlQuery);
    rs = prpStmt.executeQuery();

    /** Ici, nous avons mis le champ 2 (le nom) dans la agentList: */
    while (rs.next()) {
    agentList.add(rs.getObject(2));
    //(new row());
    }
    rs.close();

    } catch ( SQLException e ) {
    System.err.println("SQL Exception occured while accessing the table" );
    e.printStackTrace();
    return null;

    } catch ( Exception e ) {
    e.printStackTrace();
    return null;
    }

    return agentList;
    }
    }

    Ce qui m'étonne c'est que ça a marché une fois!! Après je ne sais plus ce que j'ai cassé

    Sinon la ligne à laquelle il dit qu'il y a erreur c'est
    int taille = getagents().size();
    Pourtant j'ai vérifié que je suis bien connecté à la base de données. je ne sais pas pourquoi ma méthode getagents() me renvoit un null


    J'y ai passé la journée

    Merci de votre sollicitude...

  2. #2
    Membre éprouvé
    Avatar de Valère
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 334
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2005
    Messages : 1 334
    Par défaut
    Ca parrait évident, mais tu ne passes pas dans tes catch()? Tu as essayé de débugger ton appli pour voir ce qui se passait?

  3. #3
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 12
    Par défaut
    Salut,

    J'arrive pas à lancer netbeans en mode debbugueur y a une erreur.

    qu'est ce qui te semble aussi évident? Sois explicite stp car je ne suis pas ce qu'on appelerait un professionel.....

    Merci pour tout

  4. #4
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 12
    Par défaut
    Salut

    je suis sur une piste. J'ai un problème de connexion avec ma base de données.
    Il y a des time out. Je me connecte sans problème via l'ide mais je crois qu'il ya un problème dans le code.

    Voici mon struts-config
    <?xml version="1.0" encoding="ISO-8859-1" ?>

    <!DOCTYPE struts-config PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
    "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">


    <struts-config>
    <form-beans>
    <form-bean type="com.myapp.struts.NewStrutsActionForm" name="NewStrutsActionForm"/>

    </form-beans>

    <global-exceptions>

    </global-exceptions>

    <global-forwards>
    <forward name="welcome" path="/Welcome.do"/>
    </global-forwards>

    <data-sources>
    <data-source key="alize" type="org.apache.commons.dbcp.BasicDataSource">
    <set-property property="driverClassName" value="org.postgresql.Driver" />
    <set-property property="url" value="jdbc:postgresql://192.168.0.11:5432/alize" />
    <set-property property="username" value="alize" />
    <set-property property="password" value="" />
    <set-property property="maxActive" value="10" />
    <set-property property="maxWait" value="5000" />
    <set-property property="defaultAutoCommit" value="false" />
    <set-property property="defaultReadOnly" value="false" />

    </data-source>
    </data-sources>

    <action-mappings>
    <action input="/loginForm.jsp"
    type="com.myapp.struts.DatasourceConnectionAction"
    scope="session"
    path="/login"
    attribute="validlogin"
    name="NewStrutsActionForm">
    <forward name="success" path="/loginSuccess.jsp"/>
    </action>

    <action type="com.myapp.struts.DatasourceConnectionAction"
    path="/loginSuccess">
    <forward name="success" path="/loginSuccess.jsp"/>
    </action>
    <action path="/Welcome"
    forward="/welcomeStruts.jsp"/>

    </action-mappings>

    <controller processorClass="org.apache.struts.tiles.TilesRequestProcessor"/>

    <message-resources parameter="com/myapp/struts/ApplicationResource"/>

    <!-- ========================= Tiles plugin ===============================-->
    <!--
    This plugin initialize Tiles definition factory. This later can takes some
    parameters explained here after. The plugin first read parameters from
    web.xml, thenoverload them with parameters defined here. All parameters
    are optional.
    The plugin should be declared in each struts-config file.
    - definitions-config: (optional)
    Specify configuration file names. There can be several comma
    separated file names (default: ?? )
    - moduleAware: (optional - struts1.1)
    Specify if the Tiles definition factory is module aware. If true
    (default), there will be one factory for each Struts module.
    If false, there will be one common factory for all module. In this
    later case, it is still needed to declare one plugin per module.
    The factory will be initialized with parameters found in the first
    initialized plugin (generally the one associated with the default
    module).
    true : One factory per module. (default)
    false : one single shared factory for all modules
    - definitions-parser-validate: (optional)
    Specify if xml parser should validate the Tiles configuration file.
    true : validate. DTD should be specified in file header (default)
    false : no validation

    Paths found in Tiles definitions are relative to the main context.
    -->
    <plug-in className="org.apache.struts.tiles.TilesPlugin" >
    <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />
    <set-property property="moduleAware" value="true" />
    </plug-in>

    <!-- ========================= Validator plugin ================================= -->
    <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
    <set-property
    property="pathnames"
    value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
    </plug-in>

    </struts-config>

  5. #5
    Membre éprouvé
    Avatar de Valère
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 334
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2005
    Messages : 1 334
    Par défaut
    Excuse moi si j'ai été expéditif.

    En fait, tu dis que getAgents() te retournes null. J'ai un peu regardé le code, et je vois que getagents(), si tout se passe bien, retourne l'objet agentList qui est bien initialisé dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
         public ArrayList agentList = new ArrayList();
    , mais en cas de problème (SQLException ou Exception) alors tu retournes null (lignes 64 et 68 de ton fichier).


    Il faudrait que tu regardes dans le log de ton tomcat (~nbuserdir\5.0\jakarta-tomcat-5.5.9_base\logs pour le bundled tomcat).

  6. #6
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 12
    Par défaut
    Salut,

    j'ai regardé et la méthode getagents() renvoie un null parce que cette ligne là
    conn = dataSource.getConnection();
    provoque une exception et donc c'est mon catch Exception qui renvoie le null

    le problème c'est que je ne vois pas le problème. j'utilise exactement la même méthode (getagents) pour affciher le contenu de certains champs de la même table dans une jsp et il n'y a pas de problème .

  7. #7
    Membre éprouvé
    Avatar de Valère
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 334
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2005
    Messages : 1 334
    Par défaut
    Il faudrait avoir la description de l'exception pour comprendre ce qui se passe... => la ligne e.printStackTrace(); doit rajouter toutes les infos utiles dans le fichier de log du tomcat.

Discussions similaires

  1. [WD15] Liste avec plusieurs champs d'une table affichés
    Par karibou_47 dans le forum WinDev
    Réponses: 2
    Dernier message: 07/12/2011, 17h51
  2. problème avec le champ d'une table
    Par pat212008 dans le forum Modélisation
    Réponses: 4
    Dernier message: 08/04/2008, 08h51
  3. [C#] Remplir une combobox avec le champs d'une table Access
    Par Damsou dans le forum Windows Forms
    Réponses: 4
    Dernier message: 23/06/2005, 15h31
  4. UPDATER le champ d'une table 1 avec le champ d'une table 2
    Par alain.dissoir dans le forum Oracle
    Réponses: 2
    Dernier message: 08/06/2005, 13h07
  5. Afficher tous les champs d'une table avec dbexpress et MySQL
    Par LHT dans le forum Bases de données
    Réponses: 2
    Dernier message: 25/06/2004, 17h11

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