Vraptor 3 - Localizar Jsp dentro de jar

3 respostas
F

Boa noite pessoal,

Estou trabalhando com Vraptor 3 a um tempo, e modifiquei a saída padrão dos arquivos JSP, ou seja, o vraptor não procura mais o arquivos no diretóprio WEB-INF/JSP, Realizei essa mudança sobrescrevendo a classe "DefaultPathResolver" (isso funcionou 100%).
Minha dúvida é como eu faria para que ele considerasse os arquivos que estão dentro de jars que são depêndencia da minha aplicação?

Resumindo:
Minha aplicação web tem depência de um outro projeto (separado), neste projeto tenho um controller (@Resource) que é reconhecido e executado pelo vraptor, porém o jsp equivalente ao mesmo não é carregado pois este fica dentro de um jar no container web.

Abaixo segue minha alteração
@Component
public class PathResolver extends DefaultPathResolver {

        public PathResolver(FormatResolver resolver, HttpServletRequest request) {
	super(resolver);
	this.request = request;
    }

   
    protected String getPrefix() {

	return "/views/";
    }

}

3 Respostas

Lucas_Cavalcanti

não é possível fazer um forward da requisição para um JSP que está dentro de um jar, infelizmente…

vc pode de alguma forma tentar extrair os jsps para a pasta padrão dos jsps durante a geração do war, ou vc pode tentar usar outra view como o freemarker ou o velocity.

F

Lucas consegui resolver de um forma bem simples! Apenas organizei meus JSPs da seguinte forma:

Organização projeto de Dependência

src
…main
…java (aqui fica os controller)
…resources
…[color=blue]META-INF[/color]
…[color=blue]resources[/color]
…[color=blue]views[/color]

Apenas colocando os resorces dentro de WEB-INF/resources o container web já consegue encontrá-los. O interessante é que o mesmo continua dentro do jar, não foi preciso mudar nada a nível de código apenas reorganizar os arquivos :wink:

Material de referência:
https://blogs.oracle.com/alexismp/entry/web_inf_lib_jar_meta

obs: Estou trabalhando com container web Tomcat-7.0.32

Lucas_Cavalcanti

Olha só!! não sabia disso, valeu! =)

Criado 23 de abril de 2013
Ultima resposta 24 de abr. de 2013
Respostas 3
Participantes 2