Pergunta

Trabalho com Struts há algum tempo, mas para um projeto que estou finalizando me pediram para separar Templates (arquivos .vm de velocidade), configurações (struts.xml, persistence.xml) do arquivo WAR principal.

Eu tenho tudo na estrutura padrão como:

    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 aparentemente não consigo encontrar documentação sobre como configurar (provavelmente em struts.xml) para onde vão meus modelos e onde estarão os arquivos de configuração.

Acho que terei que usar configurações no servidor de aplicação também (estou usando Jetty 5.1.14).

Então, alguma luz sobre como configurá-lo?

Obrigado


Bem, o objetivo de alterar o local dos modelos é colocá-los em uma área acessível ao designer, para que qualquer modificação necessária, o designer possa carregá-los em seu computador, editá-los e carregá-los novamente.Acho que esse é um cenário comum.Então, provavelmente estou faltando alguma coisa em minha pesquisa.Talvez eu esteja focando em configurá-lo no lugar errado...Alguma ideia ?

Foi útil?

Solução

Se entendi corretamente sua pergunta sobre os arquivos de configuração do Struts, eles estão especificados em web.xml.Encontre o parâmetro de configuração do servlet Struts.O valor do parâmetro pode ser uma lista de arquivos XML separados por vírgula para carregar.Por exemplo:

<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>

Veja isso Guia de suportes sob 5.3.2.E sim, isso também se aplica ao 2.x.

Outras dicas

Para persistência.xml, especificamente, você pode colocar uma unidade de persistência em um JAR separado, que pode ser implementado separadamente do WAR do seu aplicativo da web, ou ambos juntos em um arquivo EAR, dependendo do que seu servidor de aplicativos suporta.Por exemplo, o manual do JBoss descreve isso como Implantar EAR com JAR EJB3.

Para struts-config.xml Espero que você tenha que substituir o código do Struts que o carrega, se quiser usar um local não padrão.

Não sei sobre os modelos do Velocity.

Em geral, as aplicações web apenas carregam recursos de dentro do WAR, por razões de segurança.Existem outras técnicas que você pode usar, mas pode ser mais fácil tentar weblets, que parece ser uma estrutura projetada para permitir o carregamento de recursos de um JAR separado.

Você precisa olhar para velocity.properties arquivo em sua pasta WEB_INF.IMHO é aqui que você precisa alterar seu raiz do modelo mudando a propriedade file.resource.loader.path.

Espero que ajude, petróleo

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top