Zugriff auf Files aus einer EAR Anwendung

y0dA

Top Contributor
Hallo!
Folgende Sachlage:
Ich habe hier ein Webprojekt (JSF 1.2) welches als EAR File gepackt wird, einen Websphere als Server und möchte mit Jasperreport Berichte erzeugen.

Nun besteht das Problem darin dass ich nicht weiß wo ich die .jasper Files für die Berichte ablegen sowie wie ich drauf zugreifen soll. Im Detail muss ich nämlich das Templatefile (.jasper) befüllen nur bekomme ich immer eine FileNotFoundException weil ich mittels:
Java:
FacesContext facesContext = FacesContext.getCurrentInstance();
		ServletContext servletContext = (ServletContext) facesContext
				.getExternalContext().getContext();
		String path = servletContext.getRealPath("/");

folgenden Pfad bekomme:
Java:
File "D:\Entwicklung\ProjektXY\tools\IBM\WebSphere\AppServer\profiles\AppSrv01\installedApps\pc47348Node01Cell\Ear.ear\Web.war"
 
Zuletzt bearbeitet:

Deadalus

Bekanntes Mitglied
Du solltest in einer EAR Anwendung auf jeglichen Zugriff aufs Filesystem verzichten. Ich würde dir raten diese Files als Blob in der Datenbank zu speichern.

Denk daran das eine EAR Anwendung auch in einem Cluster laufen sollte. Da kannst du dir nie sicher sein welche Node gerade den Task abarbeitet und ob da lokal die Files liegen.
 
J

JohannisderKaeufer

Gast
Liegen die .jasper Dateien zur Zeit des Deployments vor?

Dann kannst du per class.getResourceAsStream("Pfad") auf die im ear liegenden templates zugreifen. JasperReports kann laut api auch mit streams umgehen.
 

y0dA

Top Contributor
Danke für eure Antworten!

Das mit dem speichern in die Datenbank hatte ich mir schon als Alternative gedacht?

Ja die .jasper Dateien liegen zur Zeit des Deployments vor.
Java:
class.getResourceAsStream("Pfad")
Werde ich am Montag mal testen.

Was ist denn hierbei so "best practise"?
Also in die DB speichern, oder im Projekt ablegen oder ein separaten Folder am Server anlegen und dort die Jaspers ablegen.
 
M

maki

Gast
Best Practice ist, sich an den Standard zu halten, dieser verbietet die Nutzung von java.io.File, dafür gibt es zB. JTA.

Ansonsten sind Streams eindeutig erlaubt ;)
 
M

maki

Gast
Dem entnehme ich dass du .jasper Dateien in der Datenbank halten würdest?
Wenn Jasper Streams schluckt dann natürlich nicht.

Und wo steht dass man java.io.File nicht nutzen sollte?
In der Spec.

java.io.File ist problematisch mit Clustering, Transaktionen und aufgrund der Tatsache dass es nie sicher ist ob die Archive (EAR,WAR) auch wirklich entpackt werden zu Dateien ;)
Es gibt JCAs um Files in EJBs zu nutzen, oder eben eine DB, aber wenn es nicht sein muss...

Ist zwar alt und nicht WAR/EAR spezifisch aber dennoch sehr interessant imho: Smartly load your properties - JavaWorld
 

y0dA

Top Contributor
Sodale.

Ich habe den Sachverhalt nun mit Streams umgesetzt. Lustigerweise funktioniert alles lokal auf meinem Websphere, wenn ich jedoch auf unsere Testsystem deploye (auch Websphere) dann ist der inputStream NULL.

Code:
		InputStream inputStream = getClass().getResourceAsStream(
				printConfiguration.getPrintTemplate());

Der Resourcenname ist einfach /package/Xyz.jasper also bspw.: /at/gv/print/DruckeLalelu.jasper.

Wollte dies hier nur mal gepostet haben vllt. hatte ja jemand schon ein ähnliches Problem und kann mir hierzu Tipps liefern..

Eventuell ein Classloader Problem?
Oder liegt es daran dass ich lokal Windows habe und das Testystem auf Linux läuft? Obwohl ja "/" auf Linux eh legitim ist=?
 
Zuletzt bearbeitet:

FArt

Top Contributor
Classloader-Problem ist sehr wahrscheinlich.

Nutze in einer Enterpriseumgebung nie den Classloader einer Klasse sondern den Kontext-Classloader. Die zwei könnten unterschiedlich sein und u.U. nicht gegenseitig delegieren, abhängig von Konfigurationsparametern am Applikationsserver.

Thread.currentThread().getContextClassloader()
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
pkm Frage wegen AJAX-Zugriff auf ein Servlet Allgemeines EE 1
G War zugriff auf Ejb in EAR Allgemeines EE 0
S MessageDrivenBean Problem beim Zugriff auf Stateful EJB Allgemeines EE 2
R RMI Zugriff zwischen zwei WAR Projekten Allgemeines EE 1
G Nativer bzw. direkter Zugriff auf Active Directory Allgemeines EE 4
B Cookie beim erstem Zugriff auf Web-App ablegen Allgemeines EE 3
T JMX und ServiceMBean - Zugriff mittels Client Allgemeines EE 2
W JSP Zugriff auf RemoteInterfaces Allgemeines EE 2
S Pfad-Zugriff über Servlet-init() Allgemeines EE 2
F problem mit nullpointer bei DB zugriff Allgemeines EE 2
G Direkter Zugriff auf Servlet- doPost Allgemeines EE 15
J JSF: Zugriff auf message bundle Allgemeines EE 1
C Tomcat Zugriff auf lokale Dateien Allgemeines EE 2
J geschützter Bean zugriff mit einem Rich-Client Allgemeines EE 2
T Zugriff auf EJB Allgemeines EE 3
L Zugriff auf Manager nur von localhost Allgemeines EE 11
S 1. ContrBean + Image zurück, 2. DB-Zugriff per utilityklasse Allgemeines EE 5
N Zugriff auf Webapp nur für localhost definieren (Tomcat) Allgemeines EE 2
T Zugriff auf persistentes Set in einem Objekt Allgemeines EE 2
R Zugriff auf Dateien in Meta/Web-Inf Verzeichnis Allgemeines EE 7
R Zugriff auf Filter Servlet Allgemeines EE 10
R Zugriff auf Managed Bean aus einem Filter Allgemeines EE 2
N zugriff auf sämtliche navigation rules Allgemeines EE 6
A Zugriff auf Parameter im Deployment Descriptor Allgemeines EE 2
T Zugriff auf Session-Objekte in JSP Allgemeines EE 2
H Velocity: Zugriff auf Sessionvariable? Allgemeines EE 3
S Keystore Zugriff aus Web-Anwendung Allgemeines EE 2
S Alternative zu Properties/ Zugriff außerhalb der Locale Allgemeines EE 7
J In einem Bean zugriff auf ein SessionBean? Allgemeines EE 2
S Kein Zugriff auf Persistence Unit Allgemeines EE 4
K Zugriff auf Dateien beschränken Allgemeines EE 2
K dynamischer Zugriff auf .properties (Struts) Allgemeines EE 2
R Servlet/JSP zugriff auf Thumbnails ausserhalb Webroot Allgemeines EE 3
G Parameterübergabe u. -zugriff bei jsp:include Allgemeines EE 3
K [Tomcat 5.5.12+Axis] Datenbank Zugriff Allgemeines EE 2
K JSF - Zugriff auf Managed Beans Allgemeines EE 2
H JSP Zugriff auf JavaBean Allgemeines EE 4
S zugriff von jsp-seiten auf java klassen Allgemeines EE 3
L Wie bekomme ich denn einen Zugriff auf die EJB ??? Allgemeines EE 7
C [JSP] errorpage: Zugriff auf exception-Objekt Allgemeines EE 2
S Drools: verarbeiten von mehreren DRL Files Allgemeines EE 0
OnDemand Deployen ohne .java Files Allgemeines EE 0
G separate log files in JBoss Allgemeines EE 2
I JBOSS Jsp Files Pfad im Servlet? Allgemeines EE 4
G .war Files Allgemeines EE 9
A resource property files Allgemeines EE 5
Q FileUpload/Download Files im Webroot werden gelöscht Allgemeines EE 4
G Ressourcen in War Files Allgemeines EE 3
J Test-Tools für JSP-Files? Allgemeines EE 9
_basti Sinnvolle Bereitstellung mehrerer JRE in einer Unternehmensumgebung Allgemeines EE 2
F Bestandteile einer WSDL Datei verstehen. Allgemeines EE 1
M Zeitgesteuertes Ereignis in einer dynamic web module Anwendung (eclipse) Allgemeines EE 3
G Unit Test einer JavaEE Anwendung schlägt fehl. JNDI Name nicht gefunden. Allgemeines EE 3
hjpsoft JSF Lösung einer Aufgabe im "Workshop Java EE7" Allgemeines EE 5
O MVC was gehört ins Model bei einer relationalen DB Allgemeines EE 5
J Mit @Schedule annotierte Methode wird nach einer Weile nicht mehr ausgeführt (JBoss AS 7.2) Allgemeines EE 0
OnDemand GUI in einer JavaEE Anwendung Allgemeines EE 6
X Konsolenausgabe einer java klasse in eine jsp umleiten Allgemeines EE 7
C Fotoverwaltung in einer Multi-User Anwendung Allgemeines EE 4
S Aufruf eines EJBs aus einer nativen Java-Applikation Allgemeines EE 1
R Unterschied Instantiierung einer normalen und einer EJB-Klasse Allgemeines EE 1
R Test einer JEE-Anwendung Allgemeines EE 3
B Problem beim einbinden einer CSS in eine JSP Allgemeines EE 8
M Wegweiser für Projekt einer Katastrophen-Stab-SW gesucht! Allgemeines EE 2
G Exception beim versenden einer Mail Allgemeines EE 3
K Image Folder außerhalb einer EAR lagern? Allgemeines EE 7
M Wie erhällt eine MessageDrivenBean Nachrichten aus einer Queue ? Wer Pollt da gegen die DB? Allgemeines EE 3
MQue include einer jsp in eine andere Allgemeines EE 4
J von einer Standalone zur Web Applikation Allgemeines EE 6
A Timeout nach 30 Minuten Laufzeit einer entfernten Methode Allgemeines EE 3
V JSP BEAN Speichern von einer Zahl nach eingabe Allgemeines EE 2
T Privates Attribut in einer JPA Entitiy Class ohne DB-Spalte? Allgemeines EE 3
G Alternative zu static im Kontext einer SSB Allgemeines EE 4
A Aus einer JSP zugreifen auf ein Objekt einer anderen JSP Allgemeines EE 4
A Geschachtelte Schleifen in einer JSF View ? Allgemeines EE 4
S Permanentbetrieb einer Applikation - Anfängerfrage Allgemeines EE 10
T Cookie setzen in einer JSP Datei Allgemeines EE 4
J Direktaufruf einer jsp nicht zulassen Allgemeines EE 2
O Anzeigen mehrerer columns in einer DataTable Allgemeines EE 4
S In einer Bean-Methode an ndere Beans kommen Allgemeines EE 7
M Wie zeige ich Attribute eines Objekts innerhalb einer JSP an Allgemeines EE 2
N GWT - RPC String-Array in einer List Allgemeines EE 2
RaoulDuke EJB 3.0 - Exceptions aus Methoden einer Session Bean Allgemeines EE 2
F [JNDI] Holen einer EJB Allgemeines EE 3
S Löschen einer Entity kaskadiert nicht auf Collection (1:n) Allgemeines EE 2
N Seiten aufruf in einer JSP Allgemeines EE 4
W Enter in einer Form mit mehreren Submits Allgemeines EE 2
A Problem / Fehler beim Einbinden einer Klasse in ein JSP Allgemeines EE 20
S ResourceBunlde in einer WebApp Allgemeines EE 2
K Prozess-Handling einer Batch-Datei mittels JSP Allgemeines EE 3
E Methoden einer Bean aufrufen? Allgemeines EE 4
G Wurzelverzeichnis einer Webanwendung ermitteln Allgemeines EE 2
P String in ein Textfeld einer externen Seite uebergeben ! Allgemeines EE 2
F Frage zur guten Architektur einer WebApp Allgemeines EE 2
C Externe Bibliothek in einer Webapplikation Allgemeines EE 4
K Design einer J2EE applikation? Allgemeines EE 2
T Änderung des Wertes einer Variable beim Klick auf Link Allgemeines EE 7
C In JSP Befehl zum Laden einer Seite in anderem Frame Allgemeines EE 3
N Einbindung einer Bean in eine JSP (Tomcat-Server 5.5.x) Allgemeines EE 2
S Struts 1.1 download einer Datei Allgemeines EE 4

Ähnliche Java Themen

Neue Themen


Oben