2016-02-19 1 views
0

J'ai rencontré un problème étrange lors de l'utilisation de bibliothèques de balises personnalisées. Dans l'une de mes pages jsp, le chemin uri relatif du fichier tld personnalisé est incorrect.Problème avec l'uri de la bibliothèque de balises personnalisées

Taglib est inclus dans la page jsp comme ci-dessous <% @ préfixe taglib = "aaa" uri = "WEB-INF/bbb.tld" %> Lieu de bbb.tld est: Magasins \ WebContent \ WEB-INF \ bbb.tld

Cette taglib est incluse dans un fichier jsp parent et aucun fichier jsp n'est importé/inclus depuis le parent.

Mon application a plusieurs autres fichiers jsp, où le même taglib est utilisé avec le bon chemin.

Le même code est déployé dans plusieurs environnements de test. Dans quelques environnements, le code lance une erreur de "Impossible de trouver la ressource", ce qui est attendu. Mais le taglib fonctionne bien dans la plupart des environnements, au lieu du mauvais chemin.

Pourquoi existe-t-il une différence de comportement entre les différents environnements de serveur? Le serveur recherche-t-il automatiquement tous les fichiers tld si l'uri ne peut pas être résolu?

Répondre

0

Je recommande d'ajouter une barre oblique ('/') avant WEB-INF. Pourriez-vous essayer ce qui suit?

<%@ taglib prefix="aaa" uri="/WEB-INF/bbb.tld" %> 

Espérons que cela vous donnera des résultats cohérents dans toutes les instances de votre serveur. En outre, avoir votre TLD dans Stores \ WebContent \ WEB-INF \ bbb.tld semble être lié à l'utilisation d'un IDE (par exemple Eclipse) pour développer votre application. Une fois que vous avez exporté votre application en tant que fichier EAR ou WAR, le chemin ressemblera plus à Stores.war/WEB-INF/bbb.tld