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 ?