+ Répondre à la discussion Actualité déjà publiée
  1. #1
    Expert éminent sénior


    Profil pro
    Inscrit en
    octobre 2003
    Messages
    7 857
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2003
    Messages : 7 857
    Points : 34 236
    Points
    34 236

    Par défaut Coupler la puissance de Java EE et PHP grâce à GlassFish

    Bonjour,

    Jérôme Lafosse, auteur de livres et contributeur sur developpez.com vous propose un article concernant le serveur d'applications GlassFish intitulé Coupler la puissance de Java EE et PHP grâce à GlassFish.

    Cet article est un extrait gratuit d'un ouvrage à paraître sur Java EE et le serveur d'applications GlassFish.

    La tendance actuelle est au développement d'applications Internet avec la plate-forme Java EE 6 ou PHP. Mais pourquoi ne pas coupler la puissance de ces deux langages de programmation ? Une telle approche permet d'utiliser un site déjà existant et de le migrer facilement vers...
    Cet article se destine à la fois aux personnes faisant du Java qu'à celles qui font du PHP.

    Qu'en pensez-vous ?

    Voir également :
    Premier livre francophone sur Struts 2, par Jérôme Lafosse
    Extraits gratuits de "Java EE - Guide de développement d'applications web en Java" par Jérôme Lafosse

  2. #2
    Membre actif Avatar de shadypierre
    Profil pro
    Inscrit en
    février 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : février 2009
    Messages : 272
    Points : 262
    Points
    262

    Par défaut

    Super, vraiment très sympa comme tuto

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    février 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2006
    Messages : 1
    Points : 1
    Points
    1

    Par défaut Très intéressant

    Article très intéressant en effet.

    Je mettrais un bémol sur le paragraphe VIII : on s'attend à un exemple d'utilisation de PHP depuis Java, or l'exemple montre (comme le précédent) l'utilisation d'un code Java depuis PHP (qui lui-même fait ensuite appel à une lib PHP). La librairie GD n'est pas réellement "ajoutée" à Java comme le laisse penser l'intro du paragraphe.

    A part ça, bravo !

  4. #4
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    avril 2009
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : avril 2009
    Messages : 487
    Points : 1 279
    Points
    1 279

    Par défaut

    Très intéressant.

    Pour ma part j'utilise PHP/Java Bridge qui a l'avantage de pouvoir être utilisé sans serveur java mais Quercus a l'air plus simple...

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    décembre 2003
    Messages
    3 995
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2003
    Messages : 3 995
    Points : 2 068
    Points
    2 068

    Par défaut

    Très intéressant. Je ne sais pas pourquoi, mais je pensais que Quercus ne fonctionnait qu'avec Resin...

  6. #6
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : août 2004
    Messages : 8 765
    Points : 12 898
    Points
    12 898

    Par défaut

    Des EJB en tant que Modèle du MVC? Mouaif, bof. Pas propre.
    Le EJB étant avant tout des objets métier, or le modèle du MVC est un objet collant à la vue au plus près. De fait les EJB ne sont pas conceptuellement prévus pour être le modèle d'une vue. Sur une petite appli ça peut passer, par contre au delà. Surtout qu'en procédant comme ça l'on finit par devoir modifier la spec d'un objet métier juste pour changer un détail non métier de la vue.
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  7. #7
    Membre à l'essai
    Inscrit en
    juin 2005
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : juin 2005
    Messages : 22
    Points : 22
    Points
    22

    Par défaut

    Bonjour,

    Très bon article ! Et une une architecture très prometteuse !

    Il me semble cependant que cette technologie n'est pas encore suffisamment mature pour être utilisée en production...
    Il suffit de se rendre sur le forum de Caucho pour se rendre compte des nombreux problèmes existants pour utiliser des solutions plus complèxes de type Joomla ou Magento !

    Qui plus est avec Quercus il est souvent impossible d'utiliser UTF8 comme charset avec un driver jdbc Mysql... (voir post)
    Visiblement les équipes de Caucho envisagent le développement d'un driver jdbc custom mais cela n'est pas encore dans leur liste de tâches prioritaires

    Un point plutôt bloquant quant à sa démocratisation quand on connait le succès de cette base de données sur la toile...

  8. #8
    Invité
    Invité(e)

    Par défaut Quercus Parait simple mais configuration compliquée

    Bonjour,

    Je viens de me procurer ce livre de Jérôme LAFOSSE et franchement il est ÉNORME tout simplement. J'apprécie beaucoup ce livre qui me remet largement sur les traces du langage Java. En réalité j'apprécie beaucoup la partie couplage Java/PHP avec Quercus car je suis un fan de PHP et avant ce livre j'ignorait l'existence d'exécutables comme Quercus capables d'interpréter du PHP avec la JVM: bref, le book est

    Mais en ce moment je suis justement bloqué à cette partie: la mise en place de Quercus. j'ai suivi la procédure du livre ça n'a rien donné, j'ai également suivi la procédure ici docs oracles mais j'ai toujours rien.
    Tantôt ça compile mais n’interprète pas PHP, tantôt ça ne reconnait pas la servlet Quercus.

    Bref, je suis sur le point d'abandonner. ... je vais passer à l'utilisation des JavaBrigdes qui d'ailleurs semblent plus utilisés et moins compliqués à configurer.

  9. #9
    Membre expérimenté Avatar de nathieb
    Homme Profil pro
    Chef de projet/Architecte
    Inscrit en
    mai 2004
    Messages
    1 034
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet/Architecte
    Secteur : Service public

    Informations forums :
    Inscription : mai 2004
    Messages : 1 034
    Points : 1 467
    Points
    1 467

    Par défaut expérience

    Bonjour,

    Pour l'avoir utilisé, je suis un peu déçu. mais l'idée est géniale. le souci c'est que quercus n'implémente pas toutes les spécifications de PHP5, on se retrouve donc bloqué quand il s'agit d'utiliser des fonctions d'autoload. Exemple Smarty, ou symfony 1.4. or ce sont ce type de framework qui peuvent pour des pro comme nous, nous intéresser dans l'utilisation de telle solution. J'ai même réussi à utilisé la connexion directe en PHP, sans passer par un EJB. Par contre il faut parfois chercher longtemps car la doc et l'expérience manque en france.
    MAis cela reste un super boulot, car c'est dans le serveur d'application, pas besoin d'aller bidouiller les configs serveur.
    et ça j'achète (oups, je me suis trahi)

    Olivier
    Architecte destructurant,
    be cool, be free

    Il nous reste Debian bien sûr

  10. #10
    Invité
    Invité(e)

    Par défaut

    Bonjour Nathieb,
    Pendant qu'on y est, ne peux-tu pas m'aider dans la configuration de Quercus?
    Merci

  11. #11
    Membre expérimenté Avatar de nathieb
    Homme Profil pro
    Chef de projet/Architecte
    Inscrit en
    mai 2004
    Messages
    1 034
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet/Architecte
    Secteur : Service public

    Informations forums :
    Inscription : mai 2004
    Messages : 1 034
    Points : 1 467
    Points
    1 467

    Par défaut why not

    Bonjour,

    Oui pourquoi pas ?
    Serveur d'aplication ?
    framework utilisé ou technologie !?
    tu en es à quel niveau , fichier web.xml

    olivier
    Architecte destructurant,
    be cool, be free

    Il nous reste Debian bien sûr

  12. #12
    Invité
    Invité(e)

    Par défaut

    bonjour,
    - Je travaille avec glassfish et netbeans
    - je suis sur le tuto de Jérome LAFOSSE avec son livre à qui l'on doit ce sujet
    - j'ai télécharger le .jar et le .war de Quercus ici
    - j'ai mis le .jar dans C:\glassfish3\glassfish\domains\domain1\lib
    - j'ai déployé le .war dans glassfish (il marche car le php est bien interprété il me semble)
    - mon fichier web.xml n'existait pas (je sais pas pourquoi) du coup j'ai crée un dans lequel j'ai mis la configuration donnée par le livre de Jérome LAFOSSE
    - J'ai aussi regardé le tuto chez oracle ici (mais ce tuto n'évoque pas le .jar pourquoi?)
    -J'ai déployé mon application mais le php n'est toujours pas interprété
    - voici le contenu du fichier web.xml:
    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
    <?xml version="1.0" encoding="UTF-8"?>
     
    <web-app xmlns="http://java.sun.com/xml/ns/javaee"
    	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    	 version="3.0">
    	<display-name>projetjavaeephp</display-name>
    	<servlet>
    		<servlet-name>Quercus Servlet</servlet-name>
    		<servlet-class>com.caucho.quercus.servlet.QuercusServlet</servlet-class>
    		<init-param>
    			<param-name>script-encoding</param-name>
    			<param-value>UTF-8</param-value>
    		</init-param>
    		<init-param>
    			<param-name>license-directory</param-name>
    			<param-value>WEB-INF/licenses</param-value>
    		</init-param>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>Quercus Servlet</servlet-name>
    		<url-pattern>*.php</url-pattern>
    	</servlet-mapping>
    </web-app>
    Merci!

  13. #13
    Membre expérimenté

    Profil pro
    Inscrit en
    décembre 2011
    Messages
    943
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2011
    Messages : 943
    Points : 1 736
    Points
    1 736

    Par défaut

    L'article est très intéressant mais a bientôt 4 ans. Pensez-vous qu'avec l’avènement d'angularjs, dart, polymer, le shadow dom d'un coté et JsonP (jEE7) , Nashorn dans java 8, l'avenir est toujours au couple php-java ?
    Perso, j'ai plus que des doutes.

  14. #14
    Membre expérimenté Avatar de nathieb
    Homme Profil pro
    Chef de projet/Architecte
    Inscrit en
    mai 2004
    Messages
    1 034
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet/Architecte
    Secteur : Service public

    Informations forums :
    Inscription : mai 2004
    Messages : 1 034
    Points : 1 467
    Points
    1 467

    Par défaut Ok pour J2EE7

    Bonjour,

    Effectivement, pour l'avenir de PHP dans un serveur d'application, j'ai des doutes aussi, mais cela a l'avantage de faire du design d'application de façon rapide sans utilisé l'artillerie java côté IHM. pour un prototype cela m'a bien servi.
    Je te fais une copie du mien, j'ai viré la licence, et quercus est intégré avec maven
    car les liens bibliothèques Glassfish cela m'a pris la tête.
    Il faut tu crée un fichier php.ini que tu déclares dans le web.xml
    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
     
    <!-- Intégration de Quercus dans le serveur d'application -->
        <servlet>
            <servlet-name>Quercus Servlet</servlet-name>
            <servlet-class>com.caucho.quercus.servlet.QuercusServlet</servlet-class>
            <init-param>
                <param-name>script-encoding</param-name>
                <param-value>UTF-8</param-value>
            </init-param>
            <!-- <init-param>
                <param-name>license-directory</param-name>
                <param-value>WEB-INF/licenses</param-value>
            </init-param> -->
            <init-param>
                <description>Fichier d'initialisation de php</description>
                <param-name>ini-file</param-name>
                <param-value>WEB-INF/php.ini</param-value>
            </init-param>
            <init-param>
                <param-name>database</param-name>
                <param-value>MONPOOLPHP</param-value>
            </init-param>
        </servlet>
    php.ini dans le dossier du WEB-INF
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    default_mimetype=text/html
    Avec une déclaration maven. A l'époque j'ai mis du temps à trouver.
    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
     
    ...
    <repositories>
            <repository>
                <id>caucho</id>
                <url>http://caucho.com/m2/</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </repository>
    ...
    <dependency>
                <groupId>com.caucho</groupId>
                <artifactId>resin-quercus</artifactId>
                <version>3.2.1</version>
            </dependency>
    Actives les logs de ton serveur d'application en mode FINE. tu verra ce qui ne va pas .

    Olivier
    Architecte destructurant,
    be cool, be free

    Il nous reste Debian bien sûr

  15. #15
    Membre expérimenté Avatar de nathieb
    Homme Profil pro
    Chef de projet/Architecte
    Inscrit en
    mai 2004
    Messages
    1 034
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet/Architecte
    Secteur : Service public

    Informations forums :
    Inscription : mai 2004
    Messages : 1 034
    Points : 1 467
    Points
    1 467

    Par défaut Bon prince

    Bonjour,

    Allez je suis fou je te file le code PHP, qui m'a permis de tester la connexion PHP.
    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
     
    <?php 
    session_start();
    $_SESSION['user']='admin';
    $a = new Java("java.util.Date", 123);
    ?>
    <html>
        <title>Partie PHP Survey</title>
        <body><span><?php echo $a->time; ?></span>
            <div>Site partie génération PHP</div>
     
            <div>
                <h2>Liste des degrés</h2>
            <?php $pdo = new PDO("java:comp/env/MON2POOLPHP");
                  $sql = "select * from MATABLE";
     
                  foreach ($pdo->query($sql) as $degre => $libelle_degre){
                      echo "<br/>ligne ".$degre." avec comme valeur ". print_r($libelle_degre);
                  }
            ?>
                <h2>Liste des erreurs en base</h2>
            <?php 
                  $sql = "select * from ERREURS_SQL";
     
                  foreach ($pdo->query($sql) as $degre => $libelle_degre){
                      echo "<br/>ligne ".$degre." avec comme valeur ". print_r($libelle_degre);
                  }
            ?>
            </div>
        </body>
    </html>
    Sympa non ?

    franchement du PHP in Java, le pied tu fais ce qui te chantes
    Après c'est pas parfait, mais c'est un bel exemple de communication entre langages.

    Pour ce qui est des technologies tel que AngularJS, Node ... je trouve effectivement qu'il y a de grands changements, mais je ne suis pas sur que toutes entreprises prennent des risques sur de tels technologies. Je bosse sur du NoSQL et franchement, je sens bien que les personnes sont dubatives sur ces nouvelles approches.
    Quercus est un OVNI

    Olivier
    Architecte destructurant,
    be cool, be free

    Il nous reste Debian bien sûr

Discussions similaires

  1. calcul de la puissance en java
    Par osman.amine dans le forum Général Java
    Réponses: 5
    Dernier message: 02/08/2007, 11h37
  2. maths puissance en java.
    Par argon dans le forum Langage
    Réponses: 5
    Dernier message: 14/05/2007, 11h19
  3. Applet Java ou Script PHP
    Par LordBob dans le forum Général Conception Web
    Réponses: 4
    Dernier message: 03/10/2006, 14h12

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