2009-05-15 17 views
14

Mit Struts2 müssen wir struts.xml im Klassenpfad haben, also funktioniert es nicht mehr unter WEB-INF. So ist die Art und Weise habe ich mein Projekt zu implementieren war es unter WEB-INF/classes zu halten und haben es ../struts2.xmlWo struts.xml zu setzen ist

2 Probleme sind:

  1. Eclipse-reinigt den Klassen-Ordner, wenn ich eine neu zu erstellen, so dass es löscht struts.xml
  2. Eclipse zeigt nicht den Ordner Klassen in meinem Projekt-Browser, so ist ein schlechter Ort, um Konfigurationsdateien an erster Stelle zu halten.

Wie geht es Ihnen Struts2 Eclipse-Entwickler dabei?

+0

C: \ Benutzer \ 342008 \ Desktop \ strus-structure.jpg – jcrshankar

Antwort

13

Sie können entweder die Datei struts.xml im Stammverzeichnis Ihres Quellverzeichnisses ablegen oder ein zusätzliches Quellenverzeichnis für Ressourcen einrichten und dort ablegen. Eclipse kopiert es glücklich in WEB-INF/Klassen für Sie, wenn es eine Kompilation macht.

+0

ich 404-Fehler bekommen, während diese Art und Weise zu tun !!!! Ich benutze tomcat6. Kannst du mir den Grund sagen, warum es so passiert? – Visruth

0

Ich benutze nicht Eclipse, also ist diese Antwort nicht spezifisch für Ihre Anforderungen, aber ich benutze Maven so haben wir alle "Ressourcen", die von der Anwendung benötigt werden in einem separaten Ordner namens "Ressourcen" und Wenn die Anwendung ist Diese Dateien werden automatisch an den entsprechenden Stellen kopiert. In Netbeans sind die Dateien in dem Ordner verfügbar und ich weiß, dass es Leute gibt, die Eclipse mit einem ähnlichen Setup benutzen.

Ich sollte darauf hinweisen, dass unser Projekt begann von appfuse, so dass die meisten dieser Konfigurationen vorbereiteten wurden. Sie können sehen, wie es dort gemacht wurde.

0

In zwei Projekten wird die Datei struts.xml im Ordner src (Java Resources) zusammen mit den Paketen und Bibliotheken hinzugefügt.

Bitte beachten Sie das Bild unten angegeben.

Struts 2 project directory view in eclipse

Wenn u mehr über Streben wissen wollen 2 Projektstruktur finden Sie unter this link

Hinweis: In Eclipse, Sie sind nicht erlaubt, eine Datei direkt in src Ordner einzufügen. Sie müssen es also zuerst an einer anderen Stelle im Projekt einfügen (z. B. im Ordner "WebContent"), und dann die Verschiebefunktion verwenden, um es an die richtige Stelle zu setzen (das ist der Ordner "src").

+0

Wo ist struts.xml hier? – Visruth

+0

Ich habe es auf diese Weise versucht. Aber ich bekomme 404 Fehler. Können wir einen technischen Chat haben ??? Wenn ja, komm http://visruthcv.appspot.com/ – Visruth

0

Sie können die struts.xml-Datei in src-Pakete (Java-Ressourcen) platzieren. Wenn der Kompilierungsprozess struts.xml-Datei im Verzeichnis ROOT/WEB-INF/classes generiert wird.

Wenn Sie immer wieder denselben Fehler erhalten, überprüfen Sie die Struts-Aktionen. überprüfen Sie den bereitgestellten Pfad der Anwendung und Sie können herausfinden, was Sie wollen. (struts.xml file)

2

Ich bin zu spät zur Party, wir können die struts.xml in einem beliebigen Verzeichnis im Klassenpfad der Webanwendung konfigurieren, aber den Speicherort mit dem Initialisierungsparameter "config" des Filters angeben Konfiguration in web.xml wie unten, wenn meine struts.xml Datei im "/ com/resources /" Verzeichnis ist.

<filter> 
     <filter-name>action</filter-name> 
     <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 
     <init-param> 
      <param-name>config</param-name> 
      <param-value>struts-default.xml,struts-plugin.xml,/com/resources/struts.xml</param-value> 
     </init-param> 
    </filter> 

Wenn wir bieten keine Config-Init-Parameter struts2 standardmäßig 3 Werte annimmt "Streben-default.xml Streben-plugin.xml, struts.xml", können Sie die struts2 Dispatcher Klasse Code unten sehen welches diese 3 Dateien zum Konfigurationsmanager konfiguriert.

String configPaths = (String)this.initParams.get("config"); 
if (configPaths == null) { 
    configPaths = "struts-default.xml,struts-plugin.xml,struts.xml"; 
} 
String[] files = configPaths.split("\\s*[,]\\s*"); 
for (String file : files) 
    if (file.endsWith(".xml")) { 
    if ("xwork.xml".equals(file)) 
     this.configurationManager.addContainerProvider(createXmlConfigurationProvider(file, false)); 
    else 
     this.configurationManager.addContainerProvider(createStrutsXmlConfigurationProvider(file, false, this.servletContext)); 
    }