Page 1 sur 2 12 DernièreDernière
Résultats de 1 à 10 sur 15

Sujet : page html en sortie standard

  1. #1
    Visiteur MP
    Visiteur MP

    page html en sortie standard

    Bonjour à tous,

    J\'aimerai savoir comment il est possible de rediriger la sortie standard d\'un programme java dans une page web, html.
    Sachant que j\'ai un script php qui a la base lance mon programme java, à la fin de mon programme, j\'ai tout une série de statistiques que je redirige dans un fichier texte. J\'aimerai que tous ces System.out.println soient dans ma page web du navigateur qui m\'a servi à lancer mon programme java.

    Il en va de soit que je veux que ce soit le programme java qui produise l\'affichage et non mon script php qui récupère le contenu résultat du programme.


    Je demande car j\'ai jamais fait un truc comme ça en java, alors si quelqu\'un a des ptits codes ou des bon liens...

    Mes questions en plus :
    Il y a-t-il des contraintes sur le navigateur ? Est-on obligé de passer par du JSP ou une applet java ?

    merci de vos réponses,
    ++
    :

  2. #2
    Membre MP
    Inscrit
    août 2013
    Messages
    2 538
    pour tes questions en +. je crois que tu est obliger de passé par des jsp ou un applet ... Normalement la partie Web est une entité assez disctincte de Java avec beaucoup de limitation ...
    Maintenant je laisse Zeb t\'en dire plus, mes connaissance techniques à ce niveau sont limité :wink:
    Admin retraité du site MoteurProg.Com" la meilleur façon de remercier est de pouvoir aider les autres à son tour !! "http://www.moteurprog.com

  3. #3
    Membre MP
    Inscrit
    août 2013
    Messages
    1 823
    Pour utiliser JSP ou Servlet il faudrait être dans une appli web Java (qui elle gère les flux HTTP), donc avoir les services d\'un serveur du genre Tomcat, Orion, Jboss ou autre (qui s\'appuient eux même sur apache).

    dans ton cas il y a beaucoup plus simple:

    ta page web est composée d\'une entête (classique), d\'un corps (c\'est la que doivent être tes info et d\'un pied de page (encore classique)

    Bien souvent, les appli php ont un entête et un pied de page déjà defini et propre au site. Je vais dons les ecarter de la solution.

    Pour le corps c\'est assez simple, au lieux de diriger les resultas vers le flux ecran, il sufit de les rediriger vers un flux de fichier en incluant le formatage des balises HTML au passage.

    Une fois ceci fait, il sufit de jouer sur le timming php pour attendre la fin du traitement Java et de faire un include tout con pour afficher par l\'intermediaire d\'apache le resulta fourni par Java au tracers de l\'appli Php.

  4. #4
    Visiteur MP
    Visiteur MP
    Et pourtant j\'avais écrit en GRAS !!!

    :wink:

    Bien entendu zeb que pour l\'instant je suis dans cette configuration :
    Lancer mon programme java depuis mon script php, diriger la sortie de mon prog java dans un fichier texte avec les balises HTML adéquates. Puis dans mon script php, je fais un affichage de mon fichier texte.

    Je réexpose donc mon problème :
    Je veux que mon affichage se fasse par le programme java, indépendemment du script php. Car l\'execution de mon programme java est longue et mon script php au bout de 30 seconde il me dit que le TIMER est arrivé à son terme, donc tout se coupe, (malgré que le programme java continue à tourner en tache de fond) quand il aura enfin terminé, mon script php n\'étant plus \"en action\" ne produira pas l\'affichage !!!

    La partie de mon script
    Code:
      function java($classe){
      $resultat = exec(\"java $classe\");
      $fichier=\'fichier.txt\'; 
      $contenu = fread(fopen($fichier, \"r\"), filesize($fichier)); 
      echo $contenu; 
    }
    Mon affichage java
    Code:
    FileOutputStream fichier = new FileOutputStream(\"C:\\\\...\\\\fichier.txt\",true);
    
    // On associe notre FileOutputStream à un PrintStream avec auto-flush
    // On déclare notre PrintStream comme sortie standard
    System.setOut(new PrintStream(fichier,true));
    
    System.out.println(\"<b><br/>Analyse statistique :</b><br/><br/>\");
    // Affichage du resultat des tests
    ...
    Je peux pas faire mieux, je m\'auto note à 18/20 pour l\'explication... Aie mes chevilles gonflent, ma tete aussi... Mais que se passe-t-il, ha oui zeb se marre par ce que j\'ai jamais fait de JSP !!
    :

    Bonne journée à tous...
    ++

  5. #5
    Membre MP
    Inscrit
    août 2013
    Messages
    1 823
    En fait, tu pourrai envisager de ralentir php ou de changer le timming dans php.ini histoire qu\'il attende Java. (j\'ai fait ça ce matin car mon serveur pop est un peu lent a me renvoyer mes mail)

    Mais comme je sais que ce n\'est pas ce que tu desire, regardons le prob sous un autre angle :

    Java en tant qu\'appli de base (pardon pour le \'de base\' (manque de respect la)) ne peux pas afficher dans une page web sans serveur (sauf d\'ouvrir un navigateur en lui passant l\'URL du fichier comme argument).

    Le serveur php n\'est pas prevu pour afficher une jsp d\'un autre process. (sauf bidouille que je connais pas)

    Je supose de plus que le client web (navigateur) connecté au site php est je ne sais ou sur la planette.

    Donc ma question est la suivante :

    Comment faire pour ouvrir un navigateur, ou contacter un navigateur existant, depuis une appli qui s\'execute sur un serveur, à Coté d\'un serveur Apache ebergeant un site en php ?

    Pour moi c\'est pas possible. Ou comme je le disais, une bidouille a la con que je voie pas.

    Sinon (j\'aime bien ma soluce) attendre la fin du process Java en testant l\'existance du fichier a inclure. et augmenter le time out de php.

    ;;;;;;;;;;;;;;;;;;;
    ; Resource Limits ;
    ;;;;;;;;;;;;;;;;;;;

    max_execution_time = 100 ; Maximum execution time of each script, in seconds
    max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
    memory_limit = 10M ; Maximum amount of memory a script may consume (8MB)
    ça c\'est php.ini dans le rep Apache le \'max_execution_time\' est normalement a 30 (secondes)

    Une solution est aussi de faire patienter l\'utilisateur avec une merde genre Progressbar et de faire un reload a l\'issue dans php. (une page de progressebar et ensuite chargement de la page des resultat.

    En fait je pense comprendre ton prob mais a par cette soluce, je voie pas d\'autre solution dans l\'instant.

    Donne des news :wink:

    Ps : de toute façon quand l\'utilisateur lance sa demande de recherche, il dois biens savoir que la reponse est pas pour tout de suite.

    Autre soluce (pas sur que ton code le supporte) inclus le code Java dans une Applet et du cou la page est chargée, et l\'utilisateur lance son travail sur le client. Le resultat, etant attendu bien au chaux sur le poste client et affiché par l\'applet.

  6. #6
    Visiteur MP
    Visiteur MP
    RE moi, merci zeb pour toutes ces solutions.

    Bon pour ce qui est de la modification du timer du serveur, il est bien entendu impossible pour moi de la changer, tout simplement parce que mon appli tournerai sur mon serveur, mais ne serai pas portable sur le seveur de ma boite.

    J\'aime assez l\'idée de la progress barre mais je ne pense pas que ça puisse résoudre mon problème de timer, apres 30 seconde de preogress barre, meme dilème.

    En fait je viens de penser à un truc.
    Je vais faire ma page avec un gros bouton au milieu qui pointe sur une page qui chargera le resultat, avec un message d\'attente du style : le temps de calcul de votre demande est estimé à x secondes. Merci de patienter ce temps et d\'appuyer sur le bouton.
    C\'est bien lourd et super aléatoire mais bon, je vois rien d\'autre alors...

    Si quelqu\'un a une idée, meme si maintenant on se retrouve plus dans du code php, alors on est peut etre plus sur le bon forum...
    :wink:

    En tant que modérateur PHP et JAVA je dirai rien si il y a pour aujourd\'hui une petite exception... Mais faudrait que ça contrarie personne...
    En cas de tout avis contraire de zeb ou de l\'Admin, merci de le respecter.

    Bonne fin de journée à tous sous cette chaleur accablante,

    ++

  7. #7
    Membre MP
    Inscrit
    août 2013
    Messages
    1 823
    J\'aime assez l\'idée de la progress barre mais je ne pense pas que ça puisse résoudre mon problème de timer, apres 30 seconde de preogress barre, meme dilème.
    que neni !!!

    en fait il faux penser comme suit :

    quand l\'utilisateur fait sa demande de scan, tu lance le scan et ensuite tu lui ser immédiatement une pag d\'attente. (donc jusque la pas de prob c\'est comme d\'ab)

    Ensuite dans la page d\'attente, tu as une progressebar en javascript qui une foie le temps necessaire ecoulé (fin du scan) appel la page de resulta. (qui ce coup la est dispo)

    fin du problème. et pas de time out.

  8. #8
    Visiteur MP
    Visiteur MP
    quand l\'utilisateur fait sa demande de scan, tu lance le scan et ensuite tu lui ser immédiatement une pag d\'attente. (donc jusque la pas de prob c\'est comme d\'ab)
    Que neni !!

    Un script php s\'execute entièrement avant tout action. Ainsi si je lance mon appli java et puis que je fais un redirect juste après, il ne fera mon redirect qu\'à la fin de l\'execution de mon appli.

    Je vois pas comment contourner... C\'est chiant !!!
    J\'ai essayé un truc du style :
    Code:
    function patienter($temps){
    	echo\'<center>\';
    	echo \'Merci de patienter \'.$temps.\' secondes puis de cliquer sur le bouton ci-dessous\';
    	echo\'<form method=\"post\" action=\"resultat.php\">\';
    	echo\'<INPUT TYPE=SUBMIT VALUE=\"Analyse\">\';
    	echo\'</form>\';
    	echo\'</center>\';
    }
    
    
    /**
     * Fonction permettant de lancer le programme java
     **/
    function java($classe,$temps){
    	patienter($temps);
      $resultat = exec(\"java $classe\");
    }
    et meme là, il affiche pas mon bouton... il execute l\'appli java et seulement apres il affiche le tout. c\'est donc du gros nimporte quoi étant donné que si l\'exec de l\'appli dure plus de 30 secondes, j\'ai tuojours mon erreur de timer et donc pas de possibilité d\'appeler mon affichage...

    P.S : Bon on continue à faire du code moitié php moitié java sur ce post, j\'espère que ça ne perturbe pas trop de monde...
    :wink:

    ++

  9. #9
    Membre MP
    Inscrit
    août 2013
    Messages
    1 823
    En fait Java s\'execute dans le même processus que php...

    Une soluce serait de le faire se lancer comme un process supplementaire (donc independant et tu reprendrai la main dans php suite au \'createProcess\'.

    As tu regardé dans les fonctions de type :

    Forks the currently running process (PHP 4 >= 4.1.0)
    int pcntl_fork ( )
    The pcntl_fork() function creates a child process that differs from the parent process only in it\'s PID and PPID. Please see your system\'s fork(2) man page for specific details as to how fork works on your system.
    (Pas eu le temps de tester)

  10. #10
    Membre MP
    Inscrit
    août 2013
    Messages
    1 823
    Si sa passe pas dans php, il y a surement moyen de le faire en couche intermediaire dans Java.
    :wink:

Page 1 sur 2 12 DernièreDernière

Informations du sujet

Utilisateur(s) parcourant ce sujet

il y a actuellement 1 utilisateur(s) parcourant ce sujet. (0 membre(s) et 1 visiteur(s))

Règles des messages

  • Vous ne pouvez pas créer de sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas importer de fichiers joints
  • Vous ne pouvez pas éditer vos messages
  •  
  • Les BB codes sont Activés
  • Les Smileys sont Activés
  • Le BB code [IMG] est Activé
  • Le code [VIDEO] est Activé
  • Le code HTML est Désactivé