Projeto [BundleTag]

Download: BundleTag.war

Projeto

Nome: BundleTag

D:\OneNote\Estudos\SCWCD\BundleTag

Objetivo:

Empacotar uma tag em um arquivo jar.

Veja também:

http://download.oracle.com/docs/cd/B25221_05/web.1013/b14430/taglibs.htm#i1013109

http://download.oracle.com/docs/cd/E12840_01/wls/docs103/taglib/admin.html (maneira antiga de se empacotar uma custom tag)

Lições aprendidas

Não se pode empacotar um jar dentro de outro jar por limitações do classLoader do java.

Dada a seguinte estrutura:

Eu estive imaginando ser possível que o arquivo Extenso.jar fosse empacotado dentro do arquivo BundleTag.jar, visto que o BundleTag.jar que é simplesmente a Tag empacotada e possui tal dependência (Extenso.jar).

Porém por uma limitação do classLoader, isso não é possível.

Então fica a pergunta:

Qual é a vantagem em se empacotar uma CustomTagLibrary em um arquivo Jar?

(1) Pode-se empacotar várias classes TagHandlers em um único arquivo jar.

(2) Pode-se colocar o arquivo *.tld dentro do arquivo empacotado jar.

(3) Pode-se setar dependências através do arquivo de manifesto contido dentro da pasta META-INF\MANIFEST.MF (para um próximo post)

Ou seja:

Os arquivos jar com dependências uns para os outros devem coexistirem na mesma pasta (lib) (BundleTag\WEB-INF\lib) da aplicação, porém nunca um empacotado dentro do outro !

http://download.oracle.com/javase/tutorial/deployment/jar/

Compilando:

D:\OneNote\Estudos\SCWCD projects\BundleTag>javac -cp “C:\Arquivos de programas\apache-tomcat-7.0.11\lib\jsp-api.jar“;”WEB-INF\lib\Extenso.jar” -d “WEB-INF\classes” src\com\pedroabs\mytags\*.java

** repare que não referenciamos a servlet-api.jar, mas sim a jsp-api.jar

Gerando war:

D:\OneNote\Estudos\SCWCD projects\BundleTag>jar -cf NestedTag.war *.*

Anúncios
Esta entrada foi publicada em Servlet & JSP com as etiquetas . ligação permanente.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s