Il y a actuellement 218 visiteurs
Jeudi 28 Mars 2024
accueilactualitésdossierscomparer les prixtélécharger gratuitement vos logicielsoffres d'emploiforum informatique
Connexion
Créer un compte

PHP, JAVABRIDGE

Besoin d'aide pour configurer un serveur ? Vous souhaitez obtenir des conseils pour référencer votre site ? Un petit souci pour accéder à votre FTP ? Des soucis de programmation en PHP / ASP / HTML / XHTML / XML / XSLT / CSS / ReactJS / AngularJS / VueJS / CGI / PERL / C / MySQL / PostgreSQL ??? Nous avons peut-être la solution dans ce forum ...

PHP, JAVABRIDGE

Message le 31 Déc 2010 14:06

Bonjour,
Je suis bloquer sur l'integration PHP Javabridge sous Linux Debian !!

J'ai suivis le tutaux pour l'integration de Javabridge jusque la aucun pb depuis tomcat 5 tout fonctionne correctement.
J'ai meme fai un test de fichier PHP-Java :
Code: Tout sélectionner
<?php require_once("./testJava/java/Java.inc");
   // créer une instance de la classe Java java.lang.System dans PHP
   $system = new Java('java.lang.System');
   
   // accéder aux propriétés
   echo 'Java version='.$system->getProperty('java.version').' <br />';
   echo 'Java vendor='.$system->getProperty('java.vendor').'<br />';
   echo 'OS='.$system->getProperty('os.name').'  '.$system->getProperty('os.version').' on '.$system>getProperty('os.arch').'<br />';
   
   // Exemple avec java.util.Date
   $formater = new Java('java.text.SimpleDateFormat',"EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");
   
   echo $formater->format(new Java('java.util.Date'));
   ?>


Se code focntionne parfaitement il me renvoie bien les infos que je luis demande voici le reulstat :
Code: Tout sélectionner
Java version=1.6.0_21
Java vendor=Sun Microsystems Inc.
OS=Linux 2.6.26-2-686 on i386
vendredi, décembre 31, 2010 at 1:56:39 PM Heure d'Europe centrale


Bon pour moi j'ai pas de souci l’intégration, Java fonctionne avec php.

J'en viens à mon problème, je dois générer des Raport avec Jasperreport, donc je me suis aider de procédure qui décrive la marche à suivre avec un code :
Code: Tout sélectionner
<?php require_once("./testJava/java/Java.inc");
$reportPath = "./jasper";
$jasperReportsLib = "./testJava/java/jasper";

$handle = @opendir($jasperReportsLib);
while(($new_item = readdir($handle))!==false) {
            
            $java_library_path = 'file:'.$jasperReportsLib.'/'.$new_item.';';
            echo ' file ===>'.$java_library_path.'<BR>';
         }
         try {
            // chargement des librairies au classpath
            java_require($java_library_path);
      
            // création de la connexion JDBC
            $Conn = new Java("org.altic.jasperReports.JdbcConnection");
            // driver      
            $Conn->setDriver("com.mysql.jdbc.Driver");
            // url de connexion
            $Conn->setConnectString("jdbc:mysql://localhost/db","db1","db1");
            // utilisateur
            $Conn->setUser("user");
            // mot de passe
            $Conn->setPassword("user");
      
            // Compilation du fichier JRXML en fichier Jasper      
            $sJcm = new JavaClass("net.sf.jasperreports.engine.JasperCompileManager");
            $report = $sJcm->compileReport($reportsPath ."ListingClient.jrxml");
      
            // Remplir le modèle avec les données      
            $sJfm = new JavaClass("net.sf.jasperreports.engine.JasperFillManager");
            $print = $sJfm->fillReport(      
            $report,
            new Java("java.util.HashMap"),
            $Conn->getConnection()
            );
      
            // Export du fichier au format pdf
            $sJem = new JavaClass("net.sf.jasperreports.engine.JasperExportManager");
            $sJem->exportReportToPdfFile($print, $reportsPath .$reportFileName.".pdf");
      
            if (file_exists($reportsPath .$reportFileName.".pdf")){
                 header('Content-disposition: attachment; filename="'.$reportFileName.'.pdf"');
                 header('Content-Type: application/pdf');
                 header('Content-Transfer-Encoding: binary');
                 header('Content-Length: '. @filesize($reportsPath . $reportFileName.".pdf"));
                 header('Pragma: no-cache');
                 header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
                 header('Expires: 0');
                 set_time_limit(0);
                 @readfile($reportsPath .$reportFileName.".pdf") or die("problem occurs.");
             }
      
         } catch (JavaException $ex) {
             $trace = new Java("java.io.ByteArrayOutputStream");
            $ex->printStackTrace(new Java("java.io.PrintStream", $trace));
            print "java stack trace: $trace\n";
         }   
      ?>


et la je me retrouver sur un beau message d'erreur :
Code: Tout sélectionner
stack trace: java.lang.Exception: CreateInstance failed: new org.altic.jasperReports.JdbcConnection. Cause: java.lang.ClassNotFoundException: org.altic.jasperReports.JdbcConnection VM: 1.6.0_21@http://java.sun.com/ at .......


On dirais que je n'arrive pas à charger mes fichiers .jar ( sachant que dans le répertoire j'ai bien mon fichier alticJasper.jar + tous les autres *.jar dont j'ai besoin) dont j'ai besoin, j'ai vue sur certain site qu'ils disaient qu'il fallait les mètre dans le répertoire du JVM mais rien n'y fait :/

Quelqu'un aurait il une petite idée pour résoudre ce problème ?
Jiibax
Sous Expert(e)
Sous Expert(e)
 
Messages: 52
Inscription: 29 Sep 2010 16:02
 


Re: PHP, JAVABRIDGE

Message le 03 Jan 2011 10:49

Bonjour et Bonne Anneé 2011 ;)

Je viens au news j'ai trouver une parti de mon problème :)

Le problème venez au moment de l’installe il disais de faire un cp du répertoire javabridge et de le mètre dans le dossier du site web et bien c'est pas bon ça !!!!

il suffit juste de crée un lien dans votre site qui point sur le dossier Javabridge de mettre vos fichiers *.jar dans le dossier WEB-INF/lib de redémarrage Apache et Tomcat et le tour est joué :) là mais jar sont bien charger ;)

et Comme un problème en entraîne toujours un autre voici la suite :
Code: Tout sélectionner
java stack trace: java.lang.Exception: Invoke failed: [[o:JdbcConnection]]->setConnectString([o:PhpParserString], [o:PhpParserString], [o:PhpParserString]). Cause: java.lang.NoSuchMethodException: setConnectString([o:PhpParserString]


Si je trouve la solution entre temps je reviendrais la poster :)
Sinon si quelqu'un a une idée ?
Jiibax
Sous Expert(e)
Sous Expert(e)
 
Messages: 52
Inscription: 29 Sep 2010 16:02
 

Re: PHP, JAVABRIDGE

Message le 03 Jan 2011 17:46

Voila j'ai trouvé petit erreur vraiment bete dans mon script en faite j'avais mis 2 x user et mot de passe ^^

script modifier :
Code: Tout sélectionner
$Conn->setConnectString("jdbc:mysql://localhost/db")


et ça fonctionne très bien :)
Jiibax
Sous Expert(e)
Sous Expert(e)
 
Messages: 52
Inscription: 29 Sep 2010 16:02
 

Re: PHP, JAVABRIDGE

Message le 03 Jan 2011 22:59

Merci du retour... on ne t'a pas aidé mais ce que tu as mis aide (ou aidera) surement les autres.
Avatar de l'utilisateur
CaSa
PC-Infopraticien
PC-Infopraticien
 
Messages: 9040
Inscription: 13 Mai 2003 16:32
Localisation: Sisteron... et jamais loin d'une Debian
 

Re: PHP, JAVABRIDGE

Message le 04 Jan 2011 09:27

Pas de souci pour le retour, c'est un forum d'entraide c'est fait pour :)
et si j'ai d'autre info ou si j’optimise mon code je vous ferais un retour ici ;)

Car intégration Java sur Php + iReport pas évident, mais quand ça fonctionne on obtient de très bon résultat....
Jiibax
Sous Expert(e)
Sous Expert(e)
 
Messages: 52
Inscription: 29 Sep 2010 16:02
 

Re: PHP, JAVABRIDGE

Message le 14 Avr 2011 13:05

Bonjour,
Je suis en ce moment en stage et je dois utiliser javabridge (sous windows moi par contre...). Mais je galère depuis deux-trois jours pour la configuration... Peux-tu me dire quel tuto tu as suivit ?
En voulant tester le code
Code: Tout sélectionner
<?php

// get instance of Java class java.lang.System in PHP
$system = new Java('java.lang.System');

// demonstrate property access
echo 'Java version=' . $system->getProperty('java.version') . '<br/>';
echo 'Java vendor=' . $system->getProperty('java.vendor') . '<br/>';
echo 'OS=' . $system->getProperty('os.name') . ' ' .
             $system->getProperty('os.version') . ' on ' .
             $system->getProperty('os.arch') . ' <br/>';

// java.util.Date example
$formatter = new Java('java.text.SimpleDateFormat',
                     "EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");

echo $formatter->format(new Java('java.util.Date'));

?>

j'ai rencontré l'erreur suivante :

Code: Tout sélectionner
Fatal error: java() [<a href='function.java'>function.java</a>]: Unable to load Java Library jvm.dll, error: Le module spécifié est introuvable. in D:\profiles\lambrois\My Documents\apply\index.php on line 4


A priori il ne trouve pas le fichier jvm.dll, mais comment faire pour le lui indiquer ?

Voila merci d'avance ;)
Dests
Visiteur
Visiteur
 
Messages: 1
Inscription: 14 Avr 2011 12:57
 

Re: PHP, JAVABRIDGE

Message le 14 Avr 2011 16:17

salut,
voila je me suis servi de ce site pour installer Javabridge :
http://php-java-bridge.sourceforge.net/pjb/index.php

Si tu as besoin n’hésite pas.

Pas évident à mètre en place mais après c'est impec pour intégrés java sur du php :)

Par contre pense à faire un Require_once("path_Javabridge/java/Java.inc");
Je pense même que ton problème viens de la car il ne trouve pas la lib java...
Bon courage
Jiibax
Sous Expert(e)
Sous Expert(e)
 
Messages: 52
Inscription: 29 Sep 2010 16:02
 



Sujets similaires

Message java - PHP JavaBridge
bonjour,je veux utiliser des rapports crées par ireport dans mon code php.je travaille sous win xp.j'ai installé easyphp , tomcat et javabridge.Code: Tout sélectionner<?phpdefine('JAVA_INC_URL','http://localhost:8080/JavaBridge/java/Java.inc');require_once(JAVA_INC_URL);// creer une instance da a ...
Réponses: 0


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 6 invités


.: Nous contacter :: Flux RSS :: Données personnelles :.