2012-03-24 8 views
1

ich eine JAR-Datei durch Feder roo (Maven Projekt - Persistenz Archiv) erstellt haben Unit-Tests laufen gut, die betroffenen Dateien sind auf der folgenden PositionFrühling Persistence-Archiv und EntityManager ist null, wenn sie von Web-Anwendung Zugriff auf

jarFile/META-INF/persistence.xml 
jarFile/META-INF/applicationContext.xml 
jarFile/META-INF/applicationContext-jpa.xml 
jarFile/META-INF/database.properties 

Die Komponententests laufen einwandfrei.

Da es ein Maven-Projekt war, habe ich es zum lokalen Repository hinzugefügt, indem ich den Befehl "mvn install" ausgeführt habe und danach habe ich es als Abhängigkeit zu einer anderen Maven-basierten Web-Anwendung hinzugefügt.

Ich verwende die Webanwendung mit mvn jetty: run command. die betroffenen Dateien in der Webanwendung sind.

webApp/WEB-INF/web.xml 
webApp/WEB-INF/applicationContext.xml 

Das Problem * Die Belastung der Webapp/WEB-INF/applicationContext.xml aber wie kann ich jarfile/META-INF/applicationContext.xml oder nicht seine Belastung des Kindes überprüfen? tatsächlich, wenn ich versuche, auf die Service-Klassen-Methoden von Persistenz-Archiv zuzugreifen, ist der EntityManager NULL. * Wenn ich versuche, ContextConfigLocation-Direktive (ausprobiert verschiedene Optionen) in web.xml, Es lädt nicht einmal die webapp/WEB-INF/applicationContext.xml.

Was ich will Verwenden Sie die Service-Methoden (die Entitymanager verwendet) aus Persistenz Archiv aus meiner Webanwendung.

Vielen Dank im Voraus.

+0

Wie importieren Sie den untergeordneten Anwendungskontext - ist das so: , wenn dies nicht der Grund dafür sein könnte, dass die Ressource nicht gefunden wird –

+0

Biju bedankt sich für die Antwort. –

Antwort

0

Fanden Sie die Antwort, indem Sie ein bisschen herum graben. Eigentlich war ich verwirrt mit verschiedenen Möglichkeiten/Syntax, um die Kontextdatei einzuschließen, versuchte mit allen Arten von Classpath *: xxx Syntax, aber tatsächlich ist das WEB-INF nicht auf dem Klassenpfad, also müssen folgende zu web.xml hinzugefügt werden die Haupt webApp/WEB-INF/applicationContext.xml laden hatte

<context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/applicationContext.xml</param-value> 
    </context-param> 

Dann folgendes WebApp/WEB-INF/applicationContext.xml

<import resource="classpath*:META-INF/spring/applicationContext*.xml" /> 

Nun ist die Webapplikation lädt den Kontext hinzufügen Datei aus der JAR-Datei. Und die Dinge funktionieren.