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

Java EE Discussion :

Persistance et service web


Sujet :

Java EE

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 3
    Par défaut Persistance et service web
    Bonjour,
    actuellement , j ai 4 applis sous tomcat5, java1.4 . architecture (pool jdbc, beans, servlet, jsp).: j'ai pas me plaindre!

    ces derniers temps je voie beaucoup de gens parle de la persistance des donnes, et comment gérer la persistance.
    ma façon de faire les choses:
    pour chaque table je cree 2 bean: TableBean.java(1) et ListTableBean.java(2)
    j utilise le premier comme un pojo, et le deuxieme comme manager du pojo:contient en memoire la liste les pojo(toute les lignes de la table).
    pour faire un select juste si une ligne a ete modifie.
    j ai jamais eu un problème de saturation mémoire(P4,512Mo Ram, 26 tables,14000 ligne table principale, 7000/an ).

    j'ai une autre application qui contient que des jsp et une BD de 55 table, et ça plante de par tout,
    c la ou je vous demande de m aider:
    j ai 2 options :
    1-je le fais a ma facon: j ai le HTML des pages; et je cree les skolette des mes TableBean et ListTableBean sans fichier de mapping juste a l aide du ResultSetMetaData et PrintWriter.println .
    Mais reste a savoir si cava pas causer de probleme, -je veux bien que quelqu'un critique ma façon -

    2-je me suis dis que c l occasion de passer a java 1.5, alors j ai commencer a voir hibernate3, d ailleur la doc est bien faite :officielle et en .fr svp . mais pour mon cas rapporte pas grande chose .

    par contre les EJB3 et ce qu on peut faire avec les @annotation,
    et aussi je crois que c facile d implémenter des service web,
    mais est ce qu il ya une version JBoss stable prend en charge EJB3.0.

    si j ai un service web sous Jboss ejb3, pour la partie client est ce que je dois installer jboss.

    et ce que c une bonne idee utiliser Tomcat inside JBossou bien garder Tomcat Standalone;
    (
    http://www.jboss.com/wiki/Wiki.jsp?page=TomcatStandalonevsEmbedded
    ,mais ils parlent du Jboss 4.0: compatible ejb.3??)

    merci!
    ------------------------------------

    (1)TableBean.java


    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    public class TableBean implements java.io.Serializable{
    	private String _num;
    	private String _table;
    // Constructeur pour le chargement
    public TableBean(String pnum,String plibele){
    	this._num   = pnum;
    	this._table   = plibele;
    }
    // Constructeur pour l ajout
    public TableBean(String plibele){
    try{
        this._num=Tools.getCodeTable(MoParamBean.getInstance().getProperty(".code.format.table"));
        this._table   = Tools.getFormatPrenom(plibele);
        }catch(Exception e){
        	Log.error("TableBean","TableBean()",e);}
    }
     
    public String getNum(){	return _num ;}
    public String getTable(){return _table;}
    public void setTable(String s){	 _table=s;}
     
    public boolean add(){
    try{
    		Log.trace(2,"TableBean","add()","recuperation connextion ?");
    		Connection conn = MoApplication.getApplication().getPostgresConnection();
     
    		if (conn != null) Log.trace(2,"TableBean","add()","recuperation connextion ok");
    		else {Log.trace(2,"TableBean","add()","recuperation connextion ko :("); return false;}
     
    		PreparedStatement addSoc = conn.prepareStatement("INSERT INTO table VALUES (?,?)");
     
    		addSoc.setString(1, _num);
    		Log.trace(2,"TableBean","add() ","IN 1 ="+_num);
    		addSoc.setString(2, _table);
    		Log.trace(2,"TableBean","add()","IN 2 ="+_table);
     
    	    addSoc.executeUpdate();addSoc.close();conn.close();
     
            ListTableBean.remove();//mise a jour de la  liste des table
     
    }catch(Exception e){
    	Log.trace(0,"TableBean","add()","ERROR = "+e);
    	Log.error("TableBean","add() ERROR = ",e);
    	return false;
    }
    return true;
    }
     
    public boolean modify(){
    //comme add();
    }
     
    public boolean delete(){
    //comme add();
    }
     
    //d autres methode pour les procedures metier
    }
    (2)ListeTableBean.java

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
     
    public class ListTableBean implements java.io.Serializable {
     
       private  Vector _listTable = null;
       private static ListTableBean _instance =null;
     
    public ListTableBean(){
    try{
          Vector tmpListAct = new Vector();
          Log.trace(2,"ListTableBean","ListTableBean()","recuperation connextion ?");
          Connection conn = MoApplication.getApplication().getPostgresConnection();
          Statement stmtAllSoc = conn.createStatement();
     
          String sqlAllSoc = "select * from table order by table";
     
          ResultSet rs = stmtAllSoc.executeQuery(sqlAllSoc);
     
         while(rs.next()){
             TableBean tb = new TableBean( rs.getString(1),rs.getString(2));
             tmpListAct.add(tb);
         }
     
        setListTable(tmpListAct);
        rs.close();stmtAllSoc.close();conn.close();
    }catch(Exception e){
       Log.trace(0,"ListTableBean","ListTableBean()","ERROR = "+e);
    }
    }
    private void setListTable(Vector pNewVector){
       this._listTable = pNewVector;
    }
     
    public   Vector getListTable(){
       return _listTable;
    }
    //get une nouvelle instance si null
    public static ListTableBean  getInstance()throws Exception {
       if(_instance == null)
          setInstance(new ListTableBean());
       return _instance;
    }
     
    public static void setInstance(ListTableBean  newInstance) throws Exception{
                _instance = newInstance;
    }
     
    public static void  remove()throws Exception {
       _instance = null;
    }
    //chargement d un objet
    public   TableBean getTable(String code)throws Exception{
       TableBean temp;
       for (int i =0 ; i< getListTable().size() ; i++){
              temp = (TableBean)getListTable().elementAt(i);
              if(code.equals(temp.getNum()))
                  return temp;
        }
       return null;
       }
    }

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Par défaut
    Bonjour,

    difficile de répondre à la question de fond puisque tu n'indique pas pourquoi ton application plante. Même si il ne semble pas judicieux de conserver en cache l'ensemble des lignes d'une table pour une application un peu conséquente.

    Cependant tu peux soit :

    continuer à utiliser ton architecture (à base de jdbc)

    Utiliser Hibernate (tu bénéficiera d'un pool de connexion, d'un cache, etc..)

    Utiliser les EJB3 (modification profonde de ton application)

    Oui la derniere version de JBoss supporte les EJB3.

    Tu n'est pas obligé d'utiliser le JDK 1.5 avec Hibernate 3.

    JBoss offre des services que Tomcat seul ne propose pas mais est plus difficile à configurer.

    A toi de voir lequel te convient le mieux même si vu les caractéristiques que tu donne Tomcat devrait faire l'affaire.

    si j ai un service web sous Jboss ejb3, pour la partie client est ce que je dois installer jboss.
    Je ne suis pas sur de comprendre ta question mais un client accédant à un service web ne nécessite aucune installation.

  3. #3
    Membre Expert
    Avatar de alexismp
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 503
    Par défaut
    Je ne pense pas que passer à EJB 3 (attention spécification pas encore finalisée) soit une modification en profondeur.

    JBoss propose un support des EJB 3, mais Tomcat (et donc JBoss) ne supporte pas la partie injection de dépendance au niveau JSP/Servlet (@EJB, @Resource, etc...). Du coup, c'est un peu limité de faire des EJB sans servlet par exemple. A ce jour, seul GlassFish propose cette fonctionnalité.

    Sinon, il y a toujours la possibilité de n'utiliser que la partie persistence de EJB 3, avec ou sans serveur d'application.

Discussions similaires

  1. Livre : XML et les services Web
    Par cyberzoide dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 27/05/2007, 17h12
  2. retour tableau d'objets par service web axis jboss
    Par TrollMaster dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 27/11/2005, 21h45
  3. [VB.Net] Comment renvoyer un SQLDataReader par un service Web ?
    Par moufles03 dans le forum Services Web
    Réponses: 4
    Dernier message: 13/07/2004, 11h55
  4. [C#] Comment passer un paramètre Boolean au service Web ?
    Par ramalho dans le forum Services Web
    Réponses: 3
    Dernier message: 07/06/2004, 17h31
  5. Quel est l'intérêt des Services Web ??
    Par silvermoon dans le forum Débats sur le développement - Le Best Of
    Réponses: 19
    Dernier message: 12/02/2003, 22h28

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