Domanda

Lavoro con Struts da un po' di tempo, ma per un progetto che sto terminando mi è stato chiesto di separare i template (file velocità .vm), le configurazioni (struts.xml, persistence.xml) dal file WAR principale.

Ho tutto nella struttura predefinita come:

    application
    |-- META-INF            -- Some configs are here
    |-- WEB-INF             -- others here
    |   |-- classes
    |   |   |-- META-INF
    |   |   `-- mypackage
    |   |       `-- class-files
    |   `-- lib
    |-- css
    `-- tpl                 -- Template dir to be relocated

E a quanto pare non riesco a trovare la documentazione su come impostare (probabilmente in struts.xml) dove vanno i miei modelli e dove saranno i file di configurazione.

Penso che dovrò utilizzare le configurazioni anche sul server delle applicazioni (sto utilizzando Jetty 5.1.14).

Allora, qualche luce su come configurarlo?

Grazie


Bene, l'obiettivo principale della modifica della posizione dei modelli è mettere i modelli in un'area accessibile al designer, in modo che, qualsiasi modifica necessaria, il designer possa caricarli sul proprio computer, modificarli e caricarli di nuovo.Penso che questo sia uno scenario comune.Quindi probabilmente mi sto perdendo qualcosa nella mia ricerca.Forse mi sto concentrando nel configurarlo nel posto sbagliato...Qualche idea ?

È stato utile?

Soluzione

Se ho capito bene la tua domanda sui file di configurazione di Struts, sono specificati in web.xml.Trovare il parametro di configurazione del servlet Struts.Il valore param può essere un elenco di file XML separati da virgole da caricare.Per esempio:

<servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
        <param-name>config</param-name>
        <param-value>
            WEB-INF/config/struts-config.xml,
            WEB-INF/config/struts-config-stuff.xml,
            WEB-INF/config/struts-config-good.xml,
            WEB-INF/config/struts-config-bad.xml,
            WEB-INF/config/struts-config-ugly.xml
        </param-value>
    </init-param>
    ...
</servlet>

Guarda questo Guida ai montanti sotto 5.3.2.E sì, questo vale anche per 2.x.

Altri suggerimenti

Per persistenza.xml, nello specifico, puoi inserire un'unità di persistenza in un JAR separato, che puoi distribuire separatamente dal WAR della tua applicazione web, o entrambi insieme in un archivio EAR, a seconda di cosa supporta il tuo server dell'applicazione.Ad esempio, il manuale di JBoss lo descrive come Distribuisci EAR con EJB3 JAR.

Per struts-config.xml Presumo che dovrai sovrascrivere il codice Struts che lo carica, se desideri utilizzare una posizione non standard.

Non conosco i modelli Velocity.

In generale, le applicazioni web caricano le risorse solo dall'interno di WAR, per ragioni di sicurezza.Esistono altre tecniche che puoi utilizzare, ma potresti trovarlo più semplice provarle weblet, che sembra essere un framework progettato per consentire di caricare risorse da un JAR separato.

Devi esaminare velocity.properties file nella tua cartella WEB_INF. IMHO è qui che devi modificare il tuo file radice del modello cambiando la proprietà file.resource.loader.path.

Spero che aiuti, Petr

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top