2017-11-20 2 views
0

Derzeit habe ich ein Problem bei der Migration eines Java Enterprise-Projektformulars alten WAS-8 zu Liberty Profile 17. In meinem Fall die Umgebung kann eine Menge css/js-Dateien im Richfaces-Jar finden. eine Seite in den Browser laden, schreibt WLP17 Warnungen wie diese in das Logfile:Websphere Liberty Profil: [WARNING] SRVE0190E: Datei nicht in der Bibliothek gefunden, die in der EAR-Datei enthalten ist

[WARNING ] SRVE0190E: File not found: /org.richfaces.resources/javax.faces.resource/org.richfaces.staticResource/4.5.17.Final/PackedCompressed/org.richfaces/jquery.js 

ich das Projekt mit Maven bauen, und ich definiert die Richfaces Abhängigkeit in der Mutter pom wie folgt aus:

<dependency> 
    <groupId>org.richfaces</groupId> 
    <artifactId>richfaces</artifactId> 
    <version>4.5.17.Final</version> 
</dependency> 

Dann Ich habe mehrere EJB- und WAR-Projekte, die in einer EAR-Datei zusammengefasst sind. Die WAR-Projekte unter Verwendung von Richfaces enthalten eine Richfaces Abhängigkeit mit Rahmen versehen:

<dependency> 
    <groupId>org.richfaces</groupId> 
    <artifactId>richfaces</artifactId> 
    <scope>provided</scope> 
</dependency> 

Schließlich ist die EAR pom die Abhängigkeit von Richfaces hat, um sicherzustellen, dass die Bibliothek in der EAR-Datei enthalten ist. Aus irgendeinem Grund ist die Freiheit nicht in der Lage, Ressourcen zu finden, die sich im Richfaces-Jar befinden.

Ich habe die erstellte EAR-Datei untersucht, sie enthält die Richfaces-Bibliotheken. Dann inspizierte ich die Richfaces-Bibliotheken, die auch die Dateien enthalten, die nicht gefunden werden.

Gibt es noch mehr Konfiguration, die ich tun muss?

+1

Da Sie statische Web-Ressourcen zu dienen sind versucht, es Sinn machen kann package die richfaces-library in den WAR-projekten - eher das im E AR-Level wie du es anscheinend tust. – wtlucy

+0

Warum sollte ich die richfaces-Bibliothek in jedes WAR-Projekt packen? Für mein Verständnis ist es ebenso sichtbar wie seine Ressource im Bereich für alle Bibliotheken und Archive, die in der EAR-Datei gepackt sind. Ich kann richfaces-Tags in den JSF-Seiten ohne Laufzeitausnahmen verwenden. – Joko

+0

Ich machte eine weitere interessante Beobachtung: Einige Projekte statische Ressourcen (wie js und CSS-Dateien), die in Unterordner (wie resouorces/css/foo/bar.css) mit dem library-Attribut referenziert wurden (library = "css/foo") wurden auch nicht gefunden. Ich habe sie in den css-Ordner verschoben und jetzt sind sie gefunden. – Joko

Antwort

1

Jar-Bibliotheken, von denen erwartet wird, dass sie statische Dateien von META-INF/resources/liefern, sollten in der Webanwendung WAR gebündelt werden. Abschnitt 4.6 von dem Servlet 3.0 spec ist relevant:

Die getResource und getResourceAsStream Methoden nehmen einen String mit einem führenden „/“ als Argument, das dem Pfad der Ressource relativ zu der Wurzel des Kontextes gibt oder in Bezug auf das META-INF/Ressourcen-Verzeichnis einer JAR-Datei in der Web WEB-INF/lib Verzeichnis der Anwendung ...

0

@ Wtlucys Kommentar löste mein Problem. Vielen Dank.

Ich habe die Richfaces-Bibliotheken in die WAR-Dateien eingefügt, die diese Bibliotheken benötigen.

Verwandte Themen