| 

.NET C# Java Javascript Exception

1
Die Methode fillReport benötigt einen Path als String für den Zugriff auf die Jasper Datei mit den Formatierungsdaten. Ich verwende den Pfad
String pathString = "Build\Reports\myForm.Jasper"


und rufe damit die Methode:
JasperPrint print = JasperFillManager.fillReport(pathString,mapParam,jrTblMmodelDS);


Das funktioniert nur bei der Java Applikation. Als Browser Applet muss der Pfad entsprechend angepasst werden. Mit welcher JAVA Methode lässt sich das erreichen oder gibt es eine andere Jasper FillReport Methode, die für den Applet Einsatz eher geeignet ist?
News:
03.01.2013
mobidat 63 1 7
1 Antwort
0
Habe das Problem selbst gelöst! Zunächst muss man neben den Jasper üblichen Bibliotheken die Datei servelet-api-2.4.jar in den Klassenpfad einbinden. Erst dann stehen einem die notwendigen Servlet Methoden zur Verfügung.
//Jasper Print Objekt
JasperPrint print = null;

//Inputstream Jasper Datei
InputStream reportStream = null;

String reportName = "myJasper";

//Sofern Applet Modus
if(Application.isApplet())
{
reportStream = Servlet.class.getResourceAsStream("/Build/Reports/" + reportName
+ ".jasper");
}


//Sofern Application Modus
else
{
File file = new File("Build" + file.separatorChar + "Reports"
+ file.separatorChar + reportName + ".jasper");
try
{
reportStream = file.openInputStream();
}
catch(FileNotFoundException e)
{
e.printStackTrace();
}
}


Die Methode "Application.isApplet" wird von meiner bevorzugten IDE XDEV 3.2 unterstützt und muss auf Ihre verwendete Bibliothek jeweils angepasst werden. Dort wird die Fallunterscheidung getroffen - Programm läuft als JAVA Application oder als JAVA Applet.

Im Vergleich zu meiner in der Frage verwendeten Vorgehensweise, wird hier ein Input-Stream verwendet - statt dem Datei Aufruf in der fillReport Methode.

Das funktioniert wunderbar - nur wird beim Aufruf als Applet ein Zertifikat verlangt. Kann man das umgehen? Falls jemand eine Idee dazu hat, würde ich mich freuen.
22.01.2013
mobidat 63 1 7

Stelle deine Java-Frage jetzt!