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

Flex Discussion :

Configuration de Flex et LiveCycle


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de issamjet
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Mars 2008
    Messages : 65
    Par défaut Configuration de Flex et LiveCycle
    Bonsoir

    Je voudrais créer une application en Flex/J2EE, en utilisant LiveCycle pour la liaison.

    J'ai suivi ce tutoriel


    http://www.mti.epita.fr/blogs/2008/0...data-services/

    Mon problème qu'il me rend toujours le message généré par la fonction faultHandler donc le Flex ne voit pas le java

    Remarque : dans le tutoriel il a précisé flex.war dans le dossier lcds mais je n'ai trouvé que lcds.war normalement c'est le même

    Sinon si personne a des liens pour d'autres tutoriels je serai reconnaissant

    Merci.

  2. #2
    Membre Expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Par défaut
    Salut,

    tu utilises Tomcat avec LCDS ? il me semble que Coenraets a sur son blog une version de tomcat pour LCDS.

    Je me souviens avoir galérer pour faire tourner sous linux Tomcat et LCDS, j'avais d'ailleurs switché pour JRun

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  3. #3
    Membre confirmé Avatar de issamjet
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Mars 2008
    Messages : 65
    Par défaut
    Salut,

    J'ai trouvé un autre tutoriel et ça bien marchait pour le premier exemple,c'est juste un exempte simple de chat mais j'en ai besoin pour au moins me rendre un peu d'espoir

    http://www.google.fr/url?sa=t&source...Z4AMjn0Sj7Z17w


    Mais pour le deuxième exemple (Excercice 4), où je dois invoquer une méthode Java depuis mon MXML en utilisant le Remote Object, ça n'a pas marché jusqu'à le moment

    L'erreur qu'il m'a renvoyé est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Type insync.dao.ContactDAO  not found
    C'est bizarre car j'ai bien donné la destination de ma classe JAVA dans remoting-config, et la destination à mon projet Flex dans messaging-config

    ce que me parait un peu étrange, c'est que dans le projet Java lcds-server y en a pas de dossier src (paquetage par défaut)

    Donc comme conclusion : toujours je n'arrive pas à accéder à la classe Java depuis MXML, c'est fatiguant, avec BlazeDS ça n'a pas pris plus qu'une demie heure.

  4. #4
    Membre confirmé Avatar de issamjet
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Mars 2008
    Messages : 65
    Par défaut
    Bonjour

    Je vais mettre un bout de code :

    tout d'abord pour le .mxml

    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
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*">
    <mx:Script>
    <![CDATA[
    import mx.rpc.events.FaultEvent;
    import mx.rpc.events.ResultEvent;
    import mx.controls.Alert;
    import mx.collections.ArrayCollection;
    [Bindable]
    private var contacts:ArrayCollection;
    private function resultHandler(event:ResultEvent):void
    {
    contacts = event.result as ArrayCollection;
    }
    private function faultHandler(event:FaultEvent):void
    {
    Alert.show(event.fault.faultDetail);
    }
    ]]>
    </mx:Script>
    <mx:RemoteObject id="ro" destination="contact"
    fault="faultHandler(event)">
    <mx:method name="getContactsByName"
    result="resultHandler(event)"/>
    </mx:RemoteObject>
    <mx:ApplicationControlBar width="100%">
    <mx:TextInput id="searchStr"/>
    <mx:Button label="Search"
    click="ro.getContactsByName(searchStr.text)"/>
    </mx:ApplicationControlBar>
    <mx:DataGrid id="dg" dataProvider="{contacts}"
    width="100%" height="100%"/>
    </mx:Application>
    le remote-config.xml qui est dans un autre projet lcds-server, un projet web.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <destination id="contact">
    <properties>
    <source>insync.dao.ContactDAO</source>
    </properties>
    </destination>
    et le messaging-config.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <destination id="chat">
    <channels>
    <channel ref="my-rtmp"/>
    <channel ref="my-polling-amf"/>
    </channels>
    </destination>

    Enfin le contactDAO.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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
     
     
    package insync.dao;
     
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.List;
     
    import insync.model.Contact;
     
    public class ContactDAO extends BaseDAO 
    {
    	public List getContacts()
    	{
    		System.out.println("ContactDAO: findAll");
    		return getList("SELECT * FROM contact ORDER BY last_name, first_name");
    	}
     
    	public List getContactsByName(String name)
    	{
    		System.out.println("ContactDAO: findByName");
    		String likeStr = "%" + name + "%";
    		return getList("SELECT * FROM contact WHERE first_name LIKE ? OR last_name LIKE ? ORDER BY last_name, first_name",
    				new Object[] {likeStr, likeStr});
    	}
     
    	public List getContactsByCompany(int companyId)
    	{
    		System.out.println("ContactDAO: findByCompany");
    		return getList("SELECT * FROM contact WHERE company_id=? ORDER BY last_name, first_name", companyId);
    	}
     
    	public Object getContact(int contactId)
    	{
    		System.out.println("ContactDAO: getContact");
    		return getItem("SELECT * FROM contact WHERE contact_id=?", contactId);
    	}
     
    	public Contact create(Contact contact) throws DAOException
    	{
    		System.out.println("ContactDAO: create contact");
    		int contactId = createItem("INSERT INTO contact (first_name, last_name, phone, email, address, city, state, zip) VALUES (?,?,?,?,?,?,?,?)",
    				new Object[] {	
    					contact.getFirstName(), 
    					contact.getLastName(),
    					contact.getPhone(),
    					contact.getEmail(),
    					contact.getAddress(),
    					contact.getCity(),
    					contact.getState(),
    					contact.getZip()
    				});
    		contact.setId(contactId);
    		return contact;
    	}
     
    	public Contact save(Contact contact) throws DAOException, ConcurrencyException
    	{
    		System.out.println("ContactDAO: save contact");
    		return contact.getId() > 0 ? update(contact) : create(contact);
    	}
     
    	public Contact update(Contact contact) throws DAOException, ConcurrencyException
    	{
    		System.out.println("ContactDAO: update contact");
    		int rows = executeUpdate("UPDATE contact SET first_name=?, last_name=?, phone=?, email=?, address=?, city=?, state=?, zip=? WHERE contact_id=?",
    				new Object[] {	contact.getFirstName(), 
    								contact.getLastName(),
    								contact.getPhone(),
    								contact.getEmail(),
    								contact.getAddress(),
    								contact.getCity(),
    								contact.getState(),
    								contact.getZip(),
    								contact.getId()
    				});
    		if (rows == 0)
    		{
    			throw new ConcurrencyException("Item not found");
    		}
    		return (Contact) getContact(contact.getId());
    	}
     
    	public Contact update(Contact contact, Contact originalContact) throws DAOException, ConcurrencyException
    	{
    		System.out.println("ContactDAO: update contact");
    		/*
    		 * The WHERE clause in this statement represents an optimistic locking implementation where 
    		 * your update will fail if the row has been changed by someone else since you read it. 
    		 * Another (simpler) way of implementing the same concurrency level without adding all the columns to the WHERE clause 
    		 * is to add a “version” column to the table. Every time the contact is updated, the contact's version is incremented. 
    		 * Using this approach, you can make sure a row has not been updated since you read it by building the WHERE clause 
    		 * using the primary key and the version column only.
    		 */
    		StringBuffer sql = new StringBuffer("UPDATE contact SET first_name=?, last_name=?, phone=?, email=?, address=?, city=?, state=?, zip=? ");
    		sql.append("WHERE contact_id=? ");		
    		sql.append("AND (first_name=? or (? is null and first_name is null)) ");
    		sql.append("AND (last_name=? or (? is null and last_name is null)) ");
    		sql.append("AND (phone=? or (? is null and phone is null)) ");
    		sql.append("AND (email=? or (? is null and email is null)) ");
    		sql.append("AND (address=? or (? is null and address is null)) ");
    		sql.append("AND (city=? or (? is null and city is null)) ");
    		sql.append("AND (state=? or (? is null and state is null)) ");
    		sql.append("AND (zip=? or (? is null and zip is null))");
     
    		int rows = executeUpdate(sql.toString(), new Object[] {	
    				contact.getFirstName(), 
    				contact.getLastName(),
    				contact.getPhone(),
    				contact.getEmail(),
    				contact.getAddress(),
    				contact.getCity(),
    				contact.getState(),
    				contact.getZip(),
    				contact.getId(),
    				originalContact.getFirstName(),
    				originalContact.getFirstName(),
    				originalContact.getLastName(),
    				originalContact.getLastName(),
    				originalContact.getPhone(),
    				originalContact.getPhone(),
    				originalContact.getEmail(),
    				originalContact.getEmail(),
    				originalContact.getAddress(),
    				originalContact.getAddress(),
    				originalContact.getCity(),
    				originalContact.getCity(),
    				originalContact.getState(),
    				originalContact.getState(),
    				originalContact.getZip(),
    				originalContact.getZip()
    		});
    		if (rows == 0)
    		{
    			throw new ConcurrencyException("Item not found");
    		}
    		return (Contact) getContact(contact.getId());
    	}
     
    	public void deleteItem(Contact contact) throws DAOException, ConcurrencyException
    	{
    		System.out.println("ContactDAO: delete contact");
    		int rows = executeUpdate("DELETE FROM contact WHERE contact_id = ?", new Object[] { contact.getId() });
    		if (rows == 0)
    		{
    			throw new ConcurrencyException("Item not found");
    		}
    	}
     
    	protected Object rowToObject(ResultSet rs) throws SQLException
    	{
    		Contact contact = new Contact();
    		contact.setId(rs.getInt("contact_id"));
    		contact.setFirstName(rs.getString("first_name"));
    		contact.setLastName(rs.getString("last_name"));
    		contact.setPhone(rs.getString("phone"));
    		contact.setEmail(rs.getString("email"));
    		contact.setAddress(rs.getString("address"));
    		contact.setCity(rs.getString("city"));
    		contact.setState(rs.getString("state"));
    		contact.setZip(rs.getString("zip"));
    		return contact;
    	}
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Type insync.dao.ContactDAO  not found
    J'ai même essayé avec un exemple simple invoquant une méthode HelloWorld qui retourne un String afin d'afficher le résultat dans l'interface Flex au lieu d'appeler la méthode getContactByName mais toujours rien.

    Des idées ??

    sachant que j'utilise LiveCycle 2.6, Flex 3.

  5. #5
    Membre confirmé Avatar de issamjet
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Mars 2008
    Messages : 65
    Par défaut
    Bonjour

    Puisque il ne trouve pas le type ContactDAO, donc cette classe n'a pas été compilé, malgré que j'ai bien défini le répertoire src dans le projet java lcds-server comme une source path

    Toutefois, je ne comprend pas comment il doit la compiler depuis une exécution du projet Flex intitulé insync !!!

  6. #6
    Membre confirmé Avatar de issamjet
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Mars 2008
    Messages : 65
    Par défaut
    Bon il faut juste cocher Build Automatically, dans le menu project, et les fichiers java seront compilés, donc le type insync.dao.contactDAO existe dorénavant, il ne m'affiche plus l'erreur que je viens de la citer dans les messages précédents

    Mais toujours, ça marche pas

Discussions similaires

  1. Comment configurer flex SDK pour AMFPHP ?
    Par totoAussi dans le forum Flex
    Réponses: 1
    Dernier message: 28/02/2011, 11h56
  2. Comment configurer Flex et serveur coldfusion ?
    Par ouss_sk8 dans le forum Flex
    Réponses: 0
    Dernier message: 25/05/2010, 22h05
  3. Configurer Flex SDK dans Eclipse 3.5
    Par spikelly dans le forum EDI/Outils
    Réponses: 0
    Dernier message: 26/11/2009, 13h49
  4. configuration Flex JEE
    Par sinfos dans le forum Flex
    Réponses: 1
    Dernier message: 02/08/2009, 10h32
  5. Réponses: 1
    Dernier message: 14/03/2008, 17h26

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