PHP5 / Serveur IIS : appel JAVA (

PHP5 / Serveur IIS : appel JAVA ( - Java - Programmation

Marsh Posté le 12-11-2009 à 12:39:51    

Bonjour,
 
j'ai problème avec mon appel JAVA dans ma page PHP
voici ma page PHP de test index.php(toute simple)
 

Code :
  1. <?php
  2. require_once("java/Java.inc" );
  3. $system = new Java("java.lang.System" );
  4. print "Java version=".$system->getProperty("java.version" )." <br>\n";
  5. ?>


 
voici l'erreur reçue après 30 secondes:(
 

Citation :

Warning: fsockopen() [function.fsockopen]: unable to connect to 127.0.0.1:8080 (Une tentative de connexion a échoué car le parti connecté n'a pas répondu convenablement au-delà d'une certaine durée ou une connexion établie a échoué car l'hôte de connexion n'a pas répondu. ) in C:\Inetpub\wwwroot\testphp\java\Java.inc on line 922
 
Fatal error: Maximum execution time of 30 seconds exceeded in C:\Inetpub\wwwroot\testphp\java\Java.inc on line 922


Il semble pointer sur le 8080 ...
 
- j'utilise IIS port 80
- j'ai aussi configuré le "java.port" dans "php.ini" à "localhost"...
 
Merci pour votre aide.

Reply

Marsh Posté le 12-11-2009 à 12:39:51   

Reply

Marsh Posté le 12-11-2009 à 16:21:06    

1) c'est quoi la lib que tu utilises pour faire ton appel java?
2) c'est le code de ta lib qui essaye de joindre quelque chose sur le port 8080, c'est censé faire quoi ton truc?
3) java.port devrait contenir un numéro de port, par sur un nom de machine, je dirais...


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 12-11-2009 à 18:54:40    

1ere chose, il s'agit du "Java.host" et non pas du "java.port" que j'ai configuré à "localhost" (oups)
 
ensuite,(du PHP 5)
j'utilise "Javabridge" comme librairie car je n'y arrivais avec "php-java"
 
le but (pour le moment ) est de tester du JAVA en PHP
pour au final, faire appel à des rapports iRreport(jasper)
(Pas facile....)
 
Bonne soirée

Reply

Marsh Posté le 12-11-2009 à 18:58:04    

j'ai l'impression que ce n'est pas du tout ce que tu cherches, ton Javabridge...t'as suivi les instructions d'install? il faut installer un tomcat...qui écoute par défaut sur le port 8080, en effet...


Message édité par skeye le 12-11-2009 à 18:58:10

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 12-11-2009 à 18:59:09    

t'as essayé de suivre ça?

 

http://charly-clairmont.developpez [...] r-reports/

 

[edit]

 

J'ai rien dit, c'est ce que tu sembles essayer de faire...mais tu devrais vérifierl'install de ton JavaBrudge...


Message édité par skeye le 12-11-2009 à 19:00:49

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 12-11-2009 à 19:40:32    

je me doute que ça doit-être de ce coté là qu'il y a un problème
j'ai déjà essayé plein de chose...
 
mais avec le "phpinfo"mais je n'arrive JAMAIS à avoir le partie java comme indiqué dans le document de ce lien...
 
REM : j'ai aussi lu qu'en php5, on ne devait plus utiliser le "javadridge.jar" !  

Reply

Marsh Posté le 12-11-2009 à 19:52:17    

lediz a écrit :


mais avec le "phpinfo"mais je n'arrive JAMAIS à avoir le partie java comme indiqué dans le document de ce lien...


effectivement tu ne risque pas :
 

Citation :

Note that the PHP/Java Bridge cannot be installed, it is just an XML protocol. Do not search for a PHP extension, java.so or php_java.dll. These extensions are obsolete since PHP 5. Everything needed to communicate with a Java servlet engine is part of PHP 5.


 
http://php-java-bridge.sourceforge [...] lation.php
 
Tu as bien suivi ça?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 13-11-2009 à 10:32:08    

Au fait, je n'ai pas installé la partie "Apache TOMCAT" !!!
Quant on parle d'installer un "Apache TOMCAT" pour javabridge ...
Que dois-installer pour IIS ?
 
Sur un autre serveur, nous testons le même chose avec une installation de EasyPHP(donc un serveur apache)
Est-ce ce serveur qui fait office de serveur "Apache TOMCAT" comme indiqué dans la documentation "php-javabridge" du lien ci dessus ?

Reply

Marsh Posté le 13-11-2009 à 10:34:28    

lediz a écrit :

Au fait, je n'ai pas installé la partie "Apache TOMCAT" !!!
Quant on parle d'installer un "Apache TOMCAT" pour javabridge ...
Que dois-installer pour IIS ?


 
tomcat. Qui est un projet de la fondation apache.
 

lediz a écrit :


Sur un autre serveur, nous testons le même chose avec une installation de EasyPHP(donc un serveur apache)
Est-ce ce serveur qui fait office de serveur "Apache TOMCAT" comme indiqué dans la documentation "php-javabridge" du lien ci dessus ?


rien à voir.
Tomcat est un serveur d'applications java (je simplifie.:o), c'est lui qui va faire tourner ton code java si j'ai bien suivi.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 13-11-2009 à 10:52:12    

en IIS : je viens d'installer un serveur TOMCAT sur le 8080(ça à l'air de toruner) :)  
 
maintenant passons à "javabridge"
- j'ai décompressé le "javabridge.war"  
- copie du répertoire "javabridge" dans "C:\Inetpub\wwwroot" (rep IIS)
- test PHP avec "java -classpath JavaBridge.war TestInstallation"
 
Erreur suivante : :pfff:  
"
Exception in thread "main" java.lang.NoclassDefFoundError: TestInstallation
"


Message édité par lediz le 13-11-2009 à 10:52:50
Reply

Marsh Posté le 13-11-2009 à 10:52:12   

Reply

Marsh Posté le 13-11-2009 à 11:02:25    

ton javabridge.war devrait être dans le webapps de tomcat...


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 13-11-2009 à 11:07:35    

OK c'est fait,  
 
- le "javabridge.war" est copié dans le répertoire"
C:\Program Files\Apache Software Foundation\Tomcat 5.5\server\webapps":)  
 
- dans l'explorer "http://127.0.0.1:8080/JavaBridge"
me renvoit bien une page HTML ayant comme tirtre "PHP/Java Bridge examples" avec différent choix... :)  
 
--> le 1er " Test and general php info" : me revoit bien les infos sur la version de PHP mais toujours sans la partie JAVA !!! :pfff:  

Message cité 1 fois
Message édité par lediz le 13-11-2009 à 11:08:33
Reply

Marsh Posté le 13-11-2009 à 11:09:22    

lediz a écrit :


--> le 1er " Test and general php info" : me revoit bien les infos sur la version de PHP mais toujours sans la partie JAVA !!!


C'est normal, putain de bordel de bite en bois.:o
Quand ils disent ça  

Citation :

Note that the PHP/Java Bridge cannot be installed, it is just an XML protocol. Do not search for a PHP extension, java.so or php_java.dll. These extensions are obsolete since PHP 5. Everything needed to communicate with a Java servlet engine is part of PHP 5.


 
c'est ce que ça signifie pour toi dans la pratique.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 13-11-2009 à 11:53:56    

OK,j'avance
Dans les différents exemples de  "http://127.0.0.1:8080/JavaBridge".
certains fonctionnes, d'autres non  
- ex: numberguess.php : OK :)  
- ex: hello.php : KO :pfff:  
 
J'essaye aussi ce simple  exemple et il ne fonctionne pas :  :pfff:  
 

Code :
  1. <?php
  2. java.lang.System dans PHP $system = new Java('java.lang.System');
  3. echo 'Java version=' . $system->getProperty('java.version') .;
  4. php>


provient de = http://serecom.univ-tln.fr/~tozza/ [...] mples.html
 
Je vais maintenant essayer d'intégrer l'appel de mes rapport Ireport.... :pt1cable: ça promet !
 
Merci pour ton aide,j'avance doucement mais surement... :sol:


Message édité par lediz le 13-11-2009 à 11:55:56
Reply

Marsh Posté le 16-11-2009 à 15:35:52    

bonjour ,
j'ai  "un peu" changé d'orientation...  :ange:  
j'ai créé une classe JAVA qui se connècte à la DB et qui génère un PDF  
cela fonctionne avec un "RUN" dans éclispe de ma classe :)  
maintenant j'aimerais utiliser cette classe dans mon code(HTML/PHP/...)
pouvez-vous m'aidez ? :jap:  
merci
 
voici le code de ma classe
 

Code :
  1. import java.sql.*;
  2. import java.util.HashMap;
  3. import java.util.Map;
  4. import net.sf.jasperreports.engine.JRException;
  5. import net.sf.jasperreports.engine.JasperCompileManager;
  6. import net.sf.jasperreports.engine.JasperExportManager;
  7. import net.sf.jasperreports.engine.JasperFillManager;
  8. import net.sf.jasperreports.engine.JasperPrint;
  9. import net.sf.jasperreports.engine.JasperReport;
  10. import net.sf.jasperreports.engine.design.JasperDesign;
  11. import net.sf.jasperreports.engine.xml.JRXmlLoader;
  12. public class GeneratePDF {
  13.     public static void main(String[] args) {
  14.         // - Paramètres de connexion à la base de données
  15.         String login = "prov_work";
  16.         String password = "prov_work";
  17.         Connection con =null;
  18.         //
  19.         try
  20.         {
  21.          Class.forName("sun.jdbc.odbc.JdbcOdbcDriver" );
  22.         }
  23.         catch(java.lang.ClassNotFoundException e)
  24.         {
  25.          System.err.print("ClassNotFoundException (try): " );
  26.          System.err.println(e.getMessage());
  27.         }
  28.         String dataSourceName = "DB_ODI";
  29.         String url = "jdbc:odbc:" + dataSourceName;
  30.         //
  31.         try
  32.         {
  33.          con = DriverManager.getConnection(url,login,password) ;
  34.      }
  35.          catch(SQLException sqle)
  36.      {
  37.          System.err.println(sqle.getMessage());
  38.         }
  39.         //
  40.         try
  41.         {
  42.             // - Chargement et compilation du rapport
  43.             JasperDesign jasperDesign = JRXmlLoader.load("D:\\Z_A_MOI\\ODI\\utils\\jasper_ireport\\iReport-1.2.5\\iReport-1.2.5\\rep1.jrxml" );
  44.             JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
  45.             // - Paramètres à envoyer au rapport
  46.             Map parameters = new HashMap();
  47.             //parameters.put("Titre", "Titre" );
  48.             // - Execution du rapport
  49.             JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, con);
  50.             // - Création du rapport au format PDF
  51.             JasperExportManager.exportReportToPdfFile(jasperPrint, "D:\\Z_A_MOI\\ODI\\utils\\jasper_ireport\\iReport-1.2.5\\iReport-1.2.5\\rep1.pdf" );
  52.            
  53.            
  54.             //byte[] bytes = JasperExportManager.exportReportToPdf(jasperPrint);
  55.       //:FacesContext context = FacesContext.getCurrentInstance();
  56.       //:HttpServletResponse response = (HttpServletResponse) context
  57.      //   .getExternalContext().getResponse();
  58.              } catch (JRException e)
  59.         {
  60.                     e.printStackTrace();
  61.         } finally {
  62.             try {
  63.                  con.close();
  64.                 } catch (SQLException e) {
  65.                         e.printStackTrace();
  66.                 }
  67.         }
  68.     }
  69. }



Message édité par lediz le 16-11-2009 à 15:37:46
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed