je poste ici des fois que quelqu'un puisse éclairer mes lumières sur une erreur :
voila mon erreur lors de l’exécution de ma pages php :
- Code: Tout sélectionner
java stack trace: java.lang.Exception: Invoke failed: [[c:JasperFillManager]]->fillReport((o:JasperReport)[o:JasperReport], (i:Map)[o:HashMap], (i:Connection)[o:Response$UndeclaredThrowableErrorMarker]). Cause: java.lang.IllegalArgumentException: argument type mismatch
Voila le code php de ma page :
- Code: Tout sélectionner
<?php require_once("./JavaBridge/java/Java.inc");
$jrxmlFile = "list";
$jrxmlPath= "/var/www/test1/jasper/";
$reportPath = "/var/www/test1/report/";
$reportFile = "List_".date("dmY");
$map = new Java("java.util.HashMap");
try {
// 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://xxx.xxx.xxx.xxx/db");
// utilisateur
$Conn->setUser("db");
// mot de passe
$Conn->setPassword(db);
// Compilation du fichier JRXML en fichier Jasper
$sJcm = new JavaClass("net.sf.jasperreports.engine.JasperCompileManager");
$report = $sJcm->compileReport($jrxmlPath.$jrxmlFile.".jrxml");
// Remplir le modèle avec les données
$sJfm = new Java("net.sf.jasperreports.engine.JasperFillManager");
$print = $sJfm->fillReport($report, $map,$Conn->getConnection());
// Export du fichier au format pdf
$sJem = new JavaClass("net.sf.jasperreports.engine.JasperExportManager");
$sJem->exportReportToPdfFile($print, $reportPath.$reportFile.'.pdf');
if (file_exists("./report/".$reportFile.".pdf")){
header('Content-disposition: attachment; filename='.$reportFile.'.pdf');
header('Content-Type: application/pdf');
header('Content-Transfer-Encoding: binary');
//header('Content-Length: '.@filesize($reportsPath.$reportFile.'.pdf'));
header('Pragma: no-cache');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Expires: 0');
set_time_limit(0);
@readfile($reportPath .$reportFile.'.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";
}
?>
Voila rien de bien compliqué connexion à une db compilation du rapport sans passage de paramètre.
On dirait que l'erreur viendrait de la connexion sql ^^ Mais je vois pas ou !
Avant cela fonctionnai bien mais j'ai du rajouter des lib pour compiler d'autre rapport avec des graph 3D
Je suis sous linux Debian
Apache 2.0
Php 5
mysql 5
Tomcat 5 avec javabridge
Ireport 3.7.3
Donc si quelqu'un à une idee de mon erreur
Merci d'avance